You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I propose removing host tools support for i686-pc-windows-gnu target. This target is currently tier 2 with host tools and if this MCP is accepted it'd become tier 2 std only.
The issues
Recently we've encountered major difficulties with 32-bit Windows host tools CI jobs, that could be summarised as "32-bit address space was reasonable two decades ago, but we are no longer living two decades ago". Specifically I mean:
dist-i686-msvc fails with STATUS_NO_MEMORY rust#159076 that was only tested with i686-pc-windows-msvc (only because we hit it first, due to MSVC CI job being faster), but I expect to also hit on 32-bit windows-gnu. Separately to this MCP we are also eyeing on dropping host tools for 32-bit MSVC.
GCC's OOM when building upgrade LLVM 23 (still a draft PR), nikic was able to work around it by disabling RISC-V target in LLVM for this target only.
That is a clear violation of tier 2 host tools target requirements:
The host tools must build and run reliably in CI (for all components that Rust’s CI considers mandatory), though they may or may not pass tests.
The host tools must provide a substantively similar experience as on other targets, subject to reasonable target limitations.
While the first issue was partially caused by our own changes (32-bit Windows targets made only made it a bigger deal), GCC going going beyond 32-bit address space during LLVM build is something that we cannot reasonably control and it will only get worse.
Target popularity
Numbers stolen borrowed from 32-bit MSVC demotion RFC draft:
This evidence clearly shows i686-pc-windows-gnu is super niche as a host target and mostly used as the cross-compilation target, reducing the impact of this change.
I'll quote relevant sentences from that RFC which I think make this MCP sufficient:
If necessary, further demotions (for example removing host tools) will not require RFCs, but go through a simpler MCP instead.
The maintenance requirement violation can be solved by multiple people stepping up to maintain this target. This has not happened so far.
It's been a year and still nobody stood up for this target (readers of this MCP, this is your last chance to stand up). I believe it'll be near to impossible to find people would work on this target on the following sides: Rust, LLVM, GCC (so it stops going OOM at the very least), and Binutils.
Mentors or Reviewers
If you have a reviewer or mentor in mind for this work, mention them here. You can put your own name here if you are planning to mentor the work.
Proposal
I propose removing host tools support for
i686-pc-windows-gnutarget. This target is currently tier 2 with host tools and if this MCP is accepted it'd become tier 2 std only.The issues
Recently we've encountered major difficulties with 32-bit Windows host tools CI jobs, that could be summarised as "32-bit address space was reasonable two decades ago, but we are no longer living two decades ago". Specifically I mean:
STATUS_NO_MEMORYrust#159076 that was only tested withi686-pc-windows-msvc(only because we hit it first, due to MSVC CI job being faster), but I expect to also hit on 32-bit windows-gnu. Separately to this MCP we are also eyeing on dropping host tools for 32-bit MSVC.nikicwas able to work around it by disabling RISC-V target in LLVM for this target only.That is a clear violation of tier 2 host tools target requirements:
While the first issue was partially caused by our own changes (32-bit Windows targets made only made it a bigger deal), GCC going going beyond 32-bit address space during LLVM build is something that we cannot reasonably control and it will only get worse.
Target popularity
Numbers
stolenborrowed from 32-bit MSVC demotion RFC draft:This evidence clearly shows
i686-pc-windows-gnuis super niche as a host target and mostly used as the cross-compilation target, reducing the impact of this change.Previous changes to this target
This target has been demoted from tier 1 with host tools, down to tier 2 with host tools last year: https://github.com/rust-lang/rfcs/blob/master/text/3771-demote-i686-pc-windows-gnu.md
I'll quote relevant sentences from that RFC which I think make this MCP sufficient:
It's been a year and still nobody stood up for this target (readers of this MCP, this is your last chance to stand up). I believe it'll be near to impossible to find people would work on this target on the following sides: Rust, LLVM, GCC (so it stops going OOM at the very least), and Binutils.
Mentors or Reviewers
If you have a reviewer or mentor in mind for this work, mention them here. You can put your own name here if you are planning to mentor the work.
Process
The main points of the Major Change Process are as follows:
@rustbot secondor kickoff a team FCP with@rfcbot fcp $RESOLUTION.You can read more about Major Change Proposals on forge.