Generalize setting rust-lld as the default linker on Linux
This commit is contained in:
@@ -1,5 +1,14 @@
|
||||
use crate::spec::{TargetOptions, base};
|
||||
use crate::spec::{Cc, LinkerFlavor, Lld, TargetOptions, base};
|
||||
|
||||
pub(crate) fn opts() -> TargetOptions {
|
||||
TargetOptions { env: "gnu".into(), ..base::linux::opts() }
|
||||
let mut base = TargetOptions { env: "gnu".into(), ..base::linux::opts() };
|
||||
|
||||
// When we're asked to use the `rust-lld` linker by default, set the appropriate lld-using
|
||||
// linker flavor, and self-contained linker component.
|
||||
if option_env!("CFG_DEFAULT_LINKER_SELF_CONTAINED_LLD_CC").is_some() {
|
||||
base.linker_flavor = LinkerFlavor::Gnu(Cc::Yes, Lld::Yes);
|
||||
base.link_self_contained = crate::spec::LinkSelfContainedDefault::with_linker();
|
||||
}
|
||||
|
||||
base
|
||||
}
|
||||
|
||||
@@ -20,13 +20,6 @@ pub(crate) fn target() -> Target {
|
||||
| SanitizerSet::THREAD;
|
||||
base.supports_xray = true;
|
||||
|
||||
// When we're asked to use the `rust-lld` linker by default, set the appropriate lld-using
|
||||
// linker flavor, and self-contained linker component.
|
||||
if option_env!("CFG_USE_SELF_CONTAINED_LINKER").is_some() {
|
||||
base.linker_flavor = LinkerFlavor::Gnu(Cc::Yes, Lld::Yes);
|
||||
base.link_self_contained = crate::spec::LinkSelfContainedDefault::with_linker();
|
||||
}
|
||||
|
||||
Target {
|
||||
llvm_target: "x86_64-unknown-linux-gnu".into(),
|
||||
metadata: TargetMetadata {
|
||||
|
||||
@@ -1357,7 +1357,7 @@ pub fn rustc_cargo_env(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetS
|
||||
|
||||
// Enable rustc's env var for `rust-lld` when requested.
|
||||
if builder.config.lld_enabled {
|
||||
cargo.env("CFG_USE_SELF_CONTAINED_LINKER", "1");
|
||||
cargo.env("CFG_DEFAULT_LINKER_SELF_CONTAINED_LLD_CC", "1");
|
||||
}
|
||||
|
||||
if builder.config.rust_verify_llvm_ir {
|
||||
|
||||
Reference in New Issue
Block a user