Overview
Comment: | runtime: Generate and install Amiga inline header |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
ec343c7ae613316b41315f8926ed7c2f |
User & Date: | js on 2018-04-30 11:20:32 |
Other Links: | manifest | tags |
Context
2018-04-30
| ||
14:51 | runtime: Never use assert() check-in: 2ae3bc33e1 user: js tags: trunk | |
11:20 | runtime: Generate and install Amiga inline header check-in: ec343c7ae6 user: js tags: trunk | |
10:54 | runtime: Generate function table from .sfd file check-in: 28fdcad722 user: js tags: trunk | |
Changes
Modified .gitignore from [eae67b34f5] to [8910d110af].
︙ | ︙ | |||
26 27 28 29 30 31 32 | generators/gen_tables.exe src/Info.plist src/ObjFW.framework src/bridge/Info.plist src/bridge/ObjFW_Bridge.framework src/objfw-defs.h src/runtime/ObjFW_RT.framework | | > | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | generators/gen_tables.exe src/Info.plist src/ObjFW.framework src/bridge/Info.plist src/bridge/ObjFW_Bridge.framework src/objfw-defs.h src/runtime/ObjFW_RT.framework src/runtime/ObjFW_RT_inline.h src/runtime/amiga-library-functable.inc tests/*.map tests/EBOOT.PBP tests/Info.plist tests/PARAM.SFO tests/iOS.xcodeproj/*.pbxuser tests/iOS.xcodeproj/project.xcworkspace tests/iOS.xcodeproj/xcuserdata |
︙ | ︙ |
Modified configure.ac from [c8d51c9342] to [7300383902].
︙ | ︙ | |||
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 | [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) ;; 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) ]) enable_shared="no" enable_threads="no" ;; *-msdosdjgpp*) enable_shared="no" | > > > > | 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_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_INLINE_H, ObjFW_RT_inline.h) AC_SUBST(SFDC_TARGET, ppc-morphos) ]) enable_shared="no" enable_threads="no" ;; *-msdosdjgpp*) enable_shared="no" |
︙ | ︙ |
Modified extra.mk.in from [4111d16366] to [b4e501de40].
︙ | ︙ | |||
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 73 74 75 76 77 78 79 80 81 82 83 84 | LIBOBJFW_RT_DEP = @LIBOBJFW_RT_DEP@ LIBOBJFW_RT_DEP_LVL2 = @LIBOBJFW_RT_DEP_LVL2@ LOOKUP_ASM_A = @LOOKUP_ASM_A@ LOOKUP_ASM_LIB_A = @LOOKUP_ASM_LIB_A@ LOOKUP_ASM_LOOKUP_ASM_A = @LOOKUP_ASM_LOOKUP_ASM_A@ LOOKUP_ASM_LOOKUP_ASM_LIB_A = @LOOKUP_ASM_LOOKUP_ASM_LIB_A@ MAP_LDFLAGS = @MAP_LDFLAGS@ OFBLOCKTESTS_M = @OFBLOCKTESTS_M@ OFHASH = @OFHASH@ OFHTTP = @OFHTTP@ OFHTTPCLIENTTESTS_M = @OFHTTPCLIENTTESTS_M@ OFHTTPCLIENT_M = @OFHTTPCLIENT_M@ OFKERNELEVENTOBSERVER_EPOLL_M = @OFKERNELEVENTOBSERVER_EPOLL_M@ OFKERNELEVENTOBSERVER_KQUEUE_M = @OFKERNELEVENTOBSERVER_KQUEUE_M@ OFKERNELEVENTOBSERVER_POLL_M = @OFKERNELEVENTOBSERVER_POLL_M@ OFKERNELEVENTOBSERVER_SELECT_M = @OFKERNELEVENTOBSERVER_SELECT_M@ OFPROCESS_M = @OFPROCESS_M@ OFSTDIOSTREAM_WIN32CONSOLE_M = @OFSTDIOSTREAM_WIN32CONSOLE_M@ OFURLHANDLER_HTTP_M = @OFURLHANDLER_HTTP_M@ OFZIP = @OFZIP@ REEXPORT_RUNTIME = @REEXPORT_RUNTIME@ REEXPORT_RUNTIME_FRAMEWORK = @REEXPORT_RUNTIME_FRAMEWORK@ RUNTIME = @RUNTIME@ RUNTIME_FRAMEWORK_LIBS = @RUNTIME_FRAMEWORK_LIBS@ RUNTIME_LIBS = @RUNTIME_LIBS@ RUN_TESTS = @RUN_TESTS@ TESTPLUGIN = @TESTPLUGIN@ TESTPLUGIN_LIBS = @TESTPLUGIN_LIBS@ TESTS_LIBS = @TESTS_LIBS@ TESTS_OBJCFLAGS = @TESTS_OBJCFLAGS@ TESTS_STATIC_LIB = @TESTS_STATIC_LIB@ UNICODE_M = @UNICODE_M@ USE_INCLUDES_ATOMIC = @USE_INCLUDES_ATOMIC@ USE_SRCS_FILES = @USE_SRCS_FILES@ USE_SRCS_PLUGINS = @USE_SRCS_PLUGINS@ USE_SRCS_SOCKETS = @USE_SRCS_SOCKETS@ USE_SRCS_THREADS = @USE_SRCS_THREADS@ WEAK_NSFOUNDATIONVERSIONNUMBER = @WEAK_NSFOUNDATIONVERSIONNUMBER@ WRAPPER = @WRAPPER@ | > > | 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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | LIBOBJFW_RT_DEP = @LIBOBJFW_RT_DEP@ LIBOBJFW_RT_DEP_LVL2 = @LIBOBJFW_RT_DEP_LVL2@ LOOKUP_ASM_A = @LOOKUP_ASM_A@ LOOKUP_ASM_LIB_A = @LOOKUP_ASM_LIB_A@ LOOKUP_ASM_LOOKUP_ASM_A = @LOOKUP_ASM_LOOKUP_ASM_A@ LOOKUP_ASM_LOOKUP_ASM_LIB_A = @LOOKUP_ASM_LOOKUP_ASM_LIB_A@ MAP_LDFLAGS = @MAP_LDFLAGS@ OBJFW_RT_INLINE_H = @OBJFW_RT_INLINE_H@ OFBLOCKTESTS_M = @OFBLOCKTESTS_M@ OFHASH = @OFHASH@ OFHTTP = @OFHTTP@ OFHTTPCLIENTTESTS_M = @OFHTTPCLIENTTESTS_M@ OFHTTPCLIENT_M = @OFHTTPCLIENT_M@ OFKERNELEVENTOBSERVER_EPOLL_M = @OFKERNELEVENTOBSERVER_EPOLL_M@ OFKERNELEVENTOBSERVER_KQUEUE_M = @OFKERNELEVENTOBSERVER_KQUEUE_M@ OFKERNELEVENTOBSERVER_POLL_M = @OFKERNELEVENTOBSERVER_POLL_M@ OFKERNELEVENTOBSERVER_SELECT_M = @OFKERNELEVENTOBSERVER_SELECT_M@ OFPROCESS_M = @OFPROCESS_M@ OFSTDIOSTREAM_WIN32CONSOLE_M = @OFSTDIOSTREAM_WIN32CONSOLE_M@ OFURLHANDLER_HTTP_M = @OFURLHANDLER_HTTP_M@ OFZIP = @OFZIP@ REEXPORT_RUNTIME = @REEXPORT_RUNTIME@ REEXPORT_RUNTIME_FRAMEWORK = @REEXPORT_RUNTIME_FRAMEWORK@ RUNTIME = @RUNTIME@ RUNTIME_FRAMEWORK_LIBS = @RUNTIME_FRAMEWORK_LIBS@ RUNTIME_LIBS = @RUNTIME_LIBS@ RUN_TESTS = @RUN_TESTS@ SFDC_TARGET = @SFDC_TARGET@ TESTPLUGIN = @TESTPLUGIN@ TESTPLUGIN_LIBS = @TESTPLUGIN_LIBS@ TESTS_LIBS = @TESTS_LIBS@ TESTS_OBJCFLAGS = @TESTS_OBJCFLAGS@ TESTS_STATIC_LIB = @TESTS_STATIC_LIB@ UNICODE_M = @UNICODE_M@ USE_INCLUDES_ATOMIC = @USE_INCLUDES_ATOMIC@ USE_SRCS_FILES = @USE_SRCS_FILES@ USE_SRCS_PLUGINS = @USE_SRCS_PLUGINS@ USE_SRCS_SOCKETS = @USE_SRCS_SOCKETS@ USE_SRCS_THREADS = @USE_SRCS_THREADS@ WEAK_NSFOUNDATIONVERSIONNUMBER = @WEAK_NSFOUNDATIONVERSIONNUMBER@ WRAPPER = @WRAPPER@ |
Modified src/runtime/Makefile from [16c807433c] to [37696a2fb5].
1 2 3 4 5 6 7 8 9 10 | include ../../extra.mk SUBDIRS = lookup-asm 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} LIB_MINOR = ${OBJFW_RT_LIB_MINOR} | > | 1 2 3 4 5 6 7 8 9 10 11 | include ../../extra.mk SUBDIRS = lookup-asm 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} LIB_MINOR = ${OBJFW_RT_LIB_MINOR} |
︙ | ︙ | |||
23 24 25 26 27 28 29 | selector.m \ sparsearray.m \ static-instances.m \ synchronized.m \ ${USE_SRCS_THREADS} SRCS_THREADS = threading.m \ ../threading.m | | > > | > > > | | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | selector.m \ sparsearray.m \ static-instances.m \ synchronized.m \ ${USE_SRCS_THREADS} SRCS_THREADS = threading.m \ ../threading.m INCLUDES = ObjFW_RT.h ${OBJFW_RT_INLINE_H} includesubdir = ObjFW_RT OBJS_EXTRA = ${LOOKUP_ASM_LOOKUP_ASM_A} LIB_OBJS_EXTRA = ${LOOKUP_ASM_LOOKUP_ASM_LIB_A} AMIGA_LIB_OBJS_EXTRA = amiga-glue.amigalib.o \ amiga-library.amigalib.o \ ${LOOKUP_ASM_LOOKUP_ASM_A} include ../../buildsys.mk ${OBJFW_RT_AMIGA_LIB}: ${OBJFW_RT_INLINE_H} amiga-library.m: amiga-library-functable.inc amiga-library-functable.inc: ObjFW_RT.sfd sfdc -q --target=${SFDC_TARGET} --mode=functable -o $@ $< ${OBJFW_RT_INLINE_H}: ObjFW_RT.sfd sfdc -q --target=${SFDC_TARGET} --mode=macros -o $@ $< 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} |
Modified src/runtime/ObjFW_RT.h from [afbf85daff] to [45784520cd].
︙ | ︙ | |||
59 60 61 62 63 64 65 | #define NO false #if defined(__amigaos__) && !defined(__MORPHOS__) && !defined(__amigaos4__) # define OBJC_M68K_REG(reg) __asm__(reg) #else # define OBJC_M68K_REG(reg) #endif | | | 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | #define NO false #if defined(__amigaos__) && !defined(__MORPHOS__) && !defined(__amigaos4__) # define OBJC_M68K_REG(reg) __asm__(reg) #else # define OBJC_M68K_REG(reg) #endif #if defined(__MORPHOS__) && defined(OBJC_COMPILING_AMIGA_LIBRARY) # define OBJC_M68K_FUNC(name, ...) name(void) # define OBJC_M68K_ARG(type, name, reg) type name = (type)reg; #else # define OBJC_M68K_FUNC(name, ...) name(__VA_ARGS__) # define OBJC_M68K_ARG(type, name, reg) #endif |
︙ | ︙ | |||
217 218 219 220 221 222 223 224 225 226 227 228 229 230 | long count; Protocol *__unsafe_unretained _Nonnull list[1]; }; #ifdef __cplusplus extern "C" { #endif extern SEL _Nonnull sel_registerName( const char *_Nonnull name OBJC_M68K_REG("a0")); extern const char *_Nonnull sel_getName(SEL _Nonnull sel OBJC_M68K_REG("a0")); extern bool sel_isEqual(SEL _Nonnull sel1 OBJC_M68K_REG("a0"), SEL _Nonnull sel2 OBJC_M68K_REG("a1")); extern Class _Nonnull objc_allocateClassPair( Class _Nullable superclass OBJC_M68K_REG("a0"), | > > > > | 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 | long count; Protocol *__unsafe_unretained _Nonnull list[1]; }; #ifdef __cplusplus extern "C" { #endif # ifdef OBJC_AMIGA_LIBRARY # import "ObjFW_RT_inline.h" extern struct Library *ObjFWRTBase; # else extern SEL _Nonnull sel_registerName( const char *_Nonnull name OBJC_M68K_REG("a0")); extern const char *_Nonnull sel_getName(SEL _Nonnull sel OBJC_M68K_REG("a0")); extern bool sel_isEqual(SEL _Nonnull sel1 OBJC_M68K_REG("a0"), SEL _Nonnull sel2 OBJC_M68K_REG("a1")); extern Class _Nonnull objc_allocateClassPair( Class _Nullable superclass OBJC_M68K_REG("a0"), |
︙ | ︙ | |||
280 281 282 283 284 285 286 | objc_setUncaughtExceptionHandler( objc_uncaught_exception_handler _Nullable handler OBJC_M68K_REG("a0")); extern void objc_setForwardHandler(IMP _Nullable forward OBJC_M68K_REG("a0"), IMP _Nullable forward_stret OBJC_M68K_REG("a1")); extern void objc_setEnumerationMutationHandler( objc_enumeration_mutation_handler _Nullable handler OBJC_M68K_REG("a0")); extern void objc_zero_weak_references(id _Nonnull value OBJC_M68K_REG("a0")); | < < | 284 285 286 287 288 289 290 291 292 293 294 295 296 297 | objc_setUncaughtExceptionHandler( objc_uncaught_exception_handler _Nullable handler OBJC_M68K_REG("a0")); extern void objc_setForwardHandler(IMP _Nullable forward OBJC_M68K_REG("a0"), IMP _Nullable forward_stret OBJC_M68K_REG("a1")); extern void objc_setEnumerationMutationHandler( objc_enumeration_mutation_handler _Nullable handler OBJC_M68K_REG("a0")); extern void objc_zero_weak_references(id _Nonnull value OBJC_M68K_REG("a0")); # endif /* * Used by the compiler, but can also be called manually. * * These declarations are also required to prevent Clang's implicit * declarations which include __declspec(dllimport) on Windows. |
︙ | ︙ |
Modified src/runtime/ObjFW_RT.sfd from [6493c088a1] to [5ad9f953ab].
1 2 3 4 | ==base _ObjFWRTBase ==basetype struct Library * ==libname objfw_rt.library ==bias 30 | | | | < | 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 | ==base _ObjFWRTBase ==basetype struct Library * ==libname objfw_rt.library ==bias 30 ==public * Functions for the linklib void objc_set_libc(struct objc_libc *libc)(a0) * Used by the compiler - these need glue code void glue___objc_exec_class(void *module)(a0) IMP glue_objc_msg_lookup(id obj, SEL sel)(a0,a1) IMP glue_objc_msg_lookup_stret(id obj, SEL sel)(a0,a1) IMP glue_objc_msg_lookup_super(struct objc_super *super, SEL sel)(a0,a1) IMP glue_objc_msg_lookup_super_stret(struct objc_super *super, SEL sel)(a0,a1) id glue_objc_lookUpClass(const char *name)(a0) id glue_objc_getClass(const char *name)(a0) id glue_objc_getRequiredClass(const char *name)(a0) void glue_objc_exception_throw(id object)(a0) int glue_objc_sync_enter(id object)(a0) int glue_objc_sync_exit(id object)(a0) id glue_objc_getProperty(id self, SEL _cmd, ptrdiff_t offset, bool atomic)(a0,a1,d0,d1) void glue_objc_setProperty(id self, SEL _cmd, ptrdiff_t offset, id value, bool atomic, signed char copy)(a0,a1,d0,a2,d1,d2) void glue_objc_getPropertyStruct(void *dest, const void *src, ptrdiff_t size, bool atomic, bool strong)(a0,a1,d0,d1,d2) void glue_objc_setPropertyStruct(void *dest, const void *src, ptrdiff_t size, bool atomic, bool strong)(a0,a1,d0,d1,d2) void glue_objc_enumerationMutation(id obj)(a0) * Functions declared in ObjFW_RT.h SEL _Nonnull sel_registerName(const char *_Nonnull name)(a0) const char *_Nonnull sel_getName(SEL _Nonnull sel)(a0) bool sel_isEqual(SEL _Nonnull sel1, SEL _Nonnull sel2)(a0,a1) Class _Nonnull objc_allocateClassPair(Class _Nullable superclass, const char *_Nonnull name, size_t extra_bytes)(a0,a1,d0) void objc_registerClassPair(Class _Nonnull cls)(a0) unsigned int objc_getClassList(Class _Nonnull *_Nullable buf, unsigned int count)(a0,d0) |
︙ | ︙ |
Modified src/runtime/private.h from [34219e64f0] to [9b8ebef4c7].
︙ | ︙ | |||
130 131 132 133 134 135 136 | } *_Nonnull buckets[256]; #else IMP _Nullable buckets[256]; #endif } *_Nonnull buckets[256]; }; | | | 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | } *_Nonnull buckets[256]; #else IMP _Nullable buckets[256]; #endif } *_Nonnull buckets[256]; }; #ifdef OBJC_COMPILING_AMIGA_LIBRARY # undef stdout # undef stderr extern struct objc_libc { void *(*malloc)(size_t); void *(*calloc)(size_t, size_t); void *(*realloc)(void *, size_t); void (*free)(void *); |
︙ | ︙ |