Index: configure.ac ================================================================== --- configure.ac +++ configure.ac @@ -173,22 +173,57 @@ case $objc_runtime in "ObjFW runtime") AC_DEFINE(OF_OBJFW_RUNTIME, 1, [Whether we use the ObjFW runtime]) - GNU_RUNTIME="-fgnu-runtime" - OBJCFLAGS="$OBJCFLAGS -fgnu-runtime" - RUNTIME_FLAGS="-fgnu-runtime" + + AC_MSG_CHECKING([whether -fobjc-runtime=objfw is supported]) + + old_OBJCFLAGS="$OBJCFLAGS" + OBJCFLAGS="$OBJCFLAGS -fobjc-runtime=objfw" + AC_TRY_LINK([ + @interface Test + + (void)test; + @end + + @implementation Test + + (void)test + { + } + @end + + void* + objc_msg_lookup(void *obj, void *sel) + { + return (void*)0; + } + + void + __objc_exec_class(void *module) + { + } + ], [ + [Test test]; + ], [ + RUNTIME_FLAGS="-fobjc-runtime=objfw" + AC_MSG_RESULT(yes) + ], [ + RUNTIME_FLAGS="-fgnu-runtime" + OBJCFLAGS="$old_OBJCFLAGS -fgnu-runtime" + AC_MSG_RESULT(no) - AX_CHECK_COMPILER_FLAGS(-fno-objc-nonfragile-abi, [ - OBJCFLAGS="$OBJCFLAGS -fno-objc-nonfragile-abi" - GNU_RUNTIME="$GNU_RUNTIME -fno-objc-nonfragile-abi" + AX_CHECK_COMPILER_FLAGS(-fno-objc-nonfragile-abi, [ + flag="-fno-objc-nonfragile-abi" + OBJCFLAGS="$OBJCFLAGS $flag" + RUNTIME_FLAGS="$RUNTIME_FLAGS $flag" + ]) ]) + AX_CHECK_COMPILER_FLAGS(-Wno-deprecated-objc-isa-usage, [OBJCFLAGS="$OBJCFLAGS -Wno-deprecated-objc-isa-usage"]) - AC_SUBST(GNU_RUNTIME) + AC_SUBST(RUNTIME_FLAGS) AC_SUBST(RUNTIME, "runtime") if test x"$enable_shared" != x"no"; then AC_SUBST(RUNTIME_LIB_A, "runtime.lib.a") AC_SUBST(RUNTIME_RUNTIME_LIB_A, "runtime/runtime.lib.a") Index: utils/objfw-config.in ================================================================== --- utils/objfw-config.in +++ utils/objfw-config.in @@ -20,11 +20,11 @@ libdir="@libdir@" CFLAGS="" CPPFLAGS="-I@includedir@" CXXFLAGS="" OBJC="@OBJC@" -OBJCFLAGS="@GNU_RUNTIME@ -fexceptions -fobjc-exceptions -funwind-tables" +OBJCFLAGS="@RUNTIME_FLAGS@ -fexceptions -fobjc-exceptions -funwind-tables" OBJCFLAGS="$OBJCFLAGS -fconstant-string-class=OFConstantString" OBJCFLAGS="$OBJCFLAGS @NO_CONST_CFSTRINGS@ @BLOCKS_FLAGS@ @NO_WARN_UNUSED@" LIB_CFLAGS="@LIB_CFLAGS@" LIB_LDFLAGS="@LIB_LDFLAGS@" LIB_PREFIX="@LIB_PREFIX@"