mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-11 13:37:07 +00:00
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. llvm-svn: 199325
This commit is contained in:
parent
86672ec557
commit
463134c711
@ -115,81 +115,6 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#if ! __clang__
|
||||
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],
|
||||
|
520
configure
vendored
520
configure
vendored
@ -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,264 +3702,6 @@ 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 __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
|
||||
|
||||
|
||||
|
||||
if test -d ${srcdir}/projects/test-suite ; then
|
||||
@ -4790,6 +4532,264 @@ echo "$as_me: error: Invalid setting for --enable-libcpp. Use \"yes\" or \"no\""
|
||||
{ (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;
|
||||
|
Loading…
Reference in New Issue
Block a user