Alexandre Julliard : configure: Check for working -mabi=ms support on x86_64.
Alexandre Julliard
julliard at winehq.org
Tue Mar 1 15:45:33 CST 2022
Module: wine
Branch: master
Commit: 9226d0c3d88bfa2c87daf0cd4a5ef2db54fa5a9c
URL: https://source.winehq.org/git/wine.git/?a=commit;h=9226d0c3d88bfa2c87daf0cd4a5ef2db54fa5a9c
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Mar 1 14:32:27 2022 +0100
configure: Check for working -mabi=ms support on x86_64.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
configure | 45 ++++++++++++++++++++++++++-------------------
configure.ac | 12 +++++++++++-
2 files changed, 37 insertions(+), 20 deletions(-)
diff --git a/configure b/configure
index 2597bc0e791..d757194be45 100755
--- a/configure
+++ b/configure
@@ -19273,34 +19273,41 @@ if test "x$ac_cv_cflags__Wno_format" = xyes
then :
EXTRACFLAGS="$EXTRACFLAGS -Wno-format"
fi ;;
- *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -mabi=ms" >&5
-printf %s "checking whether the compiler supports -mabi=ms... " >&6; }
-if test ${ac_cv_cflags__mabi_ms+y}
+ *) if test -z "$CROSSTARGET"
+ then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working -mabi=ms" >&5
+printf %s "checking for working -mabi=ms... " >&6; }
+if test ${ac_cv_mabi_ms+y}
then :
printf %s "(cached) " >&6
else $as_nop
- ac_wine_try_cflags_saved=$CFLAGS
-CFLAGS="$CFLAGS -mabi=ms"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ CFLAGS="$CFLAGS -mabi=ms"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-int main(int argc, char **argv) { return 0; }
+#include <stdarg.h>
+int a(int b, ...) { __builtin_ms_va_list list; __builtin_ms_va_start(list,b); }
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
_ACEOF
-if ac_fn_c_try_link "$LINENO"
+if ac_fn_c_try_compile "$LINENO"
then :
- ac_cv_cflags__mabi_ms=yes
+ ac_cv_mabi_ms=yes
else $as_nop
- ac_cv_cflags__mabi_ms=no
+ ac_cv_mabi_ms=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext
-CFLAGS=$ac_wine_try_cflags_saved
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ CFLAGS=$saved_CFLAGS
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__mabi_ms" >&5
-printf "%s\n" "$ac_cv_cflags__mabi_ms" >&6; }
-if test "x$ac_cv_cflags__mabi_ms" = xyes
-then :
- MSVCRTFLAGS="$MSVCRTFLAGS -mabi=ms"
-fi ;;
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_mabi_ms" >&5
+printf "%s\n" "$ac_cv_mabi_ms" >&6; }
+ test $ac_cv_mabi_ms = yes || as_fn_error $? "The compiler doesn't support -mabi=ms. Use gcc instead of clang, or install mingw-w64." "$LINENO" 5
+ fi
+ MSVCRTFLAGS="$MSVCRTFLAGS -mabi=ms" ;;
esac ;;
esac
diff --git a/configure.ac b/configure.ac
index d14cc396e51..7881af45e5b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1893,7 +1893,17 @@ char*f(const char *h,char n) {return strchr(h,n);}]])],[ac_cv_c_logicalop_noisy=
dnl Mingw uses Windows 64-bit types, not Unix ones
cygwin*|mingw32*) WINE_TRY_CFLAGS([-Wno-format]) ;;
dnl Default to ms_abi on 64-bit
- *) WINE_TRY_CFLAGS([-mabi=ms],[MSVCRTFLAGS="$MSVCRTFLAGS -mabi=ms"]) ;;
+ *) if test -z "$CROSSTARGET"
+ then
+ AC_CACHE_CHECK([for working -mabi=ms], ac_cv_mabi_ms,
+ [CFLAGS="$CFLAGS -mabi=ms"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>
+int a(int b, ...) { __builtin_ms_va_list list; __builtin_ms_va_start(list,b); }]])],
+ [ac_cv_mabi_ms=yes],[ac_cv_mabi_ms=no])
+ CFLAGS=$saved_CFLAGS])
+ test $ac_cv_mabi_ms = yes || AC_MSG_ERROR([The compiler doesn't support -mabi=ms. Use gcc instead of clang, or install mingw-w64.])
+ fi
+ MSVCRTFLAGS="$MSVCRTFLAGS -mabi=ms" ;;
esac ;;
esac
More information about the wine-cvs
mailing list