about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCarter Tazio Schonwald <carter.schonwald@gmail.com>2013-12-14 02:59:40 -0500
committerCarter Tazio Schonwald <carter.schonwald@gmail.com>2013-12-16 20:00:37 -0500
commitd9525530482f12f9814f46148ba02d3d1ecebee5 (patch)
treea3b9f0731e2f22b78c61b9c2d5995071bf9766bb
parent8d52dfbace05c46754f4f6bb5a25f55906c9d7b0 (diff)
downloadrust-d9525530482f12f9814f46148ba02d3d1ecebee5.tar.gz
rust-d9525530482f12f9814f46148ba02d3d1ecebee5.zip
provide an error at at configure time if gcc, and g++ point to a mixture of clang and gcc. Fixes issue #10959
Signed-off-by: Carter Tazio Schonwald <carter.schonwald@gmail.com>
-rwxr-xr-xconfigure21
1 files changed, 21 insertions, 0 deletions
diff --git a/configure b/configure
index a97219cd9dc..30bbb05cf5d 100755
--- a/configure
+++ b/configure
@@ -559,6 +559,27 @@ then
         step_msg "on OS X 10.9, forcing use of clang"
         CFG_ENABLE_CLANG=1
         putvar CFG_ENABLE_CLANG
+    else 
+        # on OS X, with xcode 5 and newer, certain developers may have 
+        # cc, gcc and g++ point to a  mixture of clang and gcc
+        # if so, this will create very strange build errors 
+        # this last stanza is to detect some such problems and save the future rust
+        # contributor some time solving that issue.
+        # this detection could be generalized to other OSes aside from OS X
+        # but the issue seems most likely to happen on OS X
+
+        chk_cc () {
+            $1 --version 2> /dev/null | grep -q $2
+        }
+        # check that gcc, cc and g++ all point to the same compiler.
+        # note that for xcode 5, g++ points to clang, not clang++
+        if !((chk_cc gcc clang  && chk_cc g++ clang) ||
+            (chk_cc gcc gcc  &&( chk_cc g++ g++ || chk g++ gcc))) then
+            err "the gcc and g++ in your path point to different compilers. 
+Check which versions are in your path with  cc --version and g++ --version. 
+To resolve this problem, either fix your PATH  or run configure with --enable-clang"
+        fi
+
     fi
 fi