From 5f69fee26e0688c1646c8724ab794cb0c8d7c44d Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 9 Mar 2017 11:58:40 +0100 Subject: patch 8.0.0434: clang version not correctly detected Problem: Clang version not correctly detected. Solution: Adjust the configure script. (Kazunobu Kuriyama) --- src/auto/configure | 33 ++++++++++++++++++++++++++------- src/configure.ac | 20 ++++++++++++++++---- src/version.c | 2 ++ 3 files changed, 44 insertions(+), 11 deletions(-) diff --git a/src/auto/configure b/src/auto/configure index b4745ea80..34770f8ba 100755 --- a/src/auto/configure +++ b/src/auto/configure @@ -4114,9 +4114,9 @@ if test "$GCC" = yes; then fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for recent clang version" >&5 -$as_echo_n "checking for recent clang version... " >&6; } -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'` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang version" >&5 +$as_echo_n "checking for clang version... " >&6; } +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][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'` @@ -4124,12 +4124,19 @@ if test x"$CLANG_VERSION_STRING" != x"" ; then CLANG_VERSION=`expr $CLANG_MAJOR '*' 1000000 '+' $CLANG_MINOR '*' 1000 '+' $CLANG_REVISION` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CLANG_VERSION" >&5 $as_echo "$CLANG_VERSION" >&6; } - if test "$CLANG_VERSION" -ge 500002075 ; then - CFLAGS=`echo "$CFLAGS" | sed -n -e 's/-fno-strength-reduce/ /p'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if clang supports -fno-strength-reduce" >&5 +$as_echo_n "checking if clang supports -fno-strength-reduce... " >&6; } + if test "$CLANG_VERSION" -ge 500002075 ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + CFLAGS=`echo "$CFLAGS" | sed -e 's/-fno-strength-reduce/ /'` + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: N/A" >&5 +$as_echo "N/A" >&6; } fi CROSS_COMPILING= @@ -10094,6 +10101,18 @@ fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /proc/self/exe" >&5 +$as_echo_n "checking for /proc/self/exe... " >&6; } +if test -L "/proc/self/exe"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + $as_echo "#define HAVE_PROC_SELF_EXE 1" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CYGWIN or MSYS environment" >&5 $as_echo_n "checking for CYGWIN or MSYS environment... " >&6; } case `uname` in diff --git a/src/configure.ac b/src/configure.ac index 1706a8d9a..113fad1d2 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -67,8 +67,8 @@ 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'` +AC_MSG_CHECKING(for 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]][[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'` @@ -79,11 +79,15 @@ if test x"$CLANG_VERSION_STRING" != x"" ; then 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. + AC_MSG_CHECKING(if clang supports -fno-strength-reduce) if test "$CLANG_VERSION" -ge 500002075 ; then - CFLAGS=`echo "$CFLAGS" | sed -n -e 's/-fno-strength-reduce/ /p'` + AC_MSG_RESULT(no) + CFLAGS=`echo "$CFLAGS" | sed -e 's/-fno-strength-reduce/ /'` + else + AC_MSG_RESULT(yes) fi else - AC_MSG_RESULT(no) + AC_MSG_RESULT(N/A) fi dnl If configure thinks we are cross compiling, there might be something @@ -3016,6 +3020,14 @@ dnl --------------------------------------------------------------------------- dnl end of GUI-checking dnl --------------------------------------------------------------------------- +AC_MSG_CHECKING([for /proc/self/exe]) +if test -L "/proc/self/exe"; then + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PROC_SELF_EXE) +else + AC_MSG_RESULT(no) +fi + dnl Check for Cygwin, which needs an extra source file if not using X11 AC_MSG_CHECKING(for CYGWIN or MSYS environment) case `uname` in diff --git a/src/version.c b/src/version.c index cbb1bba28..2a032c5be 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 434, /**/ 433, /**/ -- cgit v1.2.3