hintonda added a comment.

In https://reviews.llvm.org/D41660#965935, @hintonda wrote:

> In https://reviews.llvm.org/D41660#965877, @beanz wrote:
>
> > You should split the CMake cache file you created into two files, (1) a 
> > CMake Cache to manage the build configuration and (2) a tool chain file for 
> > targeting Linux. As @semeenai pointed out we absolutly want the behavior of 
> > the toolchain file being loaded multiple times. That is the correct way 
> > this build should work.
>
>
> I really like keeping this in a single file, but will break it up if 
> necessary.
>
> The `if` part of the if/else is used in stage1 as a cache file, and the 
> `else` part used in stage2 (and as you said, is loaded many times).  
> Splitting this into two files won't make much difference in that regard.
>
> > For bootstrap builds where you want the stage1 to run on your build host, 
> > you should be able to set `BOOTSTRAP_CMAKE_TOOLCHAIN_FILE` in the first 
> > stage build, to signal to the first stage build that the second stage will 
> > be cross-compiled, and we can customize the multi-stage dependencies 
> > correctly based on that. That avoids the need for the 
> > `ADDITIONAL_CLANG_BOOTSTRAP_DEPS` variable, which feels a bit hacky to me.
>
> Unless there's another way to do it, It's not hacky.  I believe the term is 
> `escape hatch`.
>
> While I'm happy to use `BOOTSTRAP_CMAKE_TOOLCHAIN_FILE` instead of passing 
> `-DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_LIST_FILE}`, I do not see how it 
> helps with this problem.  When running `ninja stage2`, I need to insure that 
> the dependancies where built.  `BOOTSTRAP_LLVM_ENABLE_LLD` can be used to add 
> `lld` to the dependency list, but since I'm setting 
> `CLANG_DEFAULT_LINKER=llb`, I don't want clang adding `-fuse-ld`.


Did a quick test and setting BOOTSTRAP_CMAKE_TOOLCHAIN_FILE does not work in 
this case.

> If I run this on Linux for both stages, it doesn't matter, because 
> clang/CMakeLists.txt add llvm-ar and llvm-ranlib automatically, but since I'm 
> on APPLE (see clang/CMakeLists.txt:559), they don't get added.
> 
> So, how else would I add them?




Repository:
  rC Clang

https://reviews.llvm.org/D41660



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to