about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLuqman Aden <me@luqman.ca>2021-05-18 03:57:53 -0700
committerLuqman Aden <me@luqman.ca>2021-05-18 03:57:53 -0700
commitac5fd90d822304a6b6e059d84a3c1e4103e24200 (patch)
tree2e767b2b53e38ce037f0696d50c560255fbe1458
parente0d58725037b7a414d1ed60225207a9c708ac313 (diff)
downloadrust-ac5fd90d822304a6b6e059d84a3c1e4103e24200.tar.gz
rust-ac5fd90d822304a6b6e059d84a3c1e4103e24200.zip
Don't pass -pie to linker on windows targets.
-rw-r--r--compiler/rustc_codegen_ssa/src/back/linker.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/linker.rs b/compiler/rustc_codegen_ssa/src/back/linker.rs
index 2e909c29f55..bab38789a9f 100644
--- a/compiler/rustc_codegen_ssa/src/back/linker.rs
+++ b/compiler/rustc_codegen_ssa/src/back/linker.rs
@@ -281,8 +281,11 @@ impl<'a> Linker for GccLinker<'a> {
                 }
             }
             LinkOutputKind::DynamicPicExe => {
-                // `-pie` works for both gcc wrapper and ld.
-                self.cmd.arg("-pie");
+                // noop on windows w/ gcc & ld, error w/ lld
+                if !self.sess.target.is_like_windows {
+                    // `-pie` works for both gcc wrapper and ld.
+                    self.cmd.arg("-pie");
+                }
             }
             LinkOutputKind::StaticNoPicExe => {
                 // `-static` works for both gcc wrapper and ld.