about summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/back
diff options
context:
space:
mode:
authorJohannes Nixdorf <mixi@exherbo.org>2018-04-29 11:17:54 +0200
committerJohannes Nixdorf <mixi@exherbo.org>2018-05-31 12:01:50 +0200
commitbf3b8df697f1ce84e24cd29119ea8dd0e152dbd9 (patch)
treef37c2efcdf46ca688197f04ec150952484e69606 /src/librustc_codegen_llvm/back
parenta47b2d09d6caa5aeb5a7f6128869bd6eb12418d2 (diff)
downloadrust-bf3b8df697f1ce84e24cd29119ea8dd0e152dbd9.tar.gz
rust-bf3b8df697f1ce84e24cd29119ea8dd0e152dbd9.zip
musl: don't use the included startfiles with -crt-static
This fixes (only for -crt-static) #36710.
Diffstat (limited to 'src/librustc_codegen_llvm/back')
-rw-r--r--src/librustc_codegen_llvm/back/link.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/librustc_codegen_llvm/back/link.rs b/src/librustc_codegen_llvm/back/link.rs
index 735c4d2f76f..4e9910e58f3 100644
--- a/src/librustc_codegen_llvm/back/link.rs
+++ b/src/librustc_codegen_llvm/back/link.rs
@@ -625,6 +625,11 @@ fn link_natively(sess: &Session,
     if let Some(args) = sess.target.target.options.pre_link_args.get(&flavor) {
         cmd.args(args);
     }
+    if let Some(args) = sess.target.target.options.pre_link_args_crt.get(&flavor) {
+        if sess.crt_static() {
+            cmd.args(args);
+        }
+    }
     if let Some(ref args) = sess.opts.debugging_opts.pre_link_args {
         cmd.args(args);
     }
@@ -639,6 +644,12 @@ fn link_natively(sess: &Session,
         cmd.arg(root.join(obj));
     }
 
+    if crate_type == config::CrateTypeExecutable && sess.crt_static() {
+        for obj in &sess.target.target.options.pre_link_objects_exe_crt {
+            cmd.arg(root.join(obj));
+        }
+    }
+
     if sess.target.target.options.is_like_emscripten {
         cmd.arg("-s");
         cmd.arg(if sess.panic_strategy() == PanicStrategy::Abort {
@@ -660,6 +671,11 @@ fn link_natively(sess: &Session,
     for obj in &sess.target.target.options.post_link_objects {
         cmd.arg(root.join(obj));
     }
+    if sess.crt_static() {
+        for obj in &sess.target.target.options.post_link_objects_crt {
+            cmd.arg(root.join(obj));
+        }
+    }
     if let Some(args) = sess.target.target.options.post_link_args.get(&flavor) {
         cmd.args(args);
     }