[llvm] r199334 - Use a heavier hammer when --enable-libcpp is passed to bypass the tests

Chandler Carruth chandlerc at gmail.com
Wed Jan 15 13:21:48 PST 2014


Author: chandlerc
Date: Wed Jan 15 15:21:48 2014
New Revision: 199334

URL: http://llvm.org/viewvc/llvm-project?rev=199334&view=rev
Log:
Use a heavier hammer when --enable-libcpp is passed to bypass the tests
which catch buggy versions of libstdc++. While libc++ would pass them,
we don't actually update the state in the configure script to use libc++
when we pass --enable-libcpp, the logic for that is in the
Makefiles. So just completely skip the library test when that configure
flag is passed.

Hopefully this will be enough to fix the darwin bots at last, and thanks
to Duncan Smith for getting things set up so I can watch the bots myself
on lab.llvm.org and see any failures!

Modified:
    llvm/trunk/autoconf/configure.ac
    llvm/trunk/configure

Modified: llvm/trunk/autoconf/configure.ac
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/autoconf/configure.ac?rev=199334&r1=199333&r2=199334&view=diff
==============================================================================
--- llvm/trunk/autoconf/configure.ac (original)
+++ llvm/trunk/autoconf/configure.ac Wed Jan 15 15:21:48 2014
@@ -538,18 +538,21 @@ bypass these sanity checks.])])
       dnl Note that libstdc++4.6 is known broken for C++11 builds. The errors
       dnl are sometimes deeply confusing though. Here we test for an obvious
       dnl incomplete feature in 4.6's standard library that was completed in
-      dnl 4.7's.
-      AC_MSG_CHECKING([whether Clang will select a modern C++ standard library])
-      llvm_cv_old_cxxflags="$CXXFLAGS"
-      CXXFLAGS="$CXXFLAGS -std=c++0x"
-      AC_LINK_IFELSE([AC_LANG_SOURCE([[
+      dnl 4.7's. We also have to disable this test if 'ENABLE_LIBCPP' is set
+      dnl because the enable flags don't actually fix CXXFLAGS, they rely on
+      dnl that happening in the Makefile.
+      if test "$ENABLE_LIBCPP" -eq 0 ; then
+        AC_MSG_CHECKING([whether Clang will select a modern C++ standard library])
+        llvm_cv_old_cxxflags="$CXXFLAGS"
+        CXXFLAGS="$CXXFLAGS -std=c++0x"
+        AC_LINK_IFELSE([AC_LANG_SOURCE([[
 #include <atomic>
 std::atomic<float> x(0.0f);
 int main() { return (float)x; }
 ]])],
-          [AC_MSG_RESULT([yes])],
-          [AC_MSG_RESULT([no])
-           AC_MSG_ERROR([
+            [AC_MSG_RESULT([yes])],
+            [AC_MSG_RESULT([no])
+             AC_MSG_ERROR([
 We detected a missing feature in the standard C++ library that was known to be
 missing in libstdc++4.6 and implemented in libstdc++4.7. There are numerous
 C++11 problems with 4.6's library, and we don't support GCCs or libstdc++ older
@@ -558,7 +561,8 @@ standard library.
 
 If this error is incorrect or you need to force things to work, you may pass
 '--disable-compiler-version-checks' to configure to bypass this test.])])
-      CXXFLAGS="$llvm_cv_old_cxxflags"
+        CXXFLAGS="$llvm_cv_old_cxxflags"
+      fi
       ;;
     gcc)
       AC_MSG_CHECKING([whether GCC is new enough])

Modified: llvm/trunk/configure
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/configure?rev=199334&r1=199333&r2=199334&view=diff
==============================================================================
--- llvm/trunk/configure (original)
+++ llvm/trunk/configure Wed Jan 15 15:21:48 2014
@@ -4620,11 +4620,12 @@ fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-                              { echo "$as_me:$LINENO: checking whether Clang will select a modern C++ standard library" >&5
+                                          if test "$ENABLE_LIBCPP" -eq 0 ; then
+        { echo "$as_me:$LINENO: checking whether Clang will select a modern C++ standard library" >&5
 echo $ECHO_N "checking whether Clang will select a modern C++ standard library... $ECHO_C" >&6; }
-      llvm_cv_old_cxxflags="$CXXFLAGS"
-      CXXFLAGS="$CXXFLAGS -std=c++0x"
-      cat >conftest.$ac_ext <<_ACEOF
+        llvm_cv_old_cxxflags="$CXXFLAGS"
+        CXXFLAGS="$CXXFLAGS -std=c++0x"
+        cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -4678,7 +4679,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 	{ echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6; }
-           { { echo "$as_me:$LINENO: error:
+             { { echo "$as_me:$LINENO: error:
 We detected a missing feature in the standard C++ library that was known to be
 missing in libstdc++4.6 and implemented in libstdc++4.7. There are numerous
 C++11 problems with 4.6's library, and we don't support GCCs or libstdc++ older
@@ -4701,7 +4702,8 @@ fi
 
 rm -f core conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
-      CXXFLAGS="$llvm_cv_old_cxxflags"
+        CXXFLAGS="$llvm_cv_old_cxxflags"
+      fi
       ;;
     gcc)
       { echo "$as_me:$LINENO: checking whether GCC is new enough" >&5
@@ -10661,7 +10663,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 10664 "configure"
+#line 10666 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H





More information about the llvm-commits mailing list