Overview
Comment: | Only use dllexport when we have no shared library |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
5f6072bf2225188555a9739ae047e8ac |
User & Date: | js on 2018-10-27 22:38:08 |
Other Links: | manifest | tags |
Context
2018-10-28
| ||
11:57 | Fix compilation on OpenIndiana check-in: 23b09a2f41 user: js tags: trunk | |
2018-10-27
| ||
22:38 | Only use dllexport when we have no shared library check-in: 5f6072bf22 user: js tags: trunk | |
21:14 | Fix compilation with newer MinGW-w64 versions check-in: 0036c4c22e user: js tags: trunk | |
Changes
Modified configure.ac from [45fb399203] to [7c406779e4].
︙ | ︙ | |||
337 338 339 340 341 342 343 344 345 346 347 348 349 350 | AC_SUBST(LOOKUP_ASM_LOOKUP_ASM_LIB_A, "lookup-asm/lookup-asm.lib.a") BUILDSYS_FRAMEWORK([ AC_SUBST(OBJFW_FRAMEWORK, "ObjFW.framework") build_framework="yes" ]) ], [ AC_SUBST(LIBOBJFW_DEP, "../src/libobjfw.a") AC_SUBST(LIBOBJFW_DEP_LVL2, "../../src/libobjfw.a") ]) AS_IF([test x"$build_framework" = x"yes"], [ TESTS_LIBS="-framework ObjFW \${RUNTIME_FRAMEWORK_LIBS} $TESTS_LIBS" TESTS_LIBS="-F../src -F../src/runtime $TESTS_LIBS" | > | 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 | AC_SUBST(LOOKUP_ASM_LOOKUP_ASM_LIB_A, "lookup-asm/lookup-asm.lib.a") BUILDSYS_FRAMEWORK([ AC_SUBST(OBJFW_FRAMEWORK, "ObjFW.framework") build_framework="yes" ]) ], [ AC_DEFINE(OF_NO_SHARED, 1, [Whether no shared library was built]) AC_SUBST(LIBOBJFW_DEP, "../src/libobjfw.a") AC_SUBST(LIBOBJFW_DEP_LVL2, "../../src/libobjfw.a") ]) AS_IF([test x"$build_framework" = x"yes"], [ TESTS_LIBS="-framework ObjFW \${RUNTIME_FRAMEWORK_LIBS} $TESTS_LIBS" TESTS_LIBS="-F../src -F../src/runtime $TESTS_LIBS" |
︙ | ︙ |
Modified src/block.h from [697bc4f9e2] to [1dea0c4336].
︙ | ︙ | |||
39 40 41 42 43 44 45 | #ifdef __cplusplus extern "C" { #endif extern void *_Block_copy(const void *); extern void _Block_release(const void *); | | > | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #ifdef __cplusplus extern "C" { #endif extern void *_Block_copy(const void *); extern void _Block_release(const void *); # if defined(OF_WINDOWS) && \ (defined(OF_NO_SHARED) || defined(OF_COMPILING_OBJFW)) /* * Clang has implicit declarations for these, but they are dllimport. When * compiling ObjFW itself or using it as a static library, these need to be * dllexport. Interestingly, this still works when using it as a shared library. */ extern __declspec(dllexport) struct objc_abi_class _NSConcreteStackBlock; extern __declspec(dllexport) struct objc_abi_class _NSConcreteGlobalBlock; |
︙ | ︙ |
Modified src/objfw-defs.h.in from [3a0ad24ba7] to [96b18781fc].
︙ | ︙ | |||
38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #undef OF_HAVE_SYS_TYPES_H #undef OF_HAVE_THREADS #undef OF_HAVE_UNICODE_TABLES #undef OF_HAVE__THREAD_LOCAL #undef OF_HAVE___THREAD #undef OF_NINTENDO_3DS #undef OF_NINTENDO_DS #undef OF_OBJFW_RUNTIME #undef OF_UNIVERSAL #undef OF_WII #undef SIZE_MAX #undef UINTPTR_MAX #undef ULLONG_MAX #undef __have_longlong64 | > | 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #undef OF_HAVE_SYS_TYPES_H #undef OF_HAVE_THREADS #undef OF_HAVE_UNICODE_TABLES #undef OF_HAVE__THREAD_LOCAL #undef OF_HAVE___THREAD #undef OF_NINTENDO_3DS #undef OF_NINTENDO_DS #undef OF_NO_SHARED #undef OF_OBJFW_RUNTIME #undef OF_UNIVERSAL #undef OF_WII #undef SIZE_MAX #undef UINTPTR_MAX #undef ULLONG_MAX #undef __have_longlong64 |
Modified tests/OFBlockTests.m from [06efef82d6] to [99bfa111d3].
︙ | ︙ | |||
68 69 70 71 72 73 74 | void (^m)(void); int (^v)(void); TEST(@"Class of stack block", (Class)&_NSConcreteStackBlock == objc_getClass("OFStackBlock") && [s isKindOfClass: [OFBlock class]]) | | | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | void (^m)(void); int (^v)(void); TEST(@"Class of stack block", (Class)&_NSConcreteStackBlock == objc_getClass("OFStackBlock") && [s isKindOfClass: [OFBlock class]]) #if !defined(OF_WINDOWS) || !defined(__clang__) || !defined(OF_NO_SHARED) /* * Causes a linker error on Windows with Clang when compiling as a * static library. This is a bug in Clang. */ TEST(@"Class of global block", (Class)&_NSConcreteGlobalBlock == objc_getClass("OFGlobalBlock") && [g isKindOfClass: [OFBlock class]]) |
︙ | ︙ |