Skip to content

Commit 41378ea

Browse files
Auto merge of #146758 - mati865:amd64_mingw_no_rs_objects, r=<try>
Stop linking rs{begin,end} on x86_64-*-windows-gnu try-job: dist-x86_64-linux try-job: dist-x86_64-mingw try-job: dist-i686-mingw
2 parents 2f4dfc7 + 3b391e3 commit 41378ea

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

compiler/rustc_target/src/spec/base/windows_gnu.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,7 @@ pub(crate) fn opts() -> TargetOptions {
9393
binary_format: BinaryFormat::Coff,
9494
allows_weak_linkage: false,
9595
pre_link_args,
96-
pre_link_objects: crt_objects::pre_mingw(),
97-
post_link_objects: crt_objects::post_mingw(),
9896
pre_link_objects_self_contained: crt_objects::pre_mingw_self_contained(),
99-
post_link_objects_self_contained: crt_objects::post_mingw_self_contained(),
10097
link_self_contained: LinkSelfContainedDefault::InferredForMingw,
10198
late_link_args,
10299
late_link_args_dynamic,

compiler/rustc_target/src/spec/crt_objects.rs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,17 @@ pub(super) fn post_musl_self_contained() -> CrtObjects {
8585
}
8686

8787
pub(super) fn pre_mingw_self_contained() -> CrtObjects {
88+
new(&[
89+
(LinkOutputKind::DynamicNoPicExe, &["crt2.o"]),
90+
(LinkOutputKind::DynamicPicExe, &["crt2.o"]),
91+
(LinkOutputKind::StaticNoPicExe, &["crt2.o"]),
92+
(LinkOutputKind::StaticPicExe, &["crt2.o"]),
93+
(LinkOutputKind::DynamicDylib, &["dllcrt2.o"]),
94+
(LinkOutputKind::StaticDylib, &["dllcrt2.o"]),
95+
])
96+
}
97+
98+
pub(super) fn pre_i686_mingw_self_contained() -> CrtObjects {
8899
new(&[
89100
(LinkOutputKind::DynamicNoPicExe, &["crt2.o", "rsbegin.o"]),
90101
(LinkOutputKind::DynamicPicExe, &["crt2.o", "rsbegin.o"]),
@@ -95,15 +106,15 @@ pub(super) fn pre_mingw_self_contained() -> CrtObjects {
95106
])
96107
}
97108

98-
pub(super) fn post_mingw_self_contained() -> CrtObjects {
109+
pub(super) fn post_i686_mingw_self_contained() -> CrtObjects {
99110
all("rsend.o")
100111
}
101112

102-
pub(super) fn pre_mingw() -> CrtObjects {
113+
pub(super) fn pre_i686_mingw() -> CrtObjects {
103114
all("rsbegin.o")
104115
}
105116

106-
pub(super) fn post_mingw() -> CrtObjects {
117+
pub(super) fn post_i686_mingw() -> CrtObjects {
107118
all("rsend.o")
108119
}
109120

compiler/rustc_target/src/spec/targets/i686_pc_windows_gnu.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, RustcAbi, Target, TargetMetadata, base};
1+
use crate::spec::{
2+
Cc, FramePointer, LinkerFlavor, Lld, RustcAbi, Target, TargetMetadata, base, crt_objects,
3+
};
24

35
pub(crate) fn target() -> Target {
46
let mut base = base::windows_gnu::opts();
@@ -15,6 +17,10 @@ pub(crate) fn target() -> Target {
1517
&["-m", "i386pe", "--large-address-aware"],
1618
);
1719
base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-Wl,--large-address-aware"]);
20+
base.pre_link_objects = crt_objects::pre_i686_mingw();
21+
base.post_link_objects = crt_objects::post_i686_mingw();
22+
base.pre_link_objects_self_contained = crt_objects::pre_i686_mingw_self_contained();
23+
base.post_link_objects_self_contained = crt_objects::post_i686_mingw_self_contained();
1824

1925
Target {
2026
llvm_target: "i686-pc-windows-gnu".into(),

0 commit comments

Comments
 (0)