From: Eric Leblond Date: Thu, 8 Nov 2012 22:39:20 +0000 (+0100) Subject: configure: improve march=native detection X-Git-Tag: suricata-1.4beta3~29 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=37b05b2396f07f898288aac03c5aad5a2592169c;p=thirdparty%2Fsuricata.git configure: improve march=native detection clang is supposed to support march=native but if the CPU is too recent for clang, this can cause an invalid detection of arch and result in a incapability of clang to compile any binary. This patch updates the test to try a compilation with march=native when clang is the used compiler. --- diff --git a/configure.ac b/configure.ac index 3aa62b45cc..510928385c 100644 --- a/configure.ac +++ b/configure.ac @@ -248,22 +248,40 @@ AC_INIT(configure.ac) AC_ARG_ENABLE(gccmarch_native, AS_HELP_STRING([--enable-gccmarch-native], [Enable gcc march=native gcc 4.2 and later only]),,[enable_gccmarch_native=yes]) AS_IF([test "x$enable_gccmarch_native" = "xyes"], [ - case $host in - *darwin*|*Darwin*) - if test "$gccvernum" -ge "403"; then - dnl gcc 4.3 or later - CFLAGS="$CFLAGS -march=native" - else - enable_gccmarch_native=no - fi - ;; - *) - if test "$gccvernum" -ge "402"; then - dnl gcc 4.2 or later - CFLAGS="$CFLAGS -march=native" - fi - ;; - esac + if test `basename $CC` = "clang"; then + OFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -march=native" + AC_MSG_CHECKING([checking if $CC supports -march=native]) + AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include ]])], + [ + AC_MSG_RESULT([yes]) + CFLAGS="$OFLAGS -march=native" + ], + [ + AC_MSG_RESULT([no]) + CFLAGS="$OFLAGS" + enable_gccmarch_native=no + ] + ) + fi + if test `basename $CC` = "gcc"; then + case $host in + *darwin*|*Darwin*) + if test "$gccvernum" -ge "403"; then + dnl gcc 4.3 or later + CFLAGS="$CFLAGS -march=native" + else + enable_gccmarch_native=no + fi + ;; + *) + if test "$gccvernum" -ge "402"; then + dnl gcc 4.2 or later + CFLAGS="$CFLAGS -march=native" + fi + ;; + esac + fi ]) # options