Auto merge of #131634 - davidlattimore:lld-protected, r=Kobzol
Use protected visibility when building rustc with LLD https://github.com/rust-lang/compiler-team/issues/782 I wasn't sure about having two commits in a PR, but I figured, at least initially it might make sense to discuss these commits together. Happy to squash, or move the second commit to a separate PR. I contemplated trying to enable protected visibility for more cases when LLD will be used other than just `-Zlinker-features=+lld`, but that would be more a complex change that probably still wouldn't cover all cases when LLD is used, so went with the simplest option of just checking if the linker-feature is enabled. r? lqd
This commit is contained in:
commit
9fa9ef385c
@ -1056,6 +1056,14 @@ pub fn rustc_cargo(
|
||||
cargo.rustflag("-l").rustflag("Enzyme-19");
|
||||
}
|
||||
|
||||
// Building with protected visibility reduces the number of dynamic relocations needed, giving
|
||||
// us a faster startup time. However GNU ld < 2.40 will error if we try to link a shared object
|
||||
// with direct references to protected symbols, so for now we only use protected symbols if
|
||||
// linking with LLD is enabled.
|
||||
if builder.build.config.lld_mode.is_used() {
|
||||
cargo.rustflag("-Zdefault-visibility=protected");
|
||||
}
|
||||
|
||||
// We currently don't support cross-crate LTO in stage0. This also isn't hugely necessary
|
||||
// and may just be a time sink.
|
||||
if compiler.stage != 0 {
|
||||
|
Loading…
Reference in New Issue
Block a user