Skip to content

Commit 85ac587

Browse files
committed
Generalize setting rust-lld as the default linker on Linux
1 parent 21a13b8 commit 85ac587

File tree

3 files changed

+14
-10
lines changed

3 files changed

+14
-10
lines changed
Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,22 @@
1-
use crate::spec::{LinkSelfContainedDefault, TargetOptions, base, crt_objects};
1+
use crate::spec::{
2+
Cc, LinkSelfContainedDefault, LinkerFlavor, Lld, TargetOptions, base, crt_objects,
3+
};
24

35
pub(crate) fn opts() -> TargetOptions {
4-
TargetOptions {
6+
let mut base = TargetOptions {
57
env: "musl".into(),
68
pre_link_objects_self_contained: crt_objects::pre_musl_self_contained(),
79
post_link_objects_self_contained: crt_objects::post_musl_self_contained(),
810
link_self_contained: LinkSelfContainedDefault::InferredForMusl,
911
..base::linux::opts()
12+
};
13+
14+
// When we're asked to use the `rust-lld` linker by default, set the appropriate lld-using
15+
// linker flavor, and self-contained linker component.
16+
if option_env!("CFG_DEFAULT_LINKER_SELF_CONTAINED_LLD_CC").is_some() {
17+
base.linker_flavor = LinkerFlavor::Gnu(Cc::Yes, Lld::Yes);
18+
base.link_self_contained = crate::spec::LinkSelfContainedDefault::with_linker();
1019
}
20+
21+
base
1122
}

compiler/rustc_target/src/spec/targets/x86_64_unknown_linux_gnu.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,6 @@ pub(crate) fn target() -> Target {
2020
| SanitizerSet::THREAD;
2121
base.supports_xray = true;
2222

23-
// When we're asked to use the `rust-lld` linker by default, set the appropriate lld-using
24-
// linker flavor, and self-contained linker component.
25-
if option_env!("CFG_USE_SELF_CONTAINED_LINKER").is_some() {
26-
base.linker_flavor = LinkerFlavor::Gnu(Cc::Yes, Lld::Yes);
27-
base.link_self_contained = crate::spec::LinkSelfContainedDefault::with_linker();
28-
}
29-
3023
Target {
3124
llvm_target: "x86_64-unknown-linux-gnu".into(),
3225
metadata: TargetMetadata {

src/bootstrap/src/core/build_steps/compile.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1352,7 +1352,7 @@ pub fn rustc_cargo_env(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetS
13521352

13531353
// Enable rustc's env var for `rust-lld` when requested.
13541354
if builder.config.lld_enabled {
1355-
cargo.env("CFG_USE_SELF_CONTAINED_LINKER", "1");
1355+
cargo.env("CFG_DEFAULT_LINKER_SELF_CONTAINED_LLD_CC", "1");
13561356
}
13571357

13581358
if builder.config.rust_verify_llvm_ir {

0 commit comments

Comments
 (0)