[llvm] r199325 - Sink the autoconf check for sufficiently modern host toolchain below the
Quentin Colombet
qcolombet at apple.com
Wed Jan 15 11:38:54 PST 2014
Hi Chandler,
I do not know if it was expected, but when I run configure one my iMac running Mavericks, I now get the following error:
checking for clang... clang
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking for clang option to accept ISO C89... none needed
checking for clang++... clang++
checking whether we are using the GNU C++ compiler... yes
checking whether clang++ accepts -g... yes
checking how to run the C preprocessor... clang -E
checking whether clang works... no
configure: error: Selected compiler could not find or parse C++ standard library headers. Rerun with CC=c-compiler CXX=c++-compiler ./configure ...
Specifying CC and CXX as suggested seem to fix the problem.
Thanks,
-Quentin
On Jan 15, 2014, at 11:19 AM, Chandler Carruth <chandlerc at gmail.com> wrote:
> Author: chandlerc
> Date: Wed Jan 15 13:19:13 2014
> New Revision: 199325
>
> URL: http://llvm.org/viewvc/llvm-project?rev=199325&view=rev
> Log:
> Sink the autoconf check for sufficiently modern host toolchain below the
> enable flag that selects the C++ standard library to use with the host
> toolchain. Otherwise we end up testing the wrong config.
>
> I'm not really happy about this placement, but its pragmatic and should
> unblock the Apple builders.
>
> 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=199325&r1=199324&r2=199325&view=diff
> ==============================================================================
> --- llvm/trunk/autoconf/configure.ac (original)
> +++ llvm/trunk/autoconf/configure.ac Wed Jan 15 13:19:13 2014
> @@ -115,81 +115,6 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#if
> AC_LANG_POP([C++])
> AC_MSG_RESULT([${llvm_cv_cxx_compiler}])
>
> -dnl Check both GCC and Clang for sufficiently modern versions. These checks can
> -dnl be bypassed by passing a flag if necessary on a platform.
> -AC_ARG_ENABLE(compiler-version-checks,
> - AS_HELP_STRING([--enable-compiler-version-checks],
> - [Check the version of the host compiler (default is YES)]),,
> - enableval=default)
> -case "$enableval" in
> - no)
> - ;;
> - yes|default)
> - AC_LANG_PUSH([C++])
> - case "$llvm_cv_cxx_compiler" in
> - clang)
> - AC_MSG_CHECKING([whether Clang is new enough])
> - AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
> -#if __clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 1)
> -#error This version of Clang is too old to build LLVM
> -#endif
> -]])],
> - [AC_MSG_RESULT([yes])],
> - [AC_MSG_RESULT([no])
> - AC_MSG_ERROR([
> -The selected Clang compiler is not new enough to build LLVM. Please upgrade to
> -Clang 3.1. You may pass --disable-compiler-version-checks to configure to
> -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([[
> -#include <atomic>
> -std::atomic<float> x(0.0f);
> -int main() { return (float)x; }
> -]])],
> - [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
> -than 4.7. You will need to update your system and ensure Clang uses the newer
> -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"
> - ;;
> - gcc)
> - AC_MSG_CHECKING([whether GCC is new enough])
> - AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
> -#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7)
> -#error This version of GCC is too old to build LLVM
> -#endif
> -]])],
> - [AC_MSG_RESULT([yes])],
> - [AC_MSG_RESULT([no])
> - AC_MSG_ERROR([
> -The selected GCC C++ compiler is not new enough to build LLVM. Please upgrade
> -to GCC 4.7. You may pass --disable-compiler-version-checks to configure to
> -bypass these sanity checks.])])
> - ;;
> - unknown)
> - ;;
> - esac
> - AC_LANG_POP([C++])
> - ;;
> - *)
> - AC_MSG_ERROR([Invalid setting for --enable-compiler-version-checks. Use "yes" or "no"])
> - ;;
> -esac
> -
> dnl Configure all of the projects present in our source tree. While we could
> dnl just AC_CONFIG_SUBDIRS on the set of directories in projects that have a
> dnl configure script, that usage of the AC_CONFIG_SUBDIRS macro is deprecated.
> @@ -582,6 +507,83 @@ case "$enableval" in
> *) AC_MSG_ERROR([Invalid setting for --enable-libcpp. Use "yes" or "no"]) ;;
> esac
>
> +dnl Check both GCC and Clang for sufficiently modern versions. These checks can
> +dnl be bypassed by passing a flag if necessary on a platform. We have to do
> +dnl these checks here so that we have the configuration of the standard C++
> +dnl library finished.
> +AC_ARG_ENABLE(compiler-version-checks,
> + AS_HELP_STRING([--enable-compiler-version-checks],
> + [Check the version of the host compiler (default is YES)]),,
> + enableval=default)
> +case "$enableval" in
> + no)
> + ;;
> + yes|default)
> + AC_LANG_PUSH([C++])
> + case "$llvm_cv_cxx_compiler" in
> + clang)
> + AC_MSG_CHECKING([whether Clang is new enough])
> + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
> +#if __clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 1)
> +#error This version of Clang is too old to build LLVM
> +#endif
> +]])],
> + [AC_MSG_RESULT([yes])],
> + [AC_MSG_RESULT([no])
> + AC_MSG_ERROR([
> +The selected Clang compiler is not new enough to build LLVM. Please upgrade to
> +Clang 3.1. You may pass --disable-compiler-version-checks to configure to
> +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([[
> +#include <atomic>
> +std::atomic<float> x(0.0f);
> +int main() { return (float)x; }
> +]])],
> + [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
> +than 4.7. You will need to update your system and ensure Clang uses the newer
> +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"
> + ;;
> + gcc)
> + AC_MSG_CHECKING([whether GCC is new enough])
> + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
> +#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7)
> +#error This version of GCC is too old to build LLVM
> +#endif
> +]])],
> + [AC_MSG_RESULT([yes])],
> + [AC_MSG_RESULT([no])
> + AC_MSG_ERROR([
> +The selected GCC C++ compiler is not new enough to build LLVM. Please upgrade
> +to GCC 4.7. You may pass --disable-compiler-version-checks to configure to
> +bypass these sanity checks.])])
> + ;;
> + unknown)
> + ;;
> + esac
> + AC_LANG_POP([C++])
> + ;;
> + *)
> + AC_MSG_ERROR([Invalid setting for --enable-compiler-version-checks. Use "yes" or "no"])
> + ;;
> +esac
> +
> dnl --enable-cxx11 : check whether or not to use -std=c++11 on the command line
> AC_ARG_ENABLE(cxx11,
> AS_HELP_STRING([--enable-cxx11],
>
> Modified: llvm/trunk/configure
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/configure?rev=199325&r1=199324&r2=199325&view=diff
> ==============================================================================
> --- llvm/trunk/configure (original)
> +++ llvm/trunk/configure Wed Jan 15 13:19:13 2014
> @@ -1395,11 +1395,11 @@ if test -n "$ac_init_help"; then
> Optional Features:
> --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
> --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
> + --enable-polly Use polly if available (default is YES)
> + --enable-libcpp Use libc++ if available (default is NO)
> --enable-compiler-version-checks
> Check the version of the host compiler (default is
> YES)
> - --enable-polly Use polly if available (default is YES)
> - --enable-libcpp Use libc++ if available (default is NO)
> --enable-cxx11 Use c++11 if available (default is NO)
> --enable-split-dwarf Use split-dwarf if available (default is NO)
> --enable-clang-arcmt Enable building of clang ARCMT (default is YES)
> @@ -3702,340 +3702,82 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
> { echo "$as_me:$LINENO: result: ${llvm_cv_cxx_compiler}" >&5
> echo "${ECHO_T}${llvm_cv_cxx_compiler}" >&6; }
>
> -# Check whether --enable-compiler-version-checks was given.
> -if test "${enable_compiler_version_checks+set}" = set; then
> - enableval=$enable_compiler_version_checks;
> -else
> - enableval=default
> -fi
>
> -case "$enableval" in
> - no)
> - ;;
> - yes|default)
> - ac_ext=cpp
> -ac_cpp='$CXXCPP $CPPFLAGS'
> -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
> -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
> -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
>
> - case "$llvm_cv_cxx_compiler" in
> - clang)
> - { echo "$as_me:$LINENO: checking whether Clang is new enough" >&5
> -echo $ECHO_N "checking whether Clang is new enough... $ECHO_C" >&6; }
> - cat >conftest.$ac_ext <<_ACEOF
> -/* confdefs.h. */
> -_ACEOF
> -cat confdefs.h >>conftest.$ac_ext
> -cat >>conftest.$ac_ext <<_ACEOF
> -/* end confdefs.h. */
> +if test -d ${srcdir}/projects/test-suite ; then
> + subdirs="$subdirs projects/test-suite"
>
> -#if __clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 1)
> -#error This version of Clang is too old to build LLVM
> -#endif
> +fi
>
> -_ACEOF
> -rm -f conftest.$ac_objext
> -if { (ac_try="$ac_compile"
> -case "(($ac_try" in
> - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> - *) ac_try_echo=$ac_try;;
> -esac
> -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> - (eval "$ac_compile") 2>conftest.er1
> - ac_status=$?
> - grep -v '^ *+' conftest.er1 >conftest.err
> - rm -f conftest.er1
> - cat conftest.err >&5
> - echo "$as_me:$LINENO: \$? = $ac_status" >&5
> - (exit $ac_status); } &&
> - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
> - { (case "(($ac_try" in
> - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> - *) ac_try_echo=$ac_try;;
> -esac
> -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> - (eval "$ac_try") 2>&5
> - ac_status=$?
> - echo "$as_me:$LINENO: \$? = $ac_status" >&5
> - (exit $ac_status); }; } &&
> - { ac_try='test -s conftest.$ac_objext'
> - { (case "(($ac_try" in
> - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> - *) ac_try_echo=$ac_try;;
> -esac
> -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> - (eval "$ac_try") 2>&5
> - ac_status=$?
> - echo "$as_me:$LINENO: \$? = $ac_status" >&5
> - (exit $ac_status); }; }; then
> - { echo "$as_me:$LINENO: result: yes" >&5
> -echo "${ECHO_T}yes" >&6; }
> -else
> - echo "$as_me: failed program was:" >&5
> -sed 's/^/| /' conftest.$ac_ext >&5
> +if test -d ${srcdir}/projects/llvm-test ; then
> + subdirs="$subdirs projects/llvm-test"
>
> - { echo "$as_me:$LINENO: result: no" >&5
> -echo "${ECHO_T}no" >&6; }
> - { { echo "$as_me:$LINENO: error:
> -The selected Clang compiler is not new enough to build LLVM. Please upgrade to
> -Clang 3.1. You may pass --disable-compiler-version-checks to configure to
> -bypass these sanity checks." >&5
> -echo "$as_me: error:
> -The selected Clang compiler is not new enough to build LLVM. Please upgrade to
> -Clang 3.1. You may pass --disable-compiler-version-checks to configure to
> -bypass these sanity checks." >&2;}
> - { (exit 1); exit 1; }; }
> fi
>
> -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
> +if test -d ${srcdir}/projects/poolalloc ; then
> + subdirs="$subdirs projects/poolalloc"
>
> - { 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
> -/* confdefs.h. */
> -_ACEOF
> -cat confdefs.h >>conftest.$ac_ext
> -cat >>conftest.$ac_ext <<_ACEOF
> -/* end confdefs.h. */
> +fi
>
> -#include <atomic>
> -std::atomic<float> x(0.0f);
> -int main() { return (float)x; }
> +if test -d ${srcdir}/projects/llvm-poolalloc ; then
> + subdirs="$subdirs projects/llvm-poolalloc"
>
> -_ACEOF
> -rm -f conftest.$ac_objext conftest$ac_exeext
> -if { (ac_try="$ac_link"
> -case "(($ac_try" in
> - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> - *) ac_try_echo=$ac_try;;
> -esac
> -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> - (eval "$ac_link") 2>conftest.er1
> - ac_status=$?
> - grep -v '^ *+' conftest.er1 >conftest.err
> - rm -f conftest.er1
> - cat conftest.err >&5
> - echo "$as_me:$LINENO: \$? = $ac_status" >&5
> - (exit $ac_status); } &&
> - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
> - { (case "(($ac_try" in
> - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> - *) ac_try_echo=$ac_try;;
> -esac
> -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> - (eval "$ac_try") 2>&5
> - ac_status=$?
> - echo "$as_me:$LINENO: \$? = $ac_status" >&5
> - (exit $ac_status); }; } &&
> - { ac_try='test -s conftest$ac_exeext'
> - { (case "(($ac_try" in
> - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> - *) ac_try_echo=$ac_try;;
> -esac
> -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> - (eval "$ac_try") 2>&5
> - ac_status=$?
> - echo "$as_me:$LINENO: \$? = $ac_status" >&5
> - (exit $ac_status); }; }; then
> - { echo "$as_me:$LINENO: result: yes" >&5
> -echo "${ECHO_T}yes" >&6; }
> +fi
> +
> +for i in `ls ${srcdir}/projects`
> +do
> + if test -d ${srcdir}/projects/${i} ; then
> + case ${i} in
> + sample) subdirs="$subdirs projects/sample"
> + ;;
> + safecode) subdirs="$subdirs projects/safecode"
> + ;;
> + compiler-rt) ;;
> + test-suite) ;;
> + llvm-test) ;;
> + poolalloc) ;;
> + llvm-poolalloc) ;;
> + *)
> + { echo "$as_me:$LINENO: WARNING: Unknown project (${i}) won't be configured automatically" >&5
> +echo "$as_me: WARNING: Unknown project (${i}) won't be configured automatically" >&2;}
> + ;;
> + esac
> + fi
> +done
> +
> +# Check whether --enable-polly was given.
> +if test "${enable_polly+set}" = set; then
> + enableval=$enable_polly;
> else
> - echo "$as_me: failed program was:" >&5
> -sed 's/^/| /' conftest.$ac_ext >&5
> + enableval=default
> +fi
>
> - { echo "$as_me:$LINENO: result: no" >&5
> -echo "${ECHO_T}no" >&6; }
> - { { 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
> -than 4.7. You will need to update your system and ensure Clang uses the newer
> -standard library.
> +case "$enableval" in
> + yes) ENABLE_POLLY=1
> + ;;
> + no) ENABLE_POLLY=0
> + ;;
> + default) ENABLE_POLLY=1
> + ;;
> + *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-polly. Use \"yes\" or \"no\"" >&5
> +echo "$as_me: error: Invalid setting for --enable-polly. Use \"yes\" or \"no\"" >&2;}
> + { (exit 1); exit 1; }; } ;;
> +esac
>
> -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." >&5
> -echo "$as_me: 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
> -than 4.7. You will need to update your system and ensure Clang uses the newer
> -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." >&2;}
> - { (exit 1); exit 1; }; }
> +if (test -d ${srcdir}/tools/polly) && (test $ENABLE_POLLY -eq 1) ; then
> + LLVM_HAS_POLLY=1
> +
> + subdirs="$subdirs tools/polly"
> +
> fi
>
> -rm -f core conftest.err conftest.$ac_objext \
> - conftest$ac_exeext conftest.$ac_ext
> - CXXFLAGS="$llvm_cv_old_cxxflags"
> - ;;
> - gcc)
> - { echo "$as_me:$LINENO: checking whether GCC is new enough" >&5
> -echo $ECHO_N "checking whether GCC is new enough... $ECHO_C" >&6; }
> - cat >conftest.$ac_ext <<_ACEOF
> -/* confdefs.h. */
> -_ACEOF
> -cat confdefs.h >>conftest.$ac_ext
> -cat >>conftest.$ac_ext <<_ACEOF
> -/* end confdefs.h. */
>
> -#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7)
> -#error This version of GCC is too old to build LLVM
> -#endif
> -
> -_ACEOF
> -rm -f conftest.$ac_objext
> -if { (ac_try="$ac_compile"
> -case "(($ac_try" in
> - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> - *) ac_try_echo=$ac_try;;
> -esac
> -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> - (eval "$ac_compile") 2>conftest.er1
> - ac_status=$?
> - grep -v '^ *+' conftest.er1 >conftest.err
> - rm -f conftest.er1
> - cat conftest.err >&5
> - echo "$as_me:$LINENO: \$? = $ac_status" >&5
> - (exit $ac_status); } &&
> - { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
> - { (case "(($ac_try" in
> - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> - *) ac_try_echo=$ac_try;;
> -esac
> -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> - (eval "$ac_try") 2>&5
> - ac_status=$?
> - echo "$as_me:$LINENO: \$? = $ac_status" >&5
> - (exit $ac_status); }; } &&
> - { ac_try='test -s conftest.$ac_objext'
> - { (case "(($ac_try" in
> - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> - *) ac_try_echo=$ac_try;;
> -esac
> -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> - (eval "$ac_try") 2>&5
> - ac_status=$?
> - echo "$as_me:$LINENO: \$? = $ac_status" >&5
> - (exit $ac_status); }; }; then
> - { echo "$as_me:$LINENO: result: yes" >&5
> -echo "${ECHO_T}yes" >&6; }
> -else
> - echo "$as_me: failed program was:" >&5
> -sed 's/^/| /' conftest.$ac_ext >&5
> -
> - { echo "$as_me:$LINENO: result: no" >&5
> -echo "${ECHO_T}no" >&6; }
> - { { echo "$as_me:$LINENO: error:
> -The selected GCC C++ compiler is not new enough to build LLVM. Please upgrade
> -to GCC 4.7. You may pass --disable-compiler-version-checks to configure to
> -bypass these sanity checks." >&5
> -echo "$as_me: error:
> -The selected GCC C++ compiler is not new enough to build LLVM. Please upgrade
> -to GCC 4.7. You may pass --disable-compiler-version-checks to configure to
> -bypass these sanity checks." >&2;}
> - { (exit 1); exit 1; }; }
> -fi
> -
> -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
> - ;;
> - unknown)
> - ;;
> - esac
> - ac_ext=c
> -ac_cpp='$CPP $CPPFLAGS'
> -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
> -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
> -ac_compiler_gnu=$ac_cv_c_compiler_gnu
> -
> - ;;
> - *)
> - { { echo "$as_me:$LINENO: error: Invalid setting for --enable-compiler-version-checks. Use \"yes\" or \"no\"" >&5
> -echo "$as_me: error: Invalid setting for --enable-compiler-version-checks. Use \"yes\" or \"no\"" >&2;}
> - { (exit 1); exit 1; }; }
> - ;;
> -esac
> -
> -
> -
> -if test -d ${srcdir}/projects/test-suite ; then
> - subdirs="$subdirs projects/test-suite"
> -
> -fi
> -
> -if test -d ${srcdir}/projects/llvm-test ; then
> - subdirs="$subdirs projects/llvm-test"
> -
> -fi
> -
> -if test -d ${srcdir}/projects/poolalloc ; then
> - subdirs="$subdirs projects/poolalloc"
> -
> -fi
> -
> -if test -d ${srcdir}/projects/llvm-poolalloc ; then
> - subdirs="$subdirs projects/llvm-poolalloc"
> -
> -fi
> -
> -for i in `ls ${srcdir}/projects`
> -do
> - if test -d ${srcdir}/projects/${i} ; then
> - case ${i} in
> - sample) subdirs="$subdirs projects/sample"
> - ;;
> - safecode) subdirs="$subdirs projects/safecode"
> - ;;
> - compiler-rt) ;;
> - test-suite) ;;
> - llvm-test) ;;
> - poolalloc) ;;
> - llvm-poolalloc) ;;
> - *)
> - { echo "$as_me:$LINENO: WARNING: Unknown project (${i}) won't be configured automatically" >&5
> -echo "$as_me: WARNING: Unknown project (${i}) won't be configured automatically" >&2;}
> - ;;
> - esac
> - fi
> -done
> -
> -# Check whether --enable-polly was given.
> -if test "${enable_polly+set}" = set; then
> - enableval=$enable_polly;
> -else
> - enableval=default
> -fi
> -
> -case "$enableval" in
> - yes) ENABLE_POLLY=1
> - ;;
> - no) ENABLE_POLLY=0
> - ;;
> - default) ENABLE_POLLY=1
> - ;;
> - *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-polly. Use \"yes\" or \"no\"" >&5
> -echo "$as_me: error: Invalid setting for --enable-polly. Use \"yes\" or \"no\"" >&2;}
> - { (exit 1); exit 1; }; } ;;
> -esac
> -
> -
> -if (test -d ${srcdir}/tools/polly) && (test $ENABLE_POLLY -eq 1) ; then
> - LLVM_HAS_POLLY=1
> -
> - subdirs="$subdirs tools/polly"
> -
> -fi
> -
> -
> -# Make sure we can run config.sub.
> -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
> - { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
> -echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
> - { (exit 1); exit 1; }; }
> +# Make sure we can run config.sub.
> +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
> + { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
> +echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
> + { (exit 1); exit 1; }; }
>
> { echo "$as_me:$LINENO: checking build system type" >&5
> echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
> @@ -4790,6 +4532,264 @@ echo "$as_me: error: Invalid setting for
> { (exit 1); exit 1; }; } ;;
> esac
>
> +# Check whether --enable-compiler-version-checks was given.
> +if test "${enable_compiler_version_checks+set}" = set; then
> + enableval=$enable_compiler_version_checks;
> +else
> + enableval=default
> +fi
> +
> +case "$enableval" in
> + no)
> + ;;
> + yes|default)
> + ac_ext=cpp
> +ac_cpp='$CXXCPP $CPPFLAGS'
> +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
> +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
> +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
> +
> + case "$llvm_cv_cxx_compiler" in
> + clang)
> + { echo "$as_me:$LINENO: checking whether Clang is new enough" >&5
> +echo $ECHO_N "checking whether Clang is new enough... $ECHO_C" >&6; }
> + cat >conftest.$ac_ext <<_ACEOF
> +/* confdefs.h. */
> +_ACEOF
> +cat confdefs.h >>conftest.$ac_ext
> +cat >>conftest.$ac_ext <<_ACEOF
> +/* end confdefs.h. */
> +
> +#if __clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 1)
> +#error This version of Clang is too old to build LLVM
> +#endif
> +
> +_ACEOF
> +rm -f conftest.$ac_objext
> +if { (ac_try="$ac_compile"
> +case "(($ac_try" in
> + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> + *) ac_try_echo=$ac_try;;
> +esac
> +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> + (eval "$ac_compile") 2>conftest.er1
> + ac_status=$?
> + grep -v '^ *+' conftest.er1 >conftest.err
> + rm -f conftest.er1
> + cat conftest.err >&5
> + echo "$as_me:$LINENO: \$? = $ac_status" >&5
> + (exit $ac_status); } &&
> + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
> + { (case "(($ac_try" in
> + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> + *) ac_try_echo=$ac_try;;
> +esac
> +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> + (eval "$ac_try") 2>&5
> + ac_status=$?
> + echo "$as_me:$LINENO: \$? = $ac_status" >&5
> + (exit $ac_status); }; } &&
> + { ac_try='test -s conftest.$ac_objext'
> + { (case "(($ac_try" in
> + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> + *) ac_try_echo=$ac_try;;
> +esac
> +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> + (eval "$ac_try") 2>&5
> + ac_status=$?
> + echo "$as_me:$LINENO: \$? = $ac_status" >&5
> + (exit $ac_status); }; }; then
> + { echo "$as_me:$LINENO: result: yes" >&5
> +echo "${ECHO_T}yes" >&6; }
> +else
> + echo "$as_me: failed program was:" >&5
> +sed 's/^/| /' conftest.$ac_ext >&5
> +
> + { echo "$as_me:$LINENO: result: no" >&5
> +echo "${ECHO_T}no" >&6; }
> + { { echo "$as_me:$LINENO: error:
> +The selected Clang compiler is not new enough to build LLVM. Please upgrade to
> +Clang 3.1. You may pass --disable-compiler-version-checks to configure to
> +bypass these sanity checks." >&5
> +echo "$as_me: error:
> +The selected Clang compiler is not new enough to build LLVM. Please upgrade to
> +Clang 3.1. You may pass --disable-compiler-version-checks to configure to
> +bypass these sanity checks." >&2;}
> + { (exit 1); exit 1; }; }
> +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
> +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
> +/* confdefs.h. */
> +_ACEOF
> +cat confdefs.h >>conftest.$ac_ext
> +cat >>conftest.$ac_ext <<_ACEOF
> +/* end confdefs.h. */
> +
> +#include <atomic>
> +std::atomic<float> x(0.0f);
> +int main() { return (float)x; }
> +
> +_ACEOF
> +rm -f conftest.$ac_objext conftest$ac_exeext
> +if { (ac_try="$ac_link"
> +case "(($ac_try" in
> + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> + *) ac_try_echo=$ac_try;;
> +esac
> +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> + (eval "$ac_link") 2>conftest.er1
> + ac_status=$?
> + grep -v '^ *+' conftest.er1 >conftest.err
> + rm -f conftest.er1
> + cat conftest.err >&5
> + echo "$as_me:$LINENO: \$? = $ac_status" >&5
> + (exit $ac_status); } &&
> + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
> + { (case "(($ac_try" in
> + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> + *) ac_try_echo=$ac_try;;
> +esac
> +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> + (eval "$ac_try") 2>&5
> + ac_status=$?
> + echo "$as_me:$LINENO: \$? = $ac_status" >&5
> + (exit $ac_status); }; } &&
> + { ac_try='test -s conftest$ac_exeext'
> + { (case "(($ac_try" in
> + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> + *) ac_try_echo=$ac_try;;
> +esac
> +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> + (eval "$ac_try") 2>&5
> + ac_status=$?
> + echo "$as_me:$LINENO: \$? = $ac_status" >&5
> + (exit $ac_status); }; }; then
> + { echo "$as_me:$LINENO: result: yes" >&5
> +echo "${ECHO_T}yes" >&6; }
> +else
> + echo "$as_me: failed program was:" >&5
> +sed 's/^/| /' conftest.$ac_ext >&5
> +
> + { echo "$as_me:$LINENO: result: no" >&5
> +echo "${ECHO_T}no" >&6; }
> + { { 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
> +than 4.7. You will need to update your system and ensure Clang uses the newer
> +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." >&5
> +echo "$as_me: 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
> +than 4.7. You will need to update your system and ensure Clang uses the newer
> +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." >&2;}
> + { (exit 1); exit 1; }; }
> +fi
> +
> +rm -f core conftest.err conftest.$ac_objext \
> + conftest$ac_exeext conftest.$ac_ext
> + CXXFLAGS="$llvm_cv_old_cxxflags"
> + ;;
> + gcc)
> + { echo "$as_me:$LINENO: checking whether GCC is new enough" >&5
> +echo $ECHO_N "checking whether GCC is new enough... $ECHO_C" >&6; }
> + cat >conftest.$ac_ext <<_ACEOF
> +/* confdefs.h. */
> +_ACEOF
> +cat confdefs.h >>conftest.$ac_ext
> +cat >>conftest.$ac_ext <<_ACEOF
> +/* end confdefs.h. */
> +
> +#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7)
> +#error This version of GCC is too old to build LLVM
> +#endif
> +
> +_ACEOF
> +rm -f conftest.$ac_objext
> +if { (ac_try="$ac_compile"
> +case "(($ac_try" in
> + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> + *) ac_try_echo=$ac_try;;
> +esac
> +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> + (eval "$ac_compile") 2>conftest.er1
> + ac_status=$?
> + grep -v '^ *+' conftest.er1 >conftest.err
> + rm -f conftest.er1
> + cat conftest.err >&5
> + echo "$as_me:$LINENO: \$? = $ac_status" >&5
> + (exit $ac_status); } &&
> + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
> + { (case "(($ac_try" in
> + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> + *) ac_try_echo=$ac_try;;
> +esac
> +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> + (eval "$ac_try") 2>&5
> + ac_status=$?
> + echo "$as_me:$LINENO: \$? = $ac_status" >&5
> + (exit $ac_status); }; } &&
> + { ac_try='test -s conftest.$ac_objext'
> + { (case "(($ac_try" in
> + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> + *) ac_try_echo=$ac_try;;
> +esac
> +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
> + (eval "$ac_try") 2>&5
> + ac_status=$?
> + echo "$as_me:$LINENO: \$? = $ac_status" >&5
> + (exit $ac_status); }; }; then
> + { echo "$as_me:$LINENO: result: yes" >&5
> +echo "${ECHO_T}yes" >&6; }
> +else
> + echo "$as_me: failed program was:" >&5
> +sed 's/^/| /' conftest.$ac_ext >&5
> +
> + { echo "$as_me:$LINENO: result: no" >&5
> +echo "${ECHO_T}no" >&6; }
> + { { echo "$as_me:$LINENO: error:
> +The selected GCC C++ compiler is not new enough to build LLVM. Please upgrade
> +to GCC 4.7. You may pass --disable-compiler-version-checks to configure to
> +bypass these sanity checks." >&5
> +echo "$as_me: error:
> +The selected GCC C++ compiler is not new enough to build LLVM. Please upgrade
> +to GCC 4.7. You may pass --disable-compiler-version-checks to configure to
> +bypass these sanity checks." >&2;}
> + { (exit 1); exit 1; }; }
> +fi
> +
> +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
> + ;;
> + unknown)
> + ;;
> + esac
> + ac_ext=c
> +ac_cpp='$CPP $CPPFLAGS'
> +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
> +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
> +ac_compiler_gnu=$ac_cv_c_compiler_gnu
> +
> + ;;
> + *)
> + { { echo "$as_me:$LINENO: error: Invalid setting for --enable-compiler-version-checks. Use \"yes\" or \"no\"" >&5
> +echo "$as_me: error: Invalid setting for --enable-compiler-version-checks. Use \"yes\" or \"no\"" >&2;}
> + { (exit 1); exit 1; }; }
> + ;;
> +esac
> +
> # Check whether --enable-cxx11 was given.
> if test "${enable_cxx11+set}" = set; then
> enableval=$enable_cxx11;
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140115/6085a012/attachment.html>
More information about the llvm-commits
mailing list