Skip to content

Commit 5118a51

Browse files
committed
rustbuild: Propagate LLD to more places when use-lld is enabled
1 parent 8e6b563 commit 5118a51

File tree

4 files changed

+18
-3
lines changed

4 files changed

+18
-3
lines changed

src/bootstrap/bin/rustc.rs

+3
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,9 @@ fn main() {
112112
if let Ok(host_linker) = env::var("RUSTC_HOST_LINKER") {
113113
cmd.arg(format!("-Clinker={}", host_linker));
114114
}
115+
if env::var_os("RUSTC_HOST_FUSE_LD_LLD").is_some() {
116+
cmd.arg("-Clink-args=-fuse-ld=lld");
117+
}
115118

116119
if let Ok(s) = env::var("RUSTC_HOST_CRT_STATIC") {
117120
if s == "true" {

src/bootstrap/bin/rustdoc.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,14 @@ fn main() {
4242
if env::var_os("RUSTC_FORCE_UNSTABLE").is_some() {
4343
cmd.arg("-Z").arg("force-unstable-if-unmarked");
4444
}
45-
if let Some(linker) = env::var_os("RUSTC_TARGET_LINKER") {
45+
if let Some(linker) = env::var_os("RUSTDOC_LINKER") {
4646
let mut arg = OsString::from("-Clinker=");
4747
arg.push(&linker);
4848
cmd.arg(arg);
4949
}
50+
if env::var_os("RUSTDOC_FUSE_LD_LLD").is_some() {
51+
cmd.arg("-Clink-args=-fuse-ld=lld");
52+
}
5053

5154
// Needed to be able to run all rustdoc tests.
5255
if let Some(ref x) = env::var_os("RUSTDOC_RESOURCE_SUFFIX") {

src/bootstrap/builder.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -756,7 +756,10 @@ impl<'a> Builder<'a> {
756756
cmd.env_remove("MFLAGS");
757757

758758
if let Some(linker) = self.linker(compiler.host) {
759-
cmd.env("RUSTC_TARGET_LINKER", linker);
759+
cmd.env("RUSTDOC_LINKER", linker);
760+
}
761+
if self.config.use_lld && !compiler.host.contains("msvc") {
762+
cmd.env("RUSTDOC_FUSE_LD_LLD", "1");
760763
}
761764
cmd
762765
}
@@ -1044,6 +1047,9 @@ impl<'a> Builder<'a> {
10441047
if let Some(host_linker) = self.linker(compiler.host) {
10451048
cargo.env("RUSTC_HOST_LINKER", host_linker);
10461049
}
1050+
if self.config.use_lld && !compiler.host.contains("msvc") {
1051+
cargo.env("RUSTC_HOST_FUSE_LD_LLD", "1");
1052+
}
10471053

10481054
if let Some(target_linker) = self.linker(target) {
10491055
let target = crate::envify(&target.triple);

src/bootstrap/test.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,10 @@ impl Step for RustdocTheme {
601601
.env("RUSTDOC_REAL", builder.rustdoc(self.compiler))
602602
.env("RUSTC_BOOTSTRAP", "1");
603603
if let Some(linker) = builder.linker(self.compiler.host) {
604-
cmd.env("RUSTC_TARGET_LINKER", linker);
604+
cmd.env("RUSTDOC_LINKER", linker);
605+
}
606+
if builder.config.use_lld && !self.compiler.host.contains("msvc") {
607+
cmd.env("RUSTDOC_FUSE_LD_LLD", "1");
605608
}
606609
try_run(builder, &mut cmd);
607610
}

0 commit comments

Comments
 (0)