Skip to content

Commit da9292b

Browse files
Rollup merge of #152793 - mati865:disable-no-pie-on-windows, r=petrochenkov
Do no add -no-pie on Windows Windows binaries are always position independent and Clang warns when trying to enable or disable that: ``` ❯ clang hello.c -pie clang: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] ❯ clang hello.c -no-pie clang: warning: argument unused during compilation: '-no-pie' [-Wunused-command-line-argument] ``` #149937 will turn these warnings into build errors: ``` ❯ cargo rustc -- -D linker-messages Compiling hello v0.1.0 (E:\tmp\hello) error: linker stderr: x86_64-w64-mingw32-clang: argument unused during compilation: '-nolibc' [-Wunused-command-line-argument]␍ x86_64-w64-mingw32-clang: argument unused during compilation: '-no-pie' [-Wunused-command-line-argument]␍ | = note: requested on the command line with `-D linker-messages` error: could not compile `hello` (bin "hello") due to 1 previous error ```
2 parents 506327e + 92e60a3 commit da9292b

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

compiler/rustc_codegen_ssa/src/back/linker.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,8 @@ impl<'a> Linker for GccLinker<'a> {
527527
) {
528528
match output_kind {
529529
LinkOutputKind::DynamicNoPicExe => {
530-
if !self.is_ld && self.is_gnu {
530+
// noop on windows w/ gcc, warning w/ clang
531+
if !self.is_ld && self.is_gnu && !self.sess.target.is_like_windows {
531532
self.cc_arg("-no-pie");
532533
}
533534
}

0 commit comments

Comments
 (0)