configure: Fix CC version check on Apple compilers
authorBen Gamari <bgamari.foss@gmail.com>
Tue, 10 Oct 2017 20:09:39 +0000 (16:09 -0400)
committerBen Gamari <ben@smart-cactus.org>
Mon, 16 Oct 2017 21:24:49 +0000 (17:24 -0400)
It seems that some Apple LLVM wrappers emit multiple messages containing
the string "version", which we previously used to find the version
number.  For instance,

    Configured with: --prefix=/Applications/Xcode.app/Contents/...
    Apple LLVM version 9.0.0 (clang-900.0.37)
    Target: x86_64-apple-darwin16.7.0
    Thread model: posix
    InstalledDir: /Applications/Xcode.app/Contents/Developer/...
    Found CUDA installation: /usr/local/cuda, version 8.0

We now take care to only look at the first occurrence of this string.

New `sed` command due to @merijn.

Test Plan: Validate on all the compilers

Reviewers: austin, hvr

Subscribers: rwbarton, thomie, merijn, erikd

Differential Revision: https://phabricator.haskell.org/D4069

aclocal.m4

index 7e1e3e1..64fa8bf 100644 (file)
@@ -1234,7 +1234,9 @@ GccLT44=NO
 GccLT46=NO
 AC_CACHE_CHECK([version of gcc], [fp_cv_gcc_version],
 [
-    fp_cv_gcc_version="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [[^0-9]]*\([[0-9.]]*\).*/\1/g'`"
+    # Be sure only to look at the first occurrence of the "version " string;
+    # Some Apple compilers emit multiple messages containing this string.
+    fp_cv_gcc_version="`$CC -v 2>&1 | sed -n -e '1,/version /s/.*version [[^0-9]]*\([[0-9.]]*\).*/\1/p'`"
     FP_COMPARE_VERSIONS([$fp_cv_gcc_version], [-lt], [3.0],
                         [AC_MSG_ERROR([Need at least gcc version 3.0 (3.4+ recommended)])])
     # See #2770: gcc 2.95 doesn't work any more, apparently.  There probably