@@ -33,9 +33,9 @@ All tier 1 targets with host tools support the full standard library.
33
33
target | notes
34
34
-------|-------
35
35
` aarch64-unknown-linux-gnu ` | ARM64 Linux (kernel 4.1, glibc 2.17+) [ ^ missing-stack-probes ]
36
- ` i686-pc-windows-gnu ` | 32-bit MinGW (Windows 7+) [ ^ windows-support ] [ ^ x86_32-floats-SSE ]
37
- ` i686-pc-windows-msvc ` | 32-bit MSVC (Windows 7+) [ ^ windows-support ] [ ^ x86_32-floats-SSE ]
38
- ` i686-unknown-linux-gnu ` | 32-bit Linux (kernel 3.2+, glibc 2.17+) [ ^ x86_32-floats-SSE ]
36
+ ` i686-pc-windows-gnu ` | 32-bit MinGW (Windows 7+) [ ^ windows-support ] [ ^ x86_32-floats-return-ABI ]
37
+ ` i686-pc-windows-msvc ` | 32-bit MSVC (Windows 7+) [ ^ windows-support ] [ ^ x86_32-floats-return-ABI ]
38
+ ` i686-unknown-linux-gnu ` | 32-bit Linux (kernel 3.2+, glibc 2.17+) [ ^ x86_32-floats-return-ABI ]
39
39
` x86_64-apple-darwin ` | 64-bit macOS (10.7+, Lion+)
40
40
` x86_64-pc-windows-gnu ` | 64-bit MinGW (Windows 7+) [ ^ windows-support ]
41
41
` x86_64-pc-windows-msvc ` | 64-bit MSVC (Windows 7+) [ ^ windows-support ]
@@ -47,7 +47,7 @@ target | notes
47
47
48
48
[ ^ windows-support ] : Only Windows 10 currently undergoes automated testing. Earlier versions of Windows rely on testing and support from the community.
49
49
50
- [ ^ x86_32-floats-SSE ] : Due to limitations of the C ABI, floating-point support on ` i686 ` targets is non-compliant: floating-point return values are passed via an x87 register, so NaN payload bits can be lost. See [ issue #114479 ] [ x86-32-float-issue ] .
50
+ [ ^ x86_32-floats-return-ABI ] : Due to limitations of the C ABI, floating-point support on ` i686 ` targets is non-compliant: floating-point return values are passed via an x87 register, so NaN payload bits can be lost. See [ issue #114479 ] [ x86-32-float-issue ] .
51
51
52
52
[ 77071 ] : https://github.com/rust-lang/rust/issues/77071
53
53
[ x86-32-float-issue ] : https://github.com/rust-lang/rust/issues/114479
@@ -153,12 +153,12 @@ target | std | notes
153
153
` armv7r-none-eabi ` | * | Bare ARMv7-R
154
154
` armv7r-none-eabihf ` | * | Bare ARMv7-R, hardfloat
155
155
` asmjs-unknown-emscripten ` | ✓ | asm.js via Emscripten
156
- ` i586-pc-windows-msvc ` | * | 32-bit Windows w/o SSE [ ^ x86_32-floats-noSSE ]
157
- ` i586-unknown-linux-gnu ` | ✓ | 32-bit Linux w/o SSE (kernel 3.2, glibc 2.17) [ ^ x86_32-floats-noSSE ]
158
- ` i586-unknown-linux-musl ` | ✓ | 32-bit Linux w/o SSE, MUSL [ ^ x86_32-floats-noSSE ]
159
- [ ` i686-linux-android ` ] ( platform-support/android.md ) | ✓ | 32-bit x86 Android [ ^ x86_32-floats-SSE ]
160
- ` i686-unknown-freebsd ` | ✓ | 32-bit FreeBSD [ ^ x86_32-floats-SSE ]
161
- ` i686-unknown-linux-musl ` | ✓ | 32-bit Linux with MUSL [ ^ x86_32-floats-SSE ]
156
+ ` i586-pc-windows-msvc ` | * | 32-bit Windows w/o SSE [ ^ x86_32-floats-x87 ]
157
+ ` i586-unknown-linux-gnu ` | ✓ | 32-bit Linux w/o SSE (kernel 3.2, glibc 2.17) [ ^ x86_32-floats-x87 ]
158
+ ` i586-unknown-linux-musl ` | ✓ | 32-bit Linux w/o SSE, MUSL [ ^ x86_32-floats-x87 ]
159
+ [ ` i686-linux-android ` ] ( platform-support/android.md ) | ✓ | 32-bit x86 Android [ ^ x86_32-floats-return-ABI ]
160
+ ` i686-unknown-freebsd ` | ✓ | 32-bit FreeBSD [ ^ x86_32-floats-return-ABI ]
161
+ ` i686-unknown-linux-musl ` | ✓ | 32-bit Linux with MUSL [ ^ x86_32-floats-return-ABI ]
162
162
[ ` i686-unknown-uefi ` ] ( platform-support/unknown-uefi.md ) | * | 32-bit UEFI
163
163
` mips-unknown-linux-musl ` | ✓ | MIPS Linux with MUSL
164
164
` mips64-unknown-linux-muslabi64 ` | ✓ | MIPS64 Linux, n64 ABI, MUSL
@@ -195,7 +195,7 @@ target | std | notes
195
195
` x86_64-unknown-redox ` | ✓ | Redox OS
196
196
[ ` x86_64-unknown-uefi ` ] ( platform-support/unknown-uefi.md ) | * | 64-bit UEFI
197
197
198
- [ ^ x86_32-floats-noSSE ] : Floating-point support on ` i586 ` targets is non-compliant: the ` x87 ` registers and instructions used for these targets do not provide IEEE-754-compliant behavior, in particular when it comes to rounding and NaN payload bits. See [ issue #114479 ] [ x86-32-float-issue ] .
198
+ [ ^ x86_32-floats-x87 ] : Floating-point support on ` i586 ` targets is non-compliant: the ` x87 ` registers and instructions used for these targets do not provide IEEE-754-compliant behavior, in particular when it comes to rounding and NaN payload bits. See [ issue #114479 ] [ x86-32-float-issue ] .
199
199
200
200
[ Fortanix ABI ] : https://edp.fortanix.com/
201
201
@@ -267,16 +267,16 @@ target | std | host | notes
267
267
` bpfel-unknown-none ` | * | | BPF (little endian)
268
268
` csky-unknown-linux-gnuabiv2 ` | ✓ | | C-SKY abiv2 Linux(little endian)
269
269
` hexagon-unknown-linux-musl ` | ? | |
270
- ` i386-apple-ios ` | ✓ | | 32-bit x86 iOS [ ^ x86_32-floats-SSE ]
271
- [ ` i586-pc-nto-qnx700 ` ] ( platform-support/nto-qnx.md ) | * | | 32-bit x86 QNX Neutrino 7.0 RTOS [ ^ x86_32-floats-SSE ]
272
- ` i686-apple-darwin ` | ✓ | ✓ | 32-bit macOS (10.7+, Lion+) [ ^ x86_32-floats-SSE ]
273
- ` i686-pc-windows-msvc ` | * | | 32-bit Windows XP support [ ^ x86_32-floats-SSE ]
274
- ` i686-unknown-haiku ` | ✓ | ✓ | 32-bit Haiku [ ^ x86_32-floats-SSE ]
275
- [ ` i686-unknown-netbsd ` ] ( platform-support/netbsd.md ) | ✓ | ✓ | NetBSD/i386 with SSE2 [ ^ x86_32-floats-SSE ]
276
- [ ` i686-unknown-openbsd ` ] ( platform-support/openbsd.md ) | ✓ | ✓ | 32-bit OpenBSD [ ^ x86_32-floats-SSE ]
277
- ` i686-uwp-windows-gnu ` | ? | | [ ^ x86_32-floats-SSE ]
278
- ` i686-uwp-windows-msvc ` | ? | | [ ^ x86_32-floats-SSE ]
279
- ` i686-wrs-vxworks ` | ? | | [ ^ x86_32-floats-SSE ]
270
+ ` i386-apple-ios ` | ✓ | | 32-bit x86 iOS [ ^ x86_32-floats-return-ABI ]
271
+ [ ` i586-pc-nto-qnx700 ` ] ( platform-support/nto-qnx.md ) | * | | 32-bit x86 QNX Neutrino 7.0 RTOS [ ^ x86_32-floats-return-ABI ]
272
+ ` i686-apple-darwin ` | ✓ | ✓ | 32-bit macOS (10.7+, Lion+) [ ^ x86_32-floats-return-ABI ]
273
+ ` i686-pc-windows-msvc ` | * | | 32-bit Windows XP support [ ^ x86_32-floats-return-ABI ]
274
+ ` i686-unknown-haiku ` | ✓ | ✓ | 32-bit Haiku [ ^ x86_32-floats-return-ABI ]
275
+ [ ` i686-unknown-netbsd ` ] ( platform-support/netbsd.md ) | ✓ | ✓ | NetBSD/i386 with SSE2 [ ^ x86_32-floats-return-ABI ]
276
+ [ ` i686-unknown-openbsd ` ] ( platform-support/openbsd.md ) | ✓ | ✓ | 32-bit OpenBSD [ ^ x86_32-floats-return-ABI ]
277
+ ` i686-uwp-windows-gnu ` | ? | | [ ^ x86_32-floats-return-ABI ]
278
+ ` i686-uwp-windows-msvc ` | ? | | [ ^ x86_32-floats-return-ABI ]
279
+ ` i686-wrs-vxworks ` | ? | | [ ^ x86_32-floats-return-ABI ]
280
280
[ ` loongarch64-unknown-none ` ] ( platform-support/loongarch-none.md ) | * | | LoongArch64 Bare-metal (LP64D ABI)
281
281
[ ` loongarch64-unknown-none-softfloat ` ] ( platform-support/loongarch-none.md ) | * | | LoongArch64 Bare-metal (LP64S ABI)
282
282
[ ` m68k-unknown-linux-gnu ` ] ( platform-support/m68k-unknown-linux-gnu.md ) | ? | | Motorola 680x0 Linux
0 commit comments