about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2020-06-15 23:05:05 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2020-06-15 23:17:39 +0300
commite8cf5721b1b3ebdc8ee69d15a375afd2eab0dd8f (patch)
tree4a48bfc4c2bf9bc01166cf1a83e691d5893efcbd
parentf315c35a77e40bd11ce81fedc0556be0f410bbf4 (diff)
downloadrust-e8cf5721b1b3ebdc8ee69d15a375afd2eab0dd8f.tar.gz
rust-e8cf5721b1b3ebdc8ee69d15a375afd2eab0dd8f.zip
linker: Never pass `-no-pie` to non-gnu linkers
-rw-r--r--src/librustc_codegen_ssa/back/linker.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/librustc_codegen_ssa/back/linker.rs b/src/librustc_codegen_ssa/back/linker.rs
index b17c3678207..efcabc57e6f 100644
--- a/src/librustc_codegen_ssa/back/linker.rs
+++ b/src/librustc_codegen_ssa/back/linker.rs
@@ -280,7 +280,7 @@ impl<'a> Linker for GccLinker<'a> {
     fn set_output_kind(&mut self, output_kind: LinkOutputKind, out_filename: &Path) {
         match output_kind {
             LinkOutputKind::DynamicNoPicExe => {
-                if !self.is_ld {
+                if !self.is_ld && self.sess.target.target.options.linker_is_gnu {
                     self.cmd.arg("-no-pie");
                 }
             }
@@ -291,7 +291,7 @@ impl<'a> Linker for GccLinker<'a> {
             LinkOutputKind::StaticNoPicExe => {
                 // `-static` works for both gcc wrapper and ld.
                 self.cmd.arg("-static");
-                if !self.is_ld {
+                if !self.is_ld && self.sess.target.target.options.linker_is_gnu {
                     self.cmd.arg("-no-pie");
                 }
             }