Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 77677fe

Browse files
committedMar 9, 2025
Demote i686-pc-windows-gnu to Tier 2
In accordance with RFC 3771. I also added a stub doc page for the target and renamed the windows-gnullvm page for consistency.
1 parent 8c39296 commit 77677fe

File tree

9 files changed

+46
-45
lines changed

9 files changed

+46
-45
lines changed
 

‎compiler/rustc_target/src/spec/targets/i686_pc_windows_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ pub(crate) fn target() -> Target {
2020
llvm_target: "i686-pc-windows-gnu".into(),
2121
metadata: TargetMetadata {
2222
description: Some("32-bit MinGW (Windows 10+)".into()),
23-
tier: Some(1),
23+
tier: Some(2),
2424
host_tools: Some(true),
2525
std: Some(true),
2626
},

‎src/bootstrap/mk/Makefile.in

-6
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,7 @@ ci-msvc: ci-msvc-py ci-msvc-ps1
115115

116116
## MingW native builders
117117

118-
# Set of tests that should represent half of the time of the test suite.
119-
# Used to split tests across multiple CI runners.
120118
# Test both x and bootstrap entrypoints.
121-
ci-mingw-x-1:
122-
$(Q)$(CFG_SRC_DIR)/x test --stage 2 $(SKIP_COMPILER) $(TEST_SET2)
123-
ci-mingw-x-2:
124-
$(Q)$(CFG_SRC_DIR)/x test --stage 2 $(SKIP_SRC) $(TEST_SET2)
125119
ci-mingw-x:
126120
$(Q)$(CFG_SRC_DIR)/x test --stage 2 $(TEST_SET1)
127121
ci-mingw-bootstrap:

‎src/ci/docker/host-x86_64/mingw-check/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ ENV RUN_CHECK_WITH_PARALLEL_QUERIES 1
4949
ENV SCRIPT \
5050
python3 ../x.py check --stage 0 --set build.optimized-compiler-builtins=false core alloc std --target=aarch64-unknown-linux-gnu,i686-pc-windows-msvc,i686-unknown-linux-gnu,x86_64-apple-darwin,x86_64-pc-windows-gnu,x86_64-pc-windows-msvc && \
5151
/scripts/check-default-config-profiles.sh && \
52-
python3 ../x.py check --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu && \
52+
python3 ../x.py check --target=x86_64-pc-windows-gnu --host=x86_64-pc-windows-gnu && \
5353
python3 ../x.py clippy ci && \
5454
python3 ../x.py build --stage 0 src/tools/build-manifest && \
5555
python3 ../x.py test --stage 0 src/tools/compiletest && \

‎src/ci/docker/host-x86_64/x86_64-gnu-tools/checktools.sh

-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ case $HOST_TARGET in
6262
# See <https://github.com/rust-lang/rust/issues/127883>
6363
# For now, these tests are moved to `x86_64-msvc-ext2` in `src/ci/github-actions/jobs.yml`.
6464
#python3 "$X_PY" test --stage 2 src/tools/miri --target aarch64-apple-darwin --test-args pass
65-
#python3 "$X_PY" test --stage 2 src/tools/miri --target i686-pc-windows-gnu --test-args pass
6665
;;
6766
*)
6867
echo "FATAL: unexpected host $HOST_TARGET"

‎src/ci/github-actions/jobs.yml

+1-26
Original file line numberDiff line numberDiff line change
@@ -496,7 +496,7 @@ auto:
496496
env:
497497
SCRIPT: >
498498
python x.py test --stage 2 src/tools/miri --target aarch64-apple-darwin --test-args pass &&
499-
python x.py test --stage 2 src/tools/miri --target i686-pc-windows-gnu --test-args pass &&
499+
python x.py test --stage 2 src/tools/miri --target x86_64-pc-windows-gnu --test-args pass &&
500500
python x.py miri --stage 2 library/core --test-args notest &&
501501
python x.py miri --stage 2 library/alloc --test-args notest &&
502502
python x.py miri --stage 2 library/std --test-args notest
@@ -528,31 +528,6 @@ auto:
528528
# came from the mingw-w64 SourceForge download site. Unfortunately
529529
# SourceForge is notoriously flaky, so we mirror it on our own infrastructure.
530530

