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
}
|