Recognize clang version correctly. Closes #301984.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12649 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/configure.in b/configure.in
index 954df7c..4ccbc1f 100644
--- a/configure.in
+++ b/configure.in
@@ -110,20 +110,22 @@
# OS/X 10.6: i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
# OS/X 10.7: i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
# Clang: clang version 2.9 (tags/RELEASE_29/final)
+# Apple clang: Apple clang version 3.1 (tags/Apple/clang-318.0.58) (based on LLVM 3.1svn)
+# FreeBSD clang: FreeBSD clang version 3.1 (branches/release_31 156863) 20120523
#
[
- gcc_version=`${CC} -dumpversion 2>/dev/null`
- if test "x$gcc_version" = x; then
- gcc_version=`${CC} --version \
- | $SED -n -e 's/[^ ]*gcc[^ ]* ([^)]*) \([0-9.]*\).*$/\1/p' \
- -e 's/[^ ]*clang version \([0-9.]*\).*$/\1/p'`
- fi
-]
-
-is_clang="notclang"
-if test "x`${CC} --version | head -n 1 | $SED 's/\(clang\) version.*/\1/'`" = "xclang" ; then
- is_clang="clang"
+if test "x`${CC} --version | $SED -n -e 's/.*\(clang\) version.*/\1/p'`" = "xclang" ; then
+ is_clang="clang"
+ # Don't use -dumpversion with clang: it will always produce "4.2.1".
+ gcc_version=`${CC} --version | $SED -n -e 's/.*clang version \([0-9.]*\).*$/\1/p'`
+else
+ is_clang="notclang"
+ gcc_version=`${CC} -dumpversion 2>/dev/null`
+ if test "x$gcc_version" = x; then
+ gcc_version=`${CC} --version | $SED -n -e 's/[^ ]*gcc[^ ]* ([^)]*) \([0-9.]*\).*$/\1/p'`
+ fi
fi
+]
case "${is_clang}-${gcc_version}" in
notclang-3.*)
@@ -132,7 +134,7 @@
notclang-4.*)
AC_MSG_RESULT([ok (${gcc_version})])
;;
- clang-2.9)
+ clang-2.9|clang-3.*)
AC_MSG_RESULT([ok (clang-${gcc_version})])
;;
*)