Jacek Caban : configure: Try using explicit target option for cross compiling.

Alexandre Julliard julliard at winehq.org
Wed Mar 4 16:50:08 CST 2020


Module: wine
Branch: master
Commit: 0eea1b09d3f619ea35b6b4a70b4091eae85c4834
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=0eea1b09d3f619ea35b6b4a70b4091eae85c4834

Author: Jacek Caban <jacek at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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




More information about the wine-cvs mailing list