diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2014-01-17 09:47:55 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2014-01-17 09:47:55 +0000 |
commit | b2671254bdfa5463fcfaf1c5b49184ad0dd3769b (patch) | |
tree | 99ba584a4faecb05c7b270c66f4cd3c933be42da /cmake/modules | |
parent | 3039306b76aba88653c4705ca915baad9f9c8ecb (diff) | |
download | llvm-b2671254bdfa5463fcfaf1c5b49184ad0dd3769b.tar.gz llvm-b2671254bdfa5463fcfaf1c5b49184ad0dd3769b.tar.bz2 llvm-b2671254bdfa5463fcfaf1c5b49184ad0dd3769b.tar.xz |
Add the test for libstdc++ versions newer than 4.6 so we don't
accidentally pick that up while using Clang and run into subtle bugs
down the road related to C++11 features not fully implemented in that
version of the standard library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199484 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake/modules')
-rw-r--r-- | cmake/modules/HandleLLVMOptions.cmake | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake index b79ea4306e..81f688dd01 100644 --- a/cmake/modules/HandleLLVMOptions.cmake +++ b/cmake/modules/HandleLLVMOptions.cmake @@ -23,6 +23,22 @@ if(NOT LLVM_FORCE_USE_OLD_TOOLCHAIN) if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.1) message(FATAL_ERROR "Host Clang version must be at least 3.1!") endif() + + # Also test that we aren't using too old of a version of libstdc++ with the + # Clang compiler. This is tricky as there is no real way to check the + # version of libstdc++ directly. Instead we test for a known bug in + # libstdc++4.6 that is fixed in libstdc++4.7. + if(NOT LLVM_ENABLE_LIBCXX) + set(CMAKE_REQUIRED_FLAGS "-std=c++0x") + check_cxx_source_compiles(" +#include <atomic> +std::atomic<float> x(0.0f); +int main() { return (float)x; }" + LLVM_NO_OLD_LIBSTDCXX) + if(NOT LLVM_NO_OLD_LIBSTDCXX) + message(FATAL_ERROR "Host Clang must be able to find libstdc++4.7 or newer!") + endif() + endif() elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 17.0) message(FATAL_ERROR "Host Visual Studio must be at least 2012 (MSVC 17.0)") |