531-
# i686-mingw is split into three jobs to run tests in parallel.
532-
- name: i686-mingw-1
533-
env:
534-
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
535-
SCRIPT: make ci-mingw-x-1
536-
# There is no dist-i686-mingw-alt, so there is no prebuilt LLVM with assertions
537-
NO_DOWNLOAD_CI_LLVM: 1
538-
<<: *job-windows-25
539-
540-
- name: i686-mingw-2
541-
env:
542-
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
543-
SCRIPT: make ci-mingw-x-2
544-
# There is no dist-i686-mingw-alt, so there is no prebuilt LLVM with assertions
545-
NO_DOWNLOAD_CI_LLVM: 1
546-
<<: *job-windows-25
547-
548-
- name: i686-mingw-3
549-
env:
550-
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-gnu
551-
SCRIPT: make ci-mingw-bootstrap
552-
# There is no dist-i686-mingw-alt, so there is no prebuilt LLVM with assertions
553-
NO_DOWNLOAD_CI_LLVM: 1
554-
<<: *job-windows-25
555-
556531
# x86_64-mingw is split into two jobs to run tests in parallel.
557532
- name: x86_64-mingw-1
558533
env:

‎src/doc/rustc/src/SUMMARY.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@
8181
- [s390x-unknown-linux-musl](platform-support/s390x-unknown-linux-musl.md)
8282
- [sparc-unknown-none-elf](./platform-support/sparc-unknown-none-elf.md)
8383
- [sparcv9-sun-solaris](platform-support/solaris.md)
84-
- [\*-pc-windows-gnullvm](platform-support/pc-windows-gnullvm.md)
8584
- [\*-nto-qnx-\*](platform-support/nto-qnx.md)
8685
- [\*-unikraft-linux-musl](platform-support/unikraft-linux-musl.md)
8786
- [\*-unknown-hermit](platform-support/hermit.md)
@@ -99,6 +98,8 @@
9998
- [wasm32-unknown-unknown](platform-support/wasm32-unknown-unknown.md)
10099
- [wasm32v1-none](platform-support/wasm32v1-none.md)
101100
- [wasm64-unknown-unknown](platform-support/wasm64-unknown-unknown.md)
101+
- [windows-gnu](platform-support/windows-gnu.md)
102+
- [windows-gnullvm](platform-support/windows-gnullvm.md)
102103
- [\*-win7-windows-gnu](platform-support/win7-windows-gnu.md)
103104
- [\*-win7-windows-msvc](platform-support/win7-windows-msvc.md)
104105
- [x86_64-fortanix-unknown-sgx](platform-support/x86_64-fortanix-unknown-sgx.md)

‎src/doc/rustc/src/platform-support.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,10 @@ target | notes
3434
-------|-------
3535
[`aarch64-apple-darwin`](platform-support/apple-darwin.md) | ARM64 macOS (11.0+, Big Sur+)
3636
`aarch64-unknown-linux-gnu` | ARM64 Linux (kernel 4.1, glibc 2.17+)
37-
`i686-pc-windows-gnu` | 32-bit MinGW (Windows 10+, Windows Server 2016+, Pentium 4) [^x86_32-floats-return-ABI]
3837
`i686-pc-windows-msvc` | 32-bit MSVC (Windows 10+, Windows Server 2016+, Pentium 4) [^x86_32-floats-return-ABI]
3938
`i686-unknown-linux-gnu` | 32-bit Linux (kernel 3.2+, glibc 2.17+, Pentium 4) [^x86_32-floats-return-ABI]
4039
[`x86_64-apple-darwin`](platform-support/apple-darwin.md) | 64-bit macOS (10.12+, Sierra+)
41-
`x86_64-pc-windows-gnu` | 64-bit MinGW (Windows 10+, Windows Server 2016+)
40+
[`x86_64-pc-windows-gnu`](platform-support/windows-gnu.md) | 64-bit MinGW (Windows 10+, Windows Server 2016+)
4241
`x86_64-pc-windows-msvc` | 64-bit MSVC (Windows 10+, Windows Server 2016+)
4342
`x86_64-unknown-linux-gnu` | 64-bit Linux (kernel 3.2+, glibc 2.17+)
4443

