From: Wayne Davison Date: Sat, 20 Jun 2020 21:40:56 +0000 (-0700) Subject: Use AC_RUN_IFELSE() to make sure we can run the cpp test program. X-Git-Tag: v3.2.1pre1~32 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1b5819efbd59abc9e18973080f6c829441470017;p=thirdparty%2Frsync.git Use AC_RUN_IFELSE() to make sure we can run the cpp test program. --- diff --git a/configure.ac b/configure.ac index 034c6737..06f740da 100644 --- a/configure.ac +++ b/configure.ac @@ -204,13 +204,19 @@ if test x"$enable_simd" != x"no"; then # For x86-64 SIMD, g++ >=5 or clang++ >=7 is required if test x"$build_cpu" = x"x86_64"; then AC_LANG(C++) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include + SAVE_FLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-rtti" + AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include #include -__attribute__ ((target("default"))) static int testing(int x) { return x; } -__attribute__ ((target("sse3"))) static int testing(int x) { return x; } -__attribute__ ((target("sse2"))) static int testing(int x) { return x; } -]], [[if (testing(42)) printf("HERE\n");]])],[CXX_OK=yes],[CXX_OK=no]) +__attribute__ ((target("default"))) int test_ssse3(int x) { return x; } +__attribute__ ((target("default"))) int test_sse2(int x) { return x; } +__attribute__ ((target("default"))) int test_avx2(int x) { return x; } +__attribute__ ((target("ssse3"))) int test_ssse3(int x) { return x; } +__attribute__ ((target("sse2"))) int test_sse2(int x) { return x; } +__attribute__ ((target("avx2"))) int test_avx2(int x) { return x; } +]], [[if (test_ssse3(42) != 42 || test_sse2(42) != 42 || test_avx2(42) != 42) exit(1);]])],[CXX_OK=yes],[CXX_OK=no]) AC_LANG(C) + CXXFLAGS="$SAVE_FLAGS" if test x"$CXX_OK" = x"yes"; then # AC_MSG_RESULT() is called below. SIMD="$SIMD x86_64"