Skip to content

Commit 92a3541

Browse files
committed
Add blog post about i686-pc-windows-gnu demotion
1 parent 00b7b07 commit 92a3541

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed
+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
+++
2+
path = "2025/03/12/demoting-i686-pc-windows-gnu"
3+
title = "Demoting i686-pc-windows-gnu to Tier 2"
4+
authors = ["Noratrieb"]
5+
aliases = []
6+
7+
[extra]
8+
team = "Compiler Team"
9+
team_url = "https://www.rust-lang.org/governance/teams/compiler"
10+
+++
11+
12+
In Rust 1.88.0, the Tier 1 target `i686-pc-windows-gnu` will be demoted to Tier 2.
13+
As a Tier 2 Target, builds will continue to be distributed for both the standard library and the compiler.
14+
15+
## Background
16+
17+
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-w64.
18+
19+
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.
20+
21+
`x86_64-pc-windows-gnu` and `i686-pc-windows-gnu` are currently both Tier 1 with host tools.
22+
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.
23+
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).
24+
25+
The `*-windows-gnu` targets currently do not have any dedicated target maintainers.
26+
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.
27+
28+
The 32-bit version of this target is especially problematic and has significantly less usage than `x86_64-pc-windows-gnu`, which is why `i686-pc-windows-gnu` is being demoted to Tier 2.
29+
30+
## What is changed?
31+
32+
After Rust 1.88.0, `i686-pc-windows-gnu` will now be Tier 2 with host tools.
33+
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 alternative installation methods.
34+
35+
This does mean that in the future, this target will likely accumulate bugs faster because of the reduced testing.
36+
37+
## Future
38+
39+
If no maintainers are found and the `*-windows-gnu` targets continue causing problems, they may be demoted further.
40+
No concrete plans about this have been made yet.
41+
42+
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.
43+
44+
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.
45+
46+
[Target Tier Policy]: https://doc.rust-lang.org/nightly/rustc/target-tier-policy.html

0 commit comments

Comments
 (0)