Skip to content

Commit fc20144

Browse files
committed
Add blog post about i686-pc-windows-gnu demotion
1 parent cf30bb5 commit fc20144

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

Diff for: content/demoting-i686-pc-windows-gnu.md

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
+++
2+
layout = "post"
3+
date = 2025-03-12
4+
title = "Demoting i686-pc-windows-gnu"
5+
author = "Noratrieb"
6+
team = "Compiler Team <https://www.rust-lang.org/governance/teams/compiler>"
7+
+++
8+
9+
In Rust 1.87.0, the Tier 1 target `i686-pc-windows-gnu` will be demoted to Tier 2.
10+
As a Tier 2 Target, builds will continue to be distributed for both the standard library and the compiler for now.
11+
12+
## Background
13+
14+
Rust has supported Windows for a long time, with two different flavors of Windows targets: MSVC-based and GNU-based. MSVC-based targets (for example the most popular Windows target `x86_64-pc-windows-msvc`) use Microsoft’s native linker and libraries, while GNU-based targets (like `i686-pc-windows-gnu`) are built entirely from free software components like `gcc`, `ld`, and MinGW.
15+
16+
The major reason to use a GNU-based toolchain instead of the native MSVC-based one is cross-compilation and licensing. `link.exe` only runs on Windows (barring Wine hacks) and requires a license for commercial usage.
17+
18+
`x86_64-pc-windows-gnu` and `i686-pc-windows-gnu` are currently both Tier 1 with host tools.
19+
The [Target Tier Policy] contains more details on what this entails, but the most important part is that tests for these targets are being run on every merged PR.
20+
This is the highest level of support we have, and is only used for the most high value targets (the most popular Linux, Windows, and Apple targets).
21+
22+
The `*-windows-gnu` targets currently do not have any dedicated target maintainers.
23+
We do not have a lot of expertise for this toolchain, and issues often aren't fixed and cause problems in CI that we have a hard time to debug.
24+
25+
The 32-bit version of this target is especially problematic and has significantly less usage than `x86_64-pc-windows-gnu`, which is why it's being demoted to Tier 2.
26+
27+
## What is changed?
28+
29+
After Rust 1.87.0, `i686-pc-windows-gnu` will now be Tier 2 with host tools.
30+
For users, nothing will change immediately. Builds of both the standard library and the compiler will still be distributed by the Rust Project for use via `rustup` or alterantive installation methods.
31+
32+
This does mean that in the future, this target will likely accumulate bugs faster because of the reduced testing.
33+
34+
## Future
35+
36+
If no maintainers are found and the `*-windows-gnu` targets continue causing problems, they may be demoted further.
37+
No concrete plans about this have been made yet.
38+
39+
If you rely on the `*-windows-gnu` targets and have expertise in this area, we would be very happy to have you as a target maintainer. You can check the [Target Tier Policy] for what exactly that would entail.
40+
41+
For more details on the motivation of the demotion, see [RFC 3771](https://rust-lang.github.io/rfcs/3771-demote-i686-pc-windows-gnu.html) which proposed this change.
42+
43+
[Target Tier Policy]: https://doc.rust-lang.org/nightly/rustc/target-tier-policy.html

0 commit comments

Comments
 (0)