@@ -94,6 +93,7 @@ target | notes
9493
`armv7-unknown-linux-gnueabihf` | Armv7-A Linux, hardfloat (kernel 3.2, glibc 2.17)
9594
[`loongarch64-unknown-linux-gnu`](platform-support/loongarch-linux.md) | LoongArch64 Linux, LP64D ABI (kernel 5.19, glibc 2.36)
9695
[`loongarch64-unknown-linux-musl`](platform-support/loongarch-linux.md) | LoongArch64 Linux, LP64D ABI (kernel 5.19, musl 1.2.5)
96+
[`i686-pc-windows-gnu`](platform-support/windows-gnu.md) | 32-bit MinGW (Windows 10+, Windows Server 2016+, Pentium 4) [^x86_32-floats-return-ABI]
9797
`powerpc-unknown-linux-gnu` | PowerPC Linux (kernel 3.2, glibc 2.17)
9898
`powerpc64-unknown-linux-gnu` | PPC64 Linux (kernel 3.2, glibc 2.17)
9999
`powerpc64le-unknown-linux-gnu` | PPC64LE Linux (kernel 3.10, glibc 2.17)
@@ -140,7 +140,7 @@ target | std | notes
140140
[`aarch64-apple-ios-macabi`](platform-support/apple-ios-macabi.md) | ✓ | Mac Catalyst on ARM64
141141
[`aarch64-apple-ios-sim`](platform-support/apple-ios.md) | ✓ | Apple iOS Simulator on ARM64
142142
[`aarch64-linux-android`](platform-support/android.md) | ✓ | ARM64 Android
143-
[`aarch64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ARM64 MinGW (Windows 10+), LLVM ABI
143+
[`aarch64-pc-windows-gnullvm`](platform-support/windows-gnullvm.md) | ✓ | ARM64 MinGW (Windows 10+), LLVM ABI
144144
[`aarch64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | ARM64 Fuchsia
145145
[`aarch64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | ARM64 OpenHarmony
146146
`aarch64-unknown-none` | * | Bare ARM64, hardfloat
@@ -166,7 +166,7 @@ target | std | notes
166166
`i586-unknown-linux-gnu` | ✓ | 32-bit Linux (kernel 3.2, glibc 2.17, original Pentium) [^x86_32-floats-x87]
167167
`i586-unknown-linux-musl` | ✓ | 32-bit Linux (musl 1.2.3, original Pentium) [^x86_32-floats-x87]
168168
[`i686-linux-android`](platform-support/android.md) | ✓ | 32-bit x86 Android ([Pentium 4 plus various extensions](https://developer.android.com/ndk/guides/abis.html#x86)) [^x86_32-floats-return-ABI]
169-
[`i686-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | 32-bit x86 MinGW (Windows 10+, Pentium 4), LLVM ABI [^x86_32-floats-return-ABI]
169+
[`i686-pc-windows-gnullvm`](platform-support/windows-gnullvm.md) | ✓ | 32-bit x86 MinGW (Windows 10+, Pentium 4), LLVM ABI [^x86_32-floats-return-ABI]
170170
[`i686-unknown-freebsd`](platform-support/freebsd.md) | ✓ | 32-bit x86 FreeBSD (Pentium 4) [^x86_32-floats-return-ABI]
171171
`i686-unknown-linux-musl` | ✓ | 32-bit Linux with musl 1.2.3 (Pentium 4) [^x86_32-floats-return-ABI]
172172
[`i686-unknown-uefi`](platform-support/unknown-uefi.md) | ? | 32-bit UEFI (Pentium 4, softfloat)
@@ -202,7 +202,7 @@ target | std | notes
202202
[`x86_64-fortanix-unknown-sgx`](platform-support/x86_64-fortanix-unknown-sgx.md) | ✓ | [Fortanix ABI] for 64-bit Intel SGX
203203
[`x86_64-linux-android`](platform-support/android.md) | ✓ | 64-bit x86 Android
204204
[`x86_64-pc-solaris`](platform-support/solaris.md) | ✓ | 64-bit x86 Solaris 11.4
205-
[`x86_64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | 64-bit x86 MinGW (Windows 10+), LLVM ABI
205+
[`x86_64-pc-windows-gnullvm`](platform-support/windows-gnullvm.md) | ✓ | 64-bit x86 MinGW (Windows 10+), LLVM ABI
206206
[`x86_64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | 64-bit x86 Fuchsia
207207
`x86_64-unknown-linux-gnux32` | ✓ | 64-bit Linux (x32 ABI) (kernel 4.15, glibc 2.27)
208208
[`x86_64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | x86_64 OpenHarmony
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# \*-windows-gnu
2+
3+
**⚠️ This documentation page is a stub, you can help improving it by sending a PR. ⚠️**
4+
5+
**Tier: 1/2 (with host tools)**
6+
7+
Target triples available:
8+
- `i686-pc-windows-gnu`: Tier 2
9+
- `x86_64-pc-windows-gnu`: Tier 1
10+
11+
## Target maintainers
12+
13+
**⚠️ These targets do not have any maintainers and are not properly maintained. ⚠️**
14+
15+
If you are using this target, consider signing up to become a target maintainer.
16+
See the target tier policy for details.
17+
Without maintainers, these targets may be demoted in the future.
18+
19+
## Requirements
20+
21+
These targets support std and host tools.
22+
23+
Unlike their MSVC counterparts, windows-gnu targets support cross-compilation and are free of all MSVC licensing implications.
24+
25+
They follow Windows calling convention for `extern "C"`.
26+
27+
Like with any other Windows target, created binaries are in PE format.
28+
29+
## Building Rust programs
30+
31+
Rust does ship a pre-compiled std library for those targets.
32+
That means one can easily compile and cross-compile for those targets from other hosts if C proper toolchain is installed.

‎src/doc/rustc/src/platform-support/pc-windows-gnullvm.md ‎src/doc/rustc/src/platform-support/windows-gnullvm.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# \*-pc-windows-gnullvm
1+
# \*-windows-gnullvm
22

33
**Tier: 2 (without host tools)**
44

5-
Windows targets similar to `*-pc-windows-gnu` but using UCRT as the runtime and various LLVM tools/libraries instead of GCC/Binutils.
5+
Windows targets similar to `*-windows-gnu` but using UCRT as the runtime and various LLVM tools/libraries instead of GCC/Binutils.
66

77
Target triples available so far:
88
- `aarch64-pc-windows-gnullvm`
@@ -17,9 +17,9 @@ Target triples available so far:
1717
## Requirements
1818

1919
The easiest way to obtain these targets is cross-compilation, but native build from `x86_64-pc-windows-gnu` is possible with few hacks which I don't recommend.
20-
Std support is expected to be on par with `*-pc-windows-gnu`.
20+
Std support is expected to be on par with `*-windows-gnu`.
2121

22-
Binaries for this target should be at least on par with `*-pc-windows-gnu` in terms of requirements and functionality.
22+
Binaries for this target should be at least on par with `*-windows-gnu` in terms of requirements and functionality.
2323

2424
Those targets follow Windows calling convention for `extern "C"`.
2525

0 commit comments

Comments
 (0)
Failed to load comments.