[llvm-dev] [cfe-dev] 3 stage ninja bootstrap on darwin?

Chris Bieneman via llvm-dev llvm-dev at lists.llvm.org
Fri Sep 1 10:14:18 PDT 2017


When doing multi-stage builds on Darwin you *must* have libcxx checked out in your source tree. Otherwise this error is expected.

-Chris

> On Aug 5, 2017, at 10:39 AM, Stefan Gränitz via cfe-dev <cfe-dev at lists.llvm.org> wrote:
> 
> 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
> 
>>   Is anyone using the 3 stage bootstrap described under 3-Stage
>> Non-Determinism at http://llvm.org/docs/AdvancedBuilds.html <http://llvm.org/docs/AdvancedBuilds.html>? I am
>> trying to build against the MacPorts current python2.7, ninja and make
>> releases, a build of current trunk for llvm, compiler-rt, cfe and
>> clang-tools-extra using...
>> % cmake -DLLVM_LINK_LLVM_DYLIB:BOOL=ON
>> -DCOMPILER_RT_ENABLE_IOS:BOOL=OFF -DLLVM_LIT_ARGS:STRING=-v
>> -DPYTHON_EXECUTABLE:FILEPATH=/opt/local/bin/python2.7
>> -DLLVM_ENABLE_ASSERTIONS:BOOL=OFF -DCMAKE_OSX_SYSROOT:STRING=/
>> -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=
>> -DLLVM_TARGETS_TO_BUILD="X86;PowerPC;ARM"
>> -DCMAKE_INSTALL_PREFIX:PATH=/Users/howarth/dist
>> -DCMAKE_BUILD_TYPE:STRING=Release -DLLVM_ENABLE_LIBCXX:BOOL=ON -G
>> Ninja -C /Users/howarth/3stage/cfe-5.0.0.src/cmake/caches/3-stage.cmake
>> ../llvm-5.0.0.src
>> % ninja stage3
>> on x86_64-apple-darwin16 using the Xcode 8.3 Beta 5 devtools as the
>> system compiler. The build is tripping up on the error...
>> -- 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:559 (include)
>> where is seems that -DLLVM_ENABLE_LIBCXX:BOOL=ON isn't getting passed
>> down to from stage1 to the stage2 configuration step. Any ideas on how
>> to work around this for a build against the system livc+++ under
>> Sierra?
>>          Jack
> -- 
> https://weliveindetail.github.io/blog/ <https://weliveindetail.github.io/blog/>
> https://cryptup.org/pub/stefan.graenitz@gmail.com <https://cryptup.org/pub/stefan.graenitz@gmail.com>_______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170901/f1e8be04/attachment.html>


More information about the llvm-dev mailing list