about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorJorge Aparicio <jorge@japaric.io>2018-08-18 16:31:36 +0200
committerJorge Aparicio <jorge@japaric.io>2018-08-18 16:31:36 +0200
commit750e72b9e0881529dad5010862ffc8dec7c28fe8 (patch)
tree0f1f4768c61ba73c85bbc3f639f51bc89f4b187f /src
parenta0911cf95d3cf6bc0fe50ad95c2578771b122e64 (diff)
downloadrust-750e72b9e0881529dad5010862ffc8dec7c28fe8.tar.gz
rust-750e72b9e0881529dad5010862ffc8dec7c28fe8.zip
add lld_flavor info to target spec
this field defaults to the LD / GNU flavor
Diffstat (limited to 'src')
-rw-r--r--src/librustc_codegen_llvm/back/link.rs2
-rw-r--r--src/librustc_target/spec/mod.rs4
2 files changed, 6 insertions, 0 deletions
diff --git a/src/librustc_codegen_llvm/back/link.rs b/src/librustc_codegen_llvm/back/link.rs
index c31928afb22..86cef587d5b 100644
--- a/src/librustc_codegen_llvm/back/link.rs
+++ b/src/librustc_codegen_llvm/back/link.rs
@@ -624,6 +624,8 @@ pub fn linker_and_flavor(sess: &Session) -> (PathBuf, LinkerFlavor) {
                     LinkerFlavor::Ld
                 } else if stem == "link" || stem == "lld-link" {
                     LinkerFlavor::Msvc
+                } else if stem == "lld" || stem == "rust-lld" {
+                    LinkerFlavor::Lld(sess.target.target.options.lld_flavor)
                 } else {
                     // fall back to the value in the target spec
                     sess.target.target.linker_flavor
diff --git a/src/librustc_target/spec/mod.rs b/src/librustc_target/spec/mod.rs
index 6faab77d770..98b20f00265 100644
--- a/src/librustc_target/spec/mod.rs
+++ b/src/librustc_target/spec/mod.rs
@@ -433,6 +433,9 @@ pub struct TargetOptions {
     /// Linker to invoke
     pub linker: Option<String>,
 
+    /// LLD flavor
+    pub lld_flavor: LldFlavor,
+
     /// Linker arguments that are passed *before* any user-defined libraries.
     pub pre_link_args: LinkArgs, // ... unconditionally
     pub pre_link_args_crt: LinkArgs, // ... when linking with a bundled crt
@@ -650,6 +653,7 @@ impl Default for TargetOptions {
         TargetOptions {
             is_builtin: false,
             linker: option_env!("CFG_DEFAULT_LINKER").map(|s| s.to_string()),
+            lld_flavor: LldFlavor::Ld,
             pre_link_args: LinkArgs::new(),
             pre_link_args_crt: LinkArgs::new(),
             post_link_args: LinkArgs::new(),