LLVM runtimes build already loads the LLVM config and sets all
appropriate variables, no need to do it again.
Details
- Reviewers
smeenai mstorsjo mgorny - Group Reviewers
Restricted Project Restricted Project - Commits
- rG9c2700dfa51a: [CMake][compiler-rt] Don't load LLVM config in the runtimes build
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
compiler-rt/CMakeLists.txt | ||
---|---|---|
82–84 | We currently set COMPILER_RT_STANDALONE_BUILD in the runtimes build, see https://github.com/llvm/llvm-project/blob/f53fde8e150553c194b3325fe2781775aa40ac3a/runtimes/CMakeLists.txt#L183. I'd like to eventually remove that, but we need to do a bunch of cleanup first. |
compiler-rt/CMakeLists.txt | ||
---|---|---|
82–84 | Ah, I see. Ok, in that case, this is a step in the right direction indeed. And I can see that it'll take a couple patches to untangle it - the compiler-rt cmake files are notoriously complex. |
compiler-rt/CMakeLists.txt | ||
---|---|---|
82–84 | Yeah, I'd like to improve the runtimes build support in compiler-rt with the eventual goal of deprecating the standalone build the same way we've done for libc++, but that's difficult if we have to make all changes in a way that doesn't break the standalone build. So I'm thinking about taking a different strategy which is to put the integration behind LLVM_RUNTIMES_BUILD until we're ready to deprecate the standalone build. It's not the cleanest solution, but hopefully it's just temporary. |
Thanks for the explanation. This indeed makes sense then. Perhaps leave an explanatory comment/FIXME above it, so we know why it's like that in the future.
compiler-rt/CMakeLists.txt | ||
---|---|---|
82–84 | Sounds reasonable, as long as there’s a simple way to only build the builtins. IIRC llvm/runtimes builds those in a separate pass before building all other runtimes? Currently in my bootstraps, I build the builtins in a super-standalone way by pointing cmake at compiler-rt/lib/builtins. |
compiler-rt/CMakeLists.txt | ||
---|---|---|
82–84 | We use the same approach in the bootstrapping build: https://github.com/llvm/llvm-project/blob/d6494524490e0d4ffb99dcf21d633c11108b6bf6/llvm/runtimes/CMakeLists.txt#L107 |
Isn’t this condition unnecessary? This is in a block guarded with if (COMPILER_RT_STANDALONE_BUILD), and if that’s true, LLVM_RUNTIMES_BUILD won’t be set?