Differences From Artifact [5647624db4]:
- File
src/runtime/linklib/init.m
— part of check-in
[eeba79d088]
at
2020-12-27 18:50:37
on branch trunk
— Add a generator for the linklib
This will eventually also generate the glue code and the function list
and make sfdc & cvinclude.pl entirely obsolete. It will also reduce the
maintenance burden because once everything is generated from
library.xml, there is a single file in which a function needs to be
added / changed instead of 5. (user: js, size: 4633) [annotate] [blame] [check-ins using]
To Artifact [20a1854b43]:
- File
src/runtime/linklib/init.m
— part of check-in
[bb25f8b0fe]
at
2020-12-27 19:13:35
on branch trunk
— Don't use sfdc / cvinclude.pl anymore
The linklib generator already completely obsoletes it. (user: js, size: 4669) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
22 23 24 25 26 27 28 | #import "macros.h" #include <proto/exec.h> #include <proto/intuition.h> struct ObjFWRTBase; | < < | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #import "macros.h" #include <proto/exec.h> #include <proto/intuition.h> struct ObjFWRTBase; #include <stdio.h> #include <stdlib.h> #if defined(OF_AMIGAOS_M68K) # include <stabs.h> #elif defined(OF_MORPHOS) # include <constructor.h> |
︙ | ︙ | |||
63 64 65 66 67 68 69 70 71 72 73 74 75 76 | #ifdef OF_MORPHOS extern void __register_frame(void *); extern void __deregister_frame(void *); #endif struct Library *ObjFWRTBase; void *__objc_class_name_Protocol; static void error(const char *string, ULONG arg) { struct Library *IntuitionBase = OpenLibrary("intuition.library", 0); if (IntuitionBase != NULL) { | > > | 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | #ifdef OF_MORPHOS extern void __register_frame(void *); extern void __deregister_frame(void *); #endif struct Library *ObjFWRTBase; void *__objc_class_name_Protocol; extern bool objc_init(unsigned int version, struct objc_libc *libc); static void error(const char *string, ULONG arg) { struct Library *IntuitionBase = OpenLibrary("intuition.library", 0); if (IntuitionBase != NULL) { |
︙ | ︙ | |||
138 139 140 141 142 143 144 | return; if ((ObjFWRTBase = OpenLibrary(OBJFWRT_AMIGA_LIB, OBJFWRT_LIB_MINOR)) == NULL) error("Failed to open " OBJFWRT_AMIGA_LIB " version %lu!", OBJFWRT_LIB_MINOR); | | | 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | return; if ((ObjFWRTBase = OpenLibrary(OBJFWRT_AMIGA_LIB, OBJFWRT_LIB_MINOR)) == NULL) error("Failed to open " OBJFWRT_AMIGA_LIB " version %lu!", OBJFWRT_LIB_MINOR); if (!objc_init(1, &libc)) error("Failed to initialize " OBJFWRT_AMIGA_LIB "!", 0); initialized = true; } static void __attribute__((__used__)) dtor(void) |
︙ | ︙ | |||
179 180 181 182 183 184 185 | __gnu_objc_personality_sj0( #else __gnu_objc_personality_v0( #endif int version, int actions, uint64_t exClass, void *ex, void *ctx) { #ifdef OF_AMIGAOS_M68K | | | | 179 180 181 182 183 184 185 186 187 188 189 190 | __gnu_objc_personality_sj0( #else __gnu_objc_personality_v0( #endif int version, int actions, uint64_t exClass, void *ex, void *ctx) { #ifdef OF_AMIGAOS_M68K return __gnu_objc_personality(version, actions, &exClass, ex, ctx); #else return __gnu_objc_personality(version, actions, &exClass, ex, ctx); #endif } |