about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorMateusz Mikuła <oss@mateuszmikula.dev>2025-09-19 10:57:03 +0200
committerMateusz Mikuła <oss@mateuszmikula.dev>2025-09-19 19:06:15 +0200
commit7eea65f8e0544d3e51ce383513c0108e9d02e874 (patch)
tree51cd7f8714fb9c16d8bce2bd8bbb7d516bb9aa71 /src
parent2f4dfc753fd86c672aa4145940db075a8a149f17 (diff)
downloadrust-7eea65f8e0544d3e51ce383513c0108e9d02e874.tar.gz
rust-7eea65f8e0544d3e51ce383513c0108e9d02e874.zip
Stop linking rs{begin,end} on x86_64-*-windows-gnu
Until now, x86_64-pc-windows-gnu linked `rsbegin.o` and `rsend.o` just
like i686-pc-windows-gnu, even though they were no-ops for it.
This was likely done for the simplicity back when it was introduced.

Today the things are different and these startup/end objects harm other
features, like `build-std`. Given the demotion of i686-pc-windows-gnu
from tier 1, there is no point in hurting x86_64-pc-windows-gnu,
which remains a tier 1.

The files are still shipped in case downstream crates expect them, as in
case of the unmaintained `xargo`.
Diffstat (limited to 'src')
-rw-r--r--src/bootstrap/src/core/build_steps/compile.rs2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs
index 14104d7d1d7..6daf82d4e68 100644
--- a/src/bootstrap/src/core/build_steps/compile.rs
+++ b/src/bootstrap/src/core/build_steps/compile.rs
@@ -895,6 +895,8 @@ impl Step for StartupObjects {
     fn run(self, builder: &Builder<'_>) -> Vec<(PathBuf, DependencyType)> {
         let for_compiler = self.compiler;
         let target = self.target;
+        // Even though no longer necessary on x86_64, they are kept for now to
+        // avoid potential issues in downstream crates.
         if !target.is_windows_gnu() {
             return vec![];
         }