Module: wine Branch: master Commit: 0eea1b09d3f619ea35b6b4a70b4091eae85c4834 URL: https://source.winehq.org/git/wine.git/?a=commit;h=0eea1b09d3f619ea35b6b4a70...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Mar 4 17:15:58 2020 +0100
configure: Try using explicit target option for cross compiling.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
configure | 44 ++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 14 ++++++++++++++ 2 files changed, 58 insertions(+)
diff --git a/configure b/configure index 564a296198..feba035107 100755 --- a/configure +++ b/configure @@ -9812,6 +9812,50 @@ $as_echo "$wine_cv_crosscc" >&6; } esac shift done + + llvm_target=$CROSSTARGET + if test -z "$llvm_target" + then + case $host_cpu in + *i[3456789]86*) llvm_target=i686-windows-gnu ;; + *) llvm_target=$host_cpu-windows-gnu ;; + esac + fi + as_ac_var=`$as_echo "ac_cv_crosscflags_-target $llvm_target -fuse-ld=lld" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the cross-compiler supports -target $llvm_target -fuse-ld=lld" >&5 +$as_echo_n "checking whether the cross-compiler supports -target $llvm_target -fuse-ld=lld... " >&6; } +if eval ${$as_ac_var+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_wine_try_cflags_saved=$CFLAGS +ac_wine_try_cflags_saved_cc=$CC +ac_wine_try_cflags_saved_exeext=$ac_exeext +CFLAGS="$CFLAGS $EXTRACROSSCFLAGS -nostartfiles -nodefaultlibs -target $llvm_target -fuse-ld=lld" +CC="$CROSSCC" +ac_exeext=".exe" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +void __stdcall __delayLoadHelper2(void *descr, void *addr) {} int __cdecl mainCRTStartup(void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_ac_var=yes" +else + eval "$as_ac_var=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +CFLAGS=$ac_wine_try_cflags_saved +CC=$ac_wine_try_cflags_saved_cc +ac_exeext=$ac_wine_try_cflags_saved_exeext +fi +eval ac_res=$$as_ac_var + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test "x$"$as_ac_var"" = x"yes"; then : + CROSSTARGET=$llvm_target + EXTRACROSSCFLAGS="$EXTRACROSSCFLAGS -target $CROSSTARGET" + CFLAGS="$CFLAGS -fuse-ld=lld" +fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the cross-compiler supports -fno-strict-aliasing" >&5 $as_echo_n "checking whether the cross-compiler supports -fno-strict-aliasing... " >&6; } diff --git a/configure.ac b/configure.ac index 47d2b750c0..e411c2eb0e 100644 --- a/configure.ac +++ b/configure.ac @@ -1041,6 +1041,20 @@ then esac shift done + + dnl Check if cross compiler supports -target argument + llvm_target=$CROSSTARGET + if test -z "$llvm_target" + then + case $host_cpu in + *i[[3456789]]86*) llvm_target=i686-windows-gnu ;; + *) llvm_target=$host_cpu-windows-gnu ;; + esac + fi + WINE_TRY_CROSSCFLAGS([-target $llvm_target -fuse-ld=lld], + [CROSSTARGET=$llvm_target + EXTRACROSSCFLAGS="$EXTRACROSSCFLAGS -target $CROSSTARGET" + CFLAGS="$CFLAGS -fuse-ld=lld"]) fi WINE_TRY_CROSSCFLAGS([-fno-strict-aliasing]) dnl clang needs to be told to fail on unknown options