Hi all
I just ran into the same issue Jack described below.
I did a 2-stage build of LLVM/Clang/Compiler-rt on the current release_50 branch.
Versions:
OSX 10.12.6, Xcode 8.0, CMake 1.8.2, Ninja 1.7.2, Ccache 3.3.4
Log:
$ cmake -G Ninja -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_BUILD_TYPE=Release
-DLLVM_ENABLE_LTO=ON
-DLLVM_TARGETS_TO_BUILD=host
-DLLVM_CREATE_XCODE_TOOLCHAIN=ON
-DLLVM_INCLUDE_TESTS=ON
-DLLVM_INCLUDE_EXAMPLES=OFF
-DLLVM_INCLUDE_DOCS=OFF
-DLLVM_ENABLE_PROJECTS="clang;compiler-rt;lldb"
-DCLANG_ENABLE_BOOTSTRAP=ON ../llvm
-- The C compiler identification is AppleClang 8.0.0.8000038
-- The CXX compiler identification is AppleClang 8.0.0.8000038
...
-- Build files have been written to: /media/Dev/llvm50/build-ninja-clang-release
$ ninja stage2
...
-- Performing Test LLVM_NO_OLD_LIBSTDCXX
-- Performing Test LLVM_NO_OLD_LIBSTDCXX - Failed
CMake Error at cmake/modules/CheckCompilerVersion.cmake:38 (message):
Host Clang must be able to find libstdc++4.8 or newer!
Call Stack (most recent call first):
cmake/config-ix.cmake:14 (include)
CMakeLists.txt:584 (include)
Hack to force LLVM_ENABLE_LIBCXX=ON:
diff --git a/cmake/modules/CheckCompilerVersion.cmake b/cmake/modules/CheckCompilerVersion.cmake
index 2e8f5445781..38ec06c7631 100644
--- a/cmake/modules/CheckCompilerVersion.cmake
+++ b/cmake/modules/CheckCompilerVersion.cmake
@@ -1,6 +1,7 @@
# Check if the host compiler is new enough. LLVM requires at least GCC 4.8,
# MSVC 2015 (Update 3), or Clang 3.1.
`+set(LLVM_ENABLE_LIBCXX ON)` `include(CheckCXXSourceCompiles)`
if(NOT DEFINED LLVM_COMPILER_CHECKED)
Maybe it just got messed up. However, I never explicitly pass
-DLLVM_ENABLE_LIBCXX=ON and it never caused problems in single-stage builds,
as on OSX the setting defaults to ON. Shouldn't that be the same for 2-stage
out of the box? Maybe stage 1 passes an invalid setting to the ```stage 2``
configuration that overrides the otherwise correct default?`
Cheers
Stefan