提交 594f81a2 编写于 作者: M Mateusz Mikuła

Make rust.use-lld config option work with non MSVC targets

上级 3a92b998
......@@ -433,7 +433,7 @@
#
# LLD will not be used if we're cross linking or running tests.
#
# Explicitly setting the linker for a target will override this option.
# Explicitly setting the linker for a target will override this option when targeting MSVC.
#use-lld = false
# Indicates whether some LLVM tools, like llvm-objdump, will be made available in the
......@@ -503,7 +503,7 @@
# Linker to be used to link Rust code. Note that the
# default value is platform specific, and if not specified it may also depend on
# what platform is crossing to what platform.
# Setting this will override the `use-lld` option for Rust code.
# Setting this will override the `use-lld` option for Rust code when targeting MSVC.
#linker = "cc"
# Path to the `llvm-config` binary of the installation of a custom LLVM to link
......
......@@ -1037,7 +1037,7 @@ pub fn cargo(
}
}
// FIXME: Don't use LLD if we're compiling libtest, since it fails to link it.
// FIXME: Don't use LLD with MSVC if we're compiling libtest, since it fails to link it.
// See https://github.com/rust-lang/rust/issues/68647.
let can_use_lld = mode != Mode::Std;
......@@ -1049,6 +1049,11 @@ pub fn cargo(
let target = crate::envify(&target.triple);
cargo.env(&format!("CARGO_TARGET_{}_LINKER", target), target_linker);
}
if self.config.use_lld && !target.contains("msvc") {
rustflags.arg("-Clink-args=-fuse-ld=lld");
}
if !(["build", "check", "clippy", "fix", "rustc"].contains(&cmd)) && want_rustdoc {
cargo.env("RUSTDOC_LIBDIR", self.rustc_libdir(compiler));
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册