Overview
Comment: | runtime: Add a linklib for the Amiga library |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
f840649052a3dcd420d25701b658d585 |
User & Date: | js on 2018-05-01 15:10:53 |
Other Links: | manifest | tags |
Context
2018-05-05
| ||
15:57 | runtime: Make exceptions work in Amiga library check-in: 1cae2c720c user: js tags: trunk | |
2018-05-01
| ||
15:10 | runtime: Add a linklib for the Amiga library check-in: f840649052 user: js tags: trunk | |
09:39 | PLATFORMS.md: Add AmigaOS check-in: 1ff0d2581e user: js tags: trunk | |
Changes
Modified configure.ac from [7300383902] to [3670da2152].
︙ | |||
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | + + | [Minimum value for long long]) AC_DEFINE(__have_longlong64, 1, [Required for AmigaOS to correctly define PRI?64]) AC_SUBST(NOIXEMUL, -noixemul) AC_SUBST(OBJFW_RT_AMIGA_LIB, objfw_rt.library) AC_SUBST(OBJFW_RT_AMIGA_LINKLIB, libobjfw_rt.linklib.a) AC_SUBST(OBJFW_RT_INLINE_H, ObjFW_RT_inline.h) AC_SUBST(SFDC_TARGET, m68k-amigaos) ;; powerpc-*-amigaos*) enable_shared="no" enable_threads="no" ;; *-morphos*) AS_IF([test x"$with_ixemul" != x"yes"], [ OBJCFLAGS="$OBJCFLAGS -noixemul" LDFLAGS="$LDFLAGS -noixemul" enable_files="yes" # Required for reading ENV: AC_SUBST(NOIXEMUL, -noixemul) AC_SUBST(OBJFW_RT_AMIGA_LIB, objfw_rt.library) AC_SUBST(OBJFW_RT_AMIGA_LINKLIB, libobjfw_rt.linklib.a) AC_SUBST(OBJFW_RT_INLINE_H, ObjFW_RT_inline.h) AC_SUBST(SFDC_TARGET, ppc-morphos) ]) enable_shared="no" enable_threads="no" ;; |
︙ |
Modified extra.mk.in from [b4e501de40] to [7c45526c61].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | + | OBJFW_SHARED_LIB = @OBJFW_SHARED_LIB@ OBJFW_STATIC_LIB = @OBJFW_STATIC_LIB@ OBJFW_FRAMEWORK = @OBJFW_FRAMEWORK@ # When changing: Be sure to also change these in the Xcode project! OBJFW_LIB_MAJOR = 9 OBJFW_LIB_MINOR = 0 OBJFW_LIB_MAJOR_MINOR = ${OBJFW_LIB_MAJOR}.${OBJFW_LIB_MINOR} OBJFW_RT_SHARED_LIB = @OBJFW_RT_SHARED_LIB@ OBJFW_RT_STATIC_LIB = @OBJFW_RT_STATIC_LIB@ OBJFW_RT_FRAMEWORK = @OBJFW_RT_FRAMEWORK@ OBJFW_RT_AMIGA_LIB = @OBJFW_RT_AMIGA_LIB@ OBJFW_RT_AMIGA_LINKLIB = @OBJFW_RT_AMIGA_LINKLIB@ OBJFW_RT_LIB_MAJOR = 0 OBJFW_RT_LIB_MINOR = 0 OBJFW_RT_LIB_MAJOR_MINOR = ${OBJFW_RT_LIB_MAJOR}.${OBJFW_RT_LIB_MINOR} OBJFW_BRIDGE_SHARED_LIB = @OBJFW_BRIDGE_SHARED_LIB@ OBJFW_BRIDGE_STATIC_LIB = @OBJFW_BRIDGE_STATIC_LIB@ OBJFW_BRIDGE_FRAMEWORK = @OBJFW_BRIDGE_FRAMEWORK@ |
︙ |
Modified src/runtime/Makefile from [37696a2fb5] to [f41345f3e8].
1 2 3 4 5 6 7 8 9 10 | 1 2 3 4 5 6 7 8 9 10 11 | + | include ../../extra.mk SUBDIRS = lookup-asm SUBDIRS_AFTER = linklib CLEAN = ${OBJFW_RT_INLINE_H} SHARED_LIB = ${OBJFW_RT_SHARED_LIB} STATIC_LIB = ${OBJFW_RT_STATIC_LIB} FRAMEWORK = ${OBJFW_RT_FRAMEWORK} AMIGA_LIB = ${OBJFW_RT_AMIGA_LIB} LIB_MAJOR = ${OBJFW_RT_LIB_MAJOR} |
︙ | |||
52 53 54 55 56 57 58 | 53 54 55 56 57 58 59 60 61 62 63 64 | + + + + + | CPPFLAGS += -I. -I.. -I../.. \ -DOF_COMPILING_OBJFW_RT \ -DOBJFW_RT_LIB_MAJOR=${OBJFW_RT_LIB_MAJOR} \ -DOBJFW_RT_LIB_MINOR=${OBJFW_RT_LIB_MINOR} AMIGA_LIB_CFLAGS += -DOBJC_COMPILING_AMIGA_LIBRARY LD = ${OBJC} FRAMEWORK_LIBS = ${LIBS} # For 68000, GCC emits calls to helper functions that expect a4 to be set. # Remove this once the library is using -fbaserel. AMIGA_LIB_CFLAGS += -mcpu=68020 AMIGA_LIB_LDFLAGS += -mcpu=68020 |
Modified src/runtime/ObjFW_RT.h from [45784520cd] to [df243066af].
︙ | |||
217 218 219 220 221 222 223 | 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 | - - + + + + + + + + + | long count; Protocol *__unsafe_unretained _Nonnull list[1]; }; #ifdef __cplusplus extern "C" { #endif |
︙ | |||
302 303 304 305 306 307 308 309 310 311 312 313 314 315 | 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 | + + | extern IMP _Nonnull objc_msg_lookup_super(struct objc_super *_Nonnull super, SEL _Nonnull sel); extern IMP _Nonnull objc_msg_lookup_super_stret( struct objc_super *_Nonnull super, SEL _Nonnull sel); extern id _Nullable objc_lookUpClass(const char *_Nonnull name); extern id _Nullable objc_getClass(const char *_Nonnull name); extern id _Nonnull objc_getRequiredClass(const char *_Nonnull name); extern Class _Nullable objc_lookup_class(const char *_Nonnull name); extern Class _Nonnull objc_get_class(const char *_Nonnull name); extern void objc_exception_throw(id _Nullable object); extern int objc_sync_enter(id _Nullable object); extern int objc_sync_exit(id _Nullable object); extern id _Nullable objc_getProperty(id _Nonnull self, SEL _Nonnull _cmd, ptrdiff_t offset, bool atomic); extern void objc_setProperty(id _Nonnull self, SEL _Nonnull _cmd, ptrdiff_t offset, id _Nullable value, bool atomic, signed char copy); |
︙ |
Modified src/runtime/ObjFW_RT.sfd from [daf0164aa0] to [576423b2b1].
1 2 3 4 5 6 7 8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + | ==base _ObjFWRTBase ==basetype struct Library * ==libname objfw_rt.library ==bias 30 ==public * Functions for the linklib void objc_init(struct objc_libc *libc)(a0) * Used by the compiler - these need glue code |
︙ |
Modified src/runtime/amiga-glue.m from [742f84c7f3] to [f6066a455d].
︙ | |||
20 21 22 23 24 25 26 | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | - + | #import "ObjFW_RT.h" #import "private.h" #import "macros.h" void glue___objc_exec_class(void *module OBJC_M68K_REG("a0")) { |
︙ | |||
67 68 69 70 71 72 73 74 75 76 77 78 79 80 | 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | + + + + + + + + + + + + | } id glue_objc_getRequiredClass(const char *name OBJC_M68K_REG("a0")) { return objc_getRequiredClass(name); } Class glue_objc_lookup_class(const char *name OBJC_M68K_REG("a0")) { return objc_lookup_class(name); } Class glue_objc_get_class(const char *name OBJC_M68K_REG("a0")) { return objc_get_class(name); } void glue_objc_exception_throw(id object OBJC_M68K_REG("a0")) { objc_exception_throw(object); OF_UNREACHABLE |
︙ |
Modified src/runtime/amiga-library.m from [ec9a414c68] to [6c5b775beb].
︙ | |||
137 138 139 140 141 142 143 | 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | - - + + | objc_init(struct ObjFWRTBase *base OBJC_M68K_REG("a6"), struct objc_libc *libc_ OBJC_M68K_REG("a0")) { uintptr_t *iter, *iter0; libc = libc_; |
︙ | |||
226 227 228 229 230 231 232 | 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 | - + | ULONG data_size; CONST_APTR *function_table; ULONG *data_table; struct Library *(*init_func)( struct ExecBase *exec_base OBJC_M68K_REG("a6"), BPTR seg_list OBJC_M68K_REG("a0"), struct ObjFWRTBase *base OBJC_M68K_REG("d0")); |
︙ | |||
248 249 250 251 252 253 254 | 248 249 250 251 252 253 254 255 256 | - + | , .rt_Version = OBJFW_RT_LIB_MAJOR, .rt_Type = NT_LIBRARY, .rt_Pri = 0, .rt_Name = (char *)"objfw_rt.library", .rt_IdString = (char *)"ObjFW_RT " VERSION_STRING " \xA9 2008-2018 Jonathan Schleifer", |
Added src/runtime/linklib/Makefile version [7d1dbba2ec].
|
Added src/runtime/linklib/linklib.m version [03684c47f6].