Skip to content

Commit 47c2813

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

File tree

3 files changed

+12
-10
lines changed

3 files changed

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

33
pub(crate) fn opts() -> TargetOptions {
4-
TargetOptions { env: "gnu".into(), ..base::linux::opts() }
4+
let mut base = TargetOptions { env: "gnu".into(), ..base::linux::opts() };
5+
6+
// When we're asked to use the `rust-lld` linker by default, set the appropriate lld-using
7+
// linker flavor, and self-contained linker component.
8+
if option_env!("CFG_DEFAULT_LINKER_SELF_CONTAINED_LLD_CC").is_some() {
9+
base.linker_flavor = LinkerFlavor::Gnu(Cc::Yes, Lld::Yes);
10+
base.link_self_contained = crate::spec::LinkSelfContainedDefault::with_linker();
11+
}
12+
13+
base
514
}

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)