-
Notifications
You must be signed in to change notification settings - Fork 13.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The status/purpose of the i586-pc-windows-msvc
target is unclear
#137244
Comments
@rustbot label +T-compiler +A-targets +O-windows +O-x86_32 |
I have heard of the |
Do you have a link, out of interest? The only Windows 95 support project I've been able to find is rust9x, and they use a compiler fork with custom targets. |
That's what I meant by "as a basis". The custom targets are based on our |
rust9x base their i586 target off their i686 target (which is based on |
I only maintain i686-win7-windows-msvc, and have no interest in the i585-pc target (Supporting an up-to-date Windows 7 installation already feels like playing on hard mode, nevermind supporting the original release 😅). I see no issue with it getting removed. |
Not interested. |
I've opened a MCP to remove the |
Location
The platform support table.
Summary
i586-pc-windows-msvc
is the non-SSE version of thei686-pc-windows-msvc
target, added back in 2016 in #32034 when Rust supported Windows XP. Windows XP/Vista support was subsequently dropped in MCP 378, and Windows 7/8 support for then-existing targets was dropped in MCP 651. However, the platform support table entry fori586-pc-windows-msvc
currently reads "32-bit Windows (original Pentium)" (with nostd
support), without specifying which version of Windows it targets.Additionally, Windows hasn't supported pre-SSE2 CPUs since Windows 8, with Windows 7 apparently dropping support for pre-SSE2 CPUs in a March 2018 update. This means that for Windows 10+
i586-pc-windows-msvc
is a footgun: it provides worse performance with more miscompilations (see #114479) without providing any greater CPU support, as the underlying OS requires SSE2 anyway.The appears to be two possibilities:
i586-pc-windows-msvc
has a baseline of Windows 10+ - formally speaking I think this is the status quo, as MCP 651 raised "the minimum supported Windows version of current targets to Windows 10". At minimum, this would just require an update to the platform support page to explicitly state this. However, given the lack of purpose for this target on Windows 10+ as detailed above the target almost certainly fails the tier 2 target policy requirement that a target "must document [...] why the specific difference in baseline expectations provides sufficient value to justify a separate target", so should probably either be demoted to tier 3 or removed entirely (these would both require a MCP).i586-pc-windows-msvc
has a baseline of an older Windows version (perhaps Windows 7 or Windows XP). In this case the target should be renamed (similar to the existing-win7-
targets) to make explicit this lower baseline.There aren't any target maintains listed for this target.
cc @ChrisDenton (author of the two Windows version MCPs)
The text was updated successfully, but these errors were encountered: