Skip to content

Commit 5337252

Browse files
committed
Auto merge of rust-lang#137869 - Noratrieb:Now_I_am_become_death,_the_destroyer_of_i686-pc-windows-gnu, r=workingjubilee
Demote i686-pc-windows-gnu to Tier 2 In accordance with [RFC 3771](rust-lang/rfcs#3771). FCP has been completed. tracking issue rust-lang#138422 I also added a stub doc page for the target and renamed the windows-gnullvm page for consistency.
2 parents b8ff7b6 + 6a1f57d commit 5337252

File tree

9 files changed

+46
-43
lines changed

9 files changed

+46
-43
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

-4
Original file line numberDiff line numberDiff line change
@@ -120,10 +120,6 @@ ci-msvc: ci-msvc-py ci-msvc-ps1
120120
# Set of tests that should represent half of the time of the test suite.
121121
# Used to split tests across multiple CI runners.
122122
# Test both x and bootstrap entrypoints.
123-
ci-mingw-x-1:
124-
$(Q)$(CFG_SRC_DIR)/x test --stage 2 $(SKIP_COMPILER) $(TEST_SET2)
125-
ci-mingw-x-2:
126-
$(Q)$(CFG_SRC_DIR)/x test --stage 2 $(SKIP_SRC) $(TEST_SET2)
127123
ci-mingw-x:
128124
$(Q)$(CFG_SRC_DIR)/x test --stage 2 $(TEST_SET1)
129125
ci-mingw-bootstrap:

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ COPY host-x86_64/mingw-check/validate-error-codes.sh /scripts/
4747
ENV SCRIPT \
4848
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 && \
4949
/scripts/check-default-config-profiles.sh && \
50-
python3 ../x.py check --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu && \
50+
python3 ../x.py check --target=x86_64-pc-windows-gnu --host=x86_64-pc-windows-gnu && \
5151
python3 ../x.py clippy ci && \
5252
python3 ../x.py build --stage 0 src/tools/build-manifest && \
5353
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
@@ -501,7 +501,7 @@ auto:
501501
env:
502502
SCRIPT: >
503503
python x.py test --stage 2 src/tools/miri --target aarch64-apple-darwin --test-args pass &&
504-
python x.py test --stage 2 src/tools/miri --target i686-pc-windows-gnu --test-args pass &&
504+
python x.py test --stage 2 src/tools/miri --target x86_64-pc-windows-gnu --test-args pass &&
505505
python x.py miri --stage 2 library/core --test-args notest &&
506506
python x.py miri --stage 2 library/alloc --test-args notest &&
507507
python x.py miri --stage 2 library/std --test-args notest
@@ -533,31 +533,6 @@ auto:
533533
# came from the mingw-w64 SourceForge download site. Unfortunately
534534
# SourceForge is notoriously flaky, so we mirror it on our own infrastructure.
535535

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

src/doc/rustc/src/SUMMARY.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@
103103
- [s390x-unknown-linux-musl](platform-support/s390x-unknown-linux-musl.md)
104104
- [sparc-unknown-none-elf](./platform-support/sparc-unknown-none-elf.md)
105105
- [solaris](platform-support/solaris.md)
106-
- [\*-pc-windows-gnullvm](platform-support/pc-windows-gnullvm.md)
107106
- [\*-nto-qnx-\*](platform-support/nto-qnx.md)
108107
- [\*-unikraft-linux-musl](platform-support/unikraft-linux-musl.md)
109108
- [\*-unknown-hermit](platform-support/hermit.md)
@@ -122,6 +121,8 @@
122121
- [wasm32-unknown-unknown](platform-support/wasm32-unknown-unknown.md)
123122
- [wasm32v1-none](platform-support/wasm32v1-none.md)
124123
- [wasm64-unknown-unknown](platform-support/wasm64-unknown-unknown.md)
124+
- [windows-gnu](platform-support/windows-gnu.md)
125+
- [windows-gnullvm](platform-support/windows-gnullvm.md)
125126
- [\*-win7-windows-gnu](platform-support/win7-windows-gnu.md)
126127
- [\*-win7-windows-msvc](platform-support/win7-windows-msvc.md)
127128
- [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

@@ -96,6 +95,7 @@ target | notes
9695
[`armv7-unknown-linux-ohos`](platform-support/openharmony.md) | Armv7-A OpenHarmony
9796
[`loongarch64-unknown-linux-gnu`](platform-support/loongarch-linux.md) | LoongArch64 Linux, LP64D ABI (kernel 5.19, glibc 2.36)
9897
[`loongarch64-unknown-linux-musl`](platform-support/loongarch-linux.md) | LoongArch64 Linux, LP64D ABI (kernel 5.19, musl 1.2.5)
98+
[`i686-pc-windows-gnu`](platform-support/windows-gnu.md) | 32-bit MinGW (Windows 10+, Windows Server 2016+, Pentium 4) [^x86_32-floats-return-ABI]
9999
`powerpc-unknown-linux-gnu` | PowerPC Linux (kernel 3.2, glibc 2.17)
100100
`powerpc64-unknown-linux-gnu` | PPC64 Linux (kernel 3.2, glibc 2.17)
101101
[`powerpc64le-unknown-linux-gnu`](platform-support/powerpc64le-unknown-linux-gnu.md) | PPC64LE Linux (kernel 3.10, glibc 2.17)
@@ -143,7 +143,7 @@ target | std | notes
143143
[`aarch64-apple-ios-macabi`](platform-support/apple-ios-macabi.md) | ✓ | Mac Catalyst on ARM64
144144
[`aarch64-apple-ios-sim`](platform-support/apple-ios.md) | ✓ | Apple iOS Simulator on ARM64
145145
[`aarch64-linux-android`](platform-support/android.md) | ✓ | ARM64 Android
146-
[`aarch64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ARM64 MinGW (Windows 10+), LLVM ABI
146+
[`aarch64-pc-windows-gnullvm`](platform-support/windows-gnullvm.md) | ✓ | ARM64 MinGW (Windows 10+), LLVM ABI
147147
[`aarch64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | ARM64 Fuchsia
148148
`aarch64-unknown-none` | * | Bare ARM64, hardfloat
149149
`aarch64-unknown-none-softfloat` | * | Bare ARM64, softfloat
@@ -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-none`](platform-support/x86_64-unknown-none.md) | * | Freestanding/bare-metal x86_64, softfloat
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)