Rollup merge of #89865 - tmandry:llvm-static, r=Mark-Simulacrum

Allow static linking LLVM with ThinLTO

There's no reason not to allow this if the user wants it. It works, at least in a local build on linux host.

For our use case, we're happy to spend more time building the compiler if it creates a speedup every time we run it, and we've observed speedups like this with clang.
This commit is contained in:
Matthias Krüger 2021-10-14 16:06:46 +02:00 committed by GitHub
commit 0888c6dc78
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -825,15 +825,10 @@ impl Config {
};
}
if config.llvm_thin_lto {
// If we're building with ThinLTO on, we want to link to LLVM
// shared, to avoid re-doing ThinLTO (which happens in the link
// step) with each stage.
assert_ne!(
llvm.link_shared,
Some(false),
"setting link-shared=false is incompatible with thin-lto=true"
);
if config.llvm_thin_lto && llvm.link_shared.is_none() {
// If we're building with ThinLTO on, by default we want to link
// to LLVM shared, to avoid re-doing ThinLTO (which happens in
// the link step) with each stage.
config.llvm_link_shared = true;
}
}