The linker that comes with Xcode 10 requires that libSystem be linked for dynamic executables (those using dyld) unless -mmacosx-version-min=10.7 (or earlier) is used.
Signed-off-by: Ken Thomases ken@codeweavers.com --- This suggests that the future is grim for the approach taken for the Mac preloader. This is a stopgap measure. We've filed a bug with Apple asking that this capability be restored or, failing that, that they provide another way to do the address space reservations we need before system libraries can interfere. The alternative is to revert the Mac preloader implementation.
configure.ac | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-)
diff --git a/configure.ac b/configure.ac index 08fbc3c..26fc392 100644 --- a/configure.ac +++ b/configure.ac @@ -717,6 +717,7 @@ wine_binary="wine" test "x$enable_win64" != "xyes" || wine_binary="wine64" AC_SUBST(WINELOADER_PROGRAMS,"$wine_binary") libwine_soversion=`expr $libwine_version : '([[0-9]]*)..*'` +wine_can_build_preloader=yes
case $host_os in cygwin*|mingw32*) @@ -772,9 +773,20 @@ case $host_os in
WINEPRELOADER_LDFLAGS="-nostartfiles -nodefaultlibs -e _start -ldylib1.o -Wl,-image_base,0x7c400000,-pagezero_size,0x1000,-sectcreate,__TEXT,__info_plist,wine_info.plist" WINE_TRY_CFLAGS([-Wl,-no_new_main -e _main], - [WINEPRELOADER_LDFLAGS="-Wl,-no_new_main $WINEPRELOADER_LDFLAGS"]) - WINE_TRY_CFLAGS([-Wl,-no_pie], - [WINEPRELOADER_LDFLAGS="-Wl,-no_pie $WINEPRELOADER_LDFLAGS"]) + [WINEPRELOADER_LDFLAGS="-Wl,-no_new_main $WINEPRELOADER_LDFLAGS" + WINE_TRY_CFLAGS([-Wl,-no_new_main -e _main -nostartfiles -nodefaultlibs],, + [WINE_TRY_CFLAGS([-Wl,-no_new_main -e _main -mmacosx-version-min=10.7 -nostartfiles -nodefaultlibs], + [WINEPRELOADER_LDFLAGS="-mmacosx-version-min=10.7 $WINEPRELOADER_LDFLAGS"], + [wine_can_build_preloader=no])])], + [WINE_TRY_CFLAGS([-nostartfiles -nodefaultlibs],, + [WINE_TRY_CFLAGS([-mmacosx-version-min=10.7 -nostartfiles -nodefaultlibs], + [WINEPRELOADER_LDFLAGS="-mmacosx-version-min=10.7 $WINEPRELOADER_LDFLAGS"], + [wine_can_build_preloader=no])])]) + if test "$wine_can_build_preloader" = "yes" + then + WINE_TRY_CFLAGS([-Wl,-no_pie], + [WINEPRELOADER_LDFLAGS="-Wl,-no_pie $WINEPRELOADER_LDFLAGS"]) + fi
if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes" then @@ -2110,25 +2122,35 @@ case $build_os in cygwin*|mingw32*) AC_SUBST(TOOLSEXT,".exe") ;; esac
+wine_want_preloader=no case $host_os in linux*) case $host_cpu in *i[[3456789]]86*|x86_64*|*aarch64*) - test "$wine_binary" = wine || WINE_IGNORE_FILE("loader/wine-preloader") - WINELOADER_PROGRAMS="$WINELOADER_PROGRAMS $wine_binary-preloader" + wine_want_preloader=yes ;; esac ;; darwin*|macosx*) case $host_cpu in *i[[3456789]]86*|x86_64*) - test "$wine_binary" = wine || WINE_IGNORE_FILE("loader/wine-preloader") - WINELOADER_PROGRAMS="$WINELOADER_PROGRAMS $wine_binary-preloader" + wine_want_preloader=yes ;; esac ;; esac
+if test "$wine_want_preloader" = "yes" +then + if test "$wine_can_build_preloader" = "yes" + then + test "$wine_binary" = wine || WINE_IGNORE_FILE("loader/wine-preloader") + WINELOADER_PROGRAMS="$WINELOADER_PROGRAMS $wine_binary-preloader" + else + WINE_WARNING([can't build Wine preloader; many programs won't work]) + fi +fi + dnl **** Check for functions ****
ac_save_CFLAGS="$CFLAGS"