From cff35d4de1bbc7fb51a0f0317fbb138fdcf25f0d Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 6 Dec 2019 10:40:00 +0100 Subject: [PATCH] configure: Disable gcc control flow protection. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48161 Signed-off-by: Alexandre Julliard --- configure | 27 ++++++++++++++++++++++++++- configure.ac | 1 + 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 5dc6347ee16..8e5bee0501d 100755 --- a/configure +++ b/configure @@ -16875,7 +16875,32 @@ $as_echo "$ac_cv_c_gcc_strength_bug" >&6; } EXTRACFLAGS="$EXTRACFLAGS -fno-strength-reduce" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fno-strict-aliasing" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fcf-protection=none" >&5 +$as_echo_n "checking whether the compiler supports -fcf-protection=none... " >&6; } +if ${ac_cv_cflags__fcf_protection_none+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_wine_try_cflags_saved=$CFLAGS +CFLAGS="$CFLAGS -fcf-protection=none" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(int argc, char **argv) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_cflags__fcf_protection_none=yes +else + ac_cv_cflags__fcf_protection_none=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +CFLAGS=$ac_wine_try_cflags_saved +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__fcf_protection_none" >&5 +$as_echo "$ac_cv_cflags__fcf_protection_none" >&6; } +if test "x$ac_cv_cflags__fcf_protection_none" = xyes; then : + EXTRACFLAGS="$EXTRACFLAGS -fcf-protection=none" +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fno-strict-aliasing" >&5 $as_echo_n "checking whether the compiler supports -fno-strict-aliasing... " >&6; } if ${ac_cv_cflags__fno_strict_aliasing+:} false; then : $as_echo_n "(cached) " >&6 diff --git a/configure.ac b/configure.ac index b0ba0941342..9b6bc2bc9f6 100644 --- a/configure.ac +++ b/configure.ac @@ -2026,6 +2026,7 @@ then fi dnl Check for some compiler flags + WINE_TRY_CFLAGS([-fcf-protection=none]) WINE_TRY_CFLAGS([-fno-strict-aliasing]) WINE_TRY_CFLAGS([-fexcess-precision=standard],[AC_SUBST(EXCESS_PRECISION_CFLAGS,"-fexcess-precision=standard")]) dnl clang needs to be told to fail on unknown options