summaryrefslogtreecommitdiffstats
path: root/src/configure.in
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2013-10-02 18:23:07 +0200
committerBram Moolenaar <Bram@vim.org>2013-10-02 18:23:07 +0200
commit0c6ccfdb62f233963ca2bd05092b94a0b855fcee (patch)
treefe7881b10121d9fcf4fdbfddc282747e822dc958 /src/configure.in
parent35a7c681bce136b6993c1c6f6e2fdf3e3667791d (diff)
updated for version 7.4.048v7.4.048
Problem: Recent clang version complains about -fno-strength-reduce. Solution: Add a configure check for the clang version. (Kazunobu Kuriyama)
Diffstat (limited to 'src/configure.in')
-rw-r--r--src/configure.in23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/configure.in b/src/configure.in
index ed30bedf86..11e1d63d96 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -62,6 +62,29 @@ if test "$GCC" = yes; then
fi
fi
+dnl clang-500.2.75 or around has abandoned -f[no-]strength-reduce and issues a
+dnl warning when that flag is passed to. Accordingly, adjust CFLAGS based on
+dnl the version number of the clang in use.
+dnl Note that this does not work to get the version of clang 3.1 or 3.2.
+AC_MSG_CHECKING(for recent clang version)
+CLANG_VERSION_STRING=`"$CC" --version 2>/dev/null | sed -n -e 's/^.*clang.*\([[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\).*$/\1/p'`
+if test x"$CLANG_VERSION_STRING" != x"" ; then
+ CLANG_MAJOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/\([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*/\1/p'`
+ CLANG_MINOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[[0-9]][[0-9]]*\.\([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*/\1/p'`
+ CLANG_REVISION=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.\([[0-9]][[0-9]]*\)/\1/p'`
+ CLANG_VERSION=`expr $CLANG_MAJOR '*' 1000000 '+' $CLANG_MINOR '*' 1000 '+' $CLANG_REVISION`
+ AC_MSG_RESULT($CLANG_VERSION)
+ dnl If you find the same issue with versions earlier than 500.2.75,
+ dnl change the constant 500002075 below appropriately. To get the
+ dnl integer corresponding to a version number, refer to the
+ dnl definition of CLANG_VERSION above.
+ if test "$CLANG_VERSION" -ge 500002075 ; then
+ CFLAGS=`echo "$CFLAGS" | sed -n -e 's/-fno-strength-reduce/ /p'`
+ fi
+else
+ AC_MSG_RESULT(no)
+fi
+
dnl If configure thinks we are cross compiling, there might be something
dnl wrong with the CC or CFLAGS settings, give a useful warning message
if test "$cross_compiling" = yes; then