Promote 64-bit windows-gnullvm Targets to Tier 2 with Host Tools #877
Labels
final-comment-period
The FCP has started, most (if not all) team members are in agreement
major-change
A proposal to make a major change to rustc
T-compiler
Add this label so rfcbot knows to poll the compiler team
to-announce
Announce this issue on triage meeting
Proposal
Promote aarch64-pc-windows-gnullvm and x86_64-pc-windows-gnullvm from tier 2 target (without host tools) to tier 2 hosts. i686-pc-windows-gnullvm is not considered for various reasons, like not being able to host itself without intrusive LLVM patches (memory mapped IO and 32-bit Windows processes don't go well together).
The benefits over windows-gnu targets listed at #710 still apply.
Moreover, aarch64-pc-windows-gnullvm host toolchain would allow avoiding proprietary tools on AArch64 Windows.
(the part below is based on #870)
Requirements for Tier 2 with Host Tools
MSYS2 already provides host rustc, cargo, clippy and rustfmt for these targets. Initially there were some issues, but at this point there are far fewer known issues compared to windows-gnu.
Cross-compilation (without LLVM tools because of a bootstrap bug) completes within 2 hours: rust-lang/rust#140772 (comment)
I don't have exact numbers, but I know at least some people using MSYS2 also use MSYS2 provided windows-gnullvm. Should be also useful to anyone wanting code coverage on Windows without having to install Windows SDK.
From what I can tell, they are more reliable than some of tier 1 host toolchains.
Even with profilers, sanitizers, etc. build time should be comparable with windows-gnu.
Windows-gnullvm host tools do not work at all without mingw-w64+LLVM toolchain in PATH. This is a difference compared to windows-gnu host toolchains which can build and link most of the pure Rust crates without C toolchain in PATH.
Otherwise it's mostly the same thing as with windows-gnu.
Signing is not required.
These targets are already well-supported by cross compilation.
These targets are already supported in Tier 2.
The text was updated successfully, but these errors were encountered: