]> git.lizzy.rs Git - rust.git/blob - src/doc/rustc/src/platform-support.md
Rollup merge of #104193 - TaKO8Ki:fix-104142, r=cjgillot
[rust.git] / src / doc / rustc / src / platform-support.md
1 # Platform Support
2
3 <style type="text/css">
4     td code {
5         white-space: nowrap;
6     }
7 </style>
8
9 Support for different platforms ("targets") are organized into three tiers,
10 each with a different set of guarantees. For more information on the policies
11 for targets at each tier, see the [Target Tier Policy](target-tier-policy.md).
12
13 Targets are identified by their "target triple" which is the string to inform
14 the compiler what kind of output should be produced.
15
16 ## Tier 1 with Host Tools
17
18 Tier 1 targets can be thought of as "guaranteed to work". The Rust project
19 builds official binary releases for each tier 1 target, and automated testing
20 ensures that each tier 1 target builds and passes tests after each change.
21
22 Tier 1 targets with host tools additionally support running tools like `rustc`
23 and `cargo` natively on the target, and automated testing ensures that tests
24 pass for the host tools as well. This allows the target to be used as a
25 development platform, not just a compilation target. For the full requirements,
26 see [Tier 1 with Host Tools](target-tier-policy.md#tier-1-with-host-tools) in
27 the Target Tier Policy.
28
29 All tier 1 targets with host tools support the full standard library.
30
31 target | notes
32 -------|-------
33 `aarch64-unknown-linux-gnu` | ARM64 Linux (kernel 4.1, glibc 2.17+) [^missing-stack-probes]
34 `i686-pc-windows-gnu` | 32-bit MinGW (Windows 7+) [^windows-support]
35 `i686-pc-windows-msvc` | 32-bit MSVC (Windows 7+) [^windows-support]
36 `i686-unknown-linux-gnu` | 32-bit Linux (kernel 3.2+, glibc 2.17+)
37 `x86_64-apple-darwin` | 64-bit macOS (10.7+, Lion+)
38 `x86_64-pc-windows-gnu` | 64-bit MinGW (Windows 7+) [^windows-support]
39 `x86_64-pc-windows-msvc` | 64-bit MSVC (Windows 7+) [^windows-support]
40 `x86_64-unknown-linux-gnu` | 64-bit Linux (kernel 3.2+, glibc 2.17+)
41
42 [^missing-stack-probes]: Stack probes support is missing on
43   `aarch64-unknown-linux-gnu`, but it's planned to be implemented in the near
44   future. The implementation is tracked on [issue #77071][77071].
45
46 [^windows-support]: Only Windows 10 currently undergoes automated testing. Earlier versions of Windows rely on testing and support from the community.
47
48 [77071]: https://github.com/rust-lang/rust/issues/77071
49
50 ## Tier 1
51
52 Tier 1 targets can be thought of as "guaranteed to work". The Rust project
53 builds official binary releases for each tier 1 target, and automated testing
54 ensures that each tier 1 target builds and passes tests after each change. For
55 the full requirements, see [Tier 1 target
56 policy](target-tier-policy.md#tier-1-target-policy) in the Target Tier Policy.
57
58 At this time, all Tier 1 targets are [Tier 1 with Host
59 Tools](#tier-1-with-host-tools).
60
61 ## Tier 2 with Host Tools
62
63 Tier 2 targets can be thought of as "guaranteed to build". The Rust project
64 builds official binary releases for each tier 2 target, and automated builds
65 ensure that each tier 2 target builds after each change. Automated tests are
66 not always run so it's not guaranteed to produce a working build, but tier 2
67 targets often work to quite a good degree and patches are always welcome!
68
69 Tier 2 targets with host tools additionally support running tools like `rustc`
70 and `cargo` natively on the target, and automated builds ensure that the host
71 tools build as well. This allows the target to be used as a development
72 platform, not just a compilation target. For the full requirements, see [Tier 2
73 with Host Tools](target-tier-policy.md#tier-2-with-host-tools) in the Target
74 Tier Policy.
75
76 All tier 2 targets with host tools support the full standard library.
77
78 **NOTE:** The `rust-docs` component is not usually built for tier 2 targets,
79 so Rustup may install the documentation for a similar tier 1 target instead.
80
81 target | notes
82 -------|-------
83 `aarch64-apple-darwin` | ARM64 macOS (11.0+, Big Sur+)
84 `aarch64-pc-windows-msvc` | ARM64 Windows MSVC
85 `aarch64-unknown-linux-musl` | ARM64 Linux with MUSL
86 `arm-unknown-linux-gnueabi` | ARMv6 Linux (kernel 3.2, glibc 2.17)
87 `arm-unknown-linux-gnueabihf` | ARMv6 Linux, hardfloat (kernel 3.2, glibc 2.17)
88 `armv7-unknown-linux-gnueabihf` | ARMv7 Linux, hardfloat (kernel 3.2, glibc 2.17)
89 `mips-unknown-linux-gnu` | MIPS Linux (kernel 4.4, glibc 2.23)
90 `mips64-unknown-linux-gnuabi64` | MIPS64 Linux, n64 ABI (kernel 4.4, glibc 2.23)
91 `mips64el-unknown-linux-gnuabi64` | MIPS64 (LE) Linux, n64 ABI (kernel 4.4, glibc 2.23)
92 `mipsel-unknown-linux-gnu` | MIPS (LE) Linux (kernel 4.4, glibc 2.23)
93 `powerpc-unknown-linux-gnu` | PowerPC Linux (kernel 3.2, glibc 2.17)
94 `powerpc64-unknown-linux-gnu` | PPC64 Linux (kernel 3.2, glibc 2.17)
95 `powerpc64le-unknown-linux-gnu` | PPC64LE Linux (kernel 3.10, glibc 2.17)
96 `riscv64gc-unknown-linux-gnu` | RISC-V Linux (kernel 4.20, glibc 2.29)
97 `s390x-unknown-linux-gnu` | S390x Linux (kernel 3.2, glibc 2.17)
98 `x86_64-unknown-freebsd` | 64-bit FreeBSD
99 `x86_64-unknown-illumos` | illumos
100 `x86_64-unknown-linux-musl` | 64-bit Linux with MUSL
101 `x86_64-unknown-netbsd` | NetBSD/amd64
102
103 ## Tier 2
104
105 Tier 2 targets can be thought of as "guaranteed to build". The Rust project
106 builds official binary releases for each tier 2 target, and automated builds
107 ensure that each tier 2 target builds after each change. Automated tests are
108 not always run so it's not guaranteed to produce a working build, but tier 2
109 targets often work to quite a good degree and patches are always welcome! For
110 the full requirements, see [Tier 2 target
111 policy](target-tier-policy.md#tier-2-target-policy) in the Target Tier Policy.
112
113 The `std` column in the table below has the following meanings:
114
115 * ✓ indicates the full standard library is available.
116 * \* indicates the target only supports [`no_std`] development.
117
118 [`no_std`]: https://rust-embedded.github.io/book/intro/no-std.html
119
120 **NOTE:** The `rust-docs` component is not usually built for tier 2 targets,
121 so Rustup may install the documentation for a similar tier 1 target instead.
122
123 target | std | notes
124 -------|:---:|-------
125 `aarch64-apple-ios` | ✓ | ARM64 iOS
126 [`aarch64-apple-ios-sim`](platform-support/aarch64-apple-ios-sim.md) | ✓ | Apple iOS Simulator on ARM64
127 `aarch64-fuchsia` | ✓ | ARM64 Fuchsia
128 [`aarch64-linux-android`](platform-support/android.md) | ✓ | ARM64 Android
129 `aarch64-unknown-none-softfloat` | * | Bare ARM64, softfloat
130 `aarch64-unknown-none` | * | Bare ARM64, hardfloat
131 [`aarch64-unknown-uefi`](platform-support/unknown-uefi.md) | * | ARM64 UEFI
132 [`arm-linux-androideabi`](platform-support/android.md) | ✓ | ARMv7 Android
133 `arm-unknown-linux-musleabi` | ✓ | ARMv6 Linux with MUSL
134 `arm-unknown-linux-musleabihf` | ✓ | ARMv6 Linux with MUSL, hardfloat
135 `armebv7r-none-eabi` | * | Bare ARMv7-R, Big Endian
136 `armebv7r-none-eabihf` | * | Bare ARMv7-R, Big Endian, hardfloat
137 `armv5te-unknown-linux-gnueabi` | ✓ | ARMv5TE Linux (kernel 4.4, glibc 2.23)
138 `armv5te-unknown-linux-musleabi` | ✓ | ARMv5TE Linux with MUSL
139 [`armv7-linux-androideabi`](platform-support/android.md) | ✓ | ARMv7a Android
140 `armv7-unknown-linux-gnueabi` | ✓ |ARMv7 Linux (kernel 4.15, glibc 2.27)
141 `armv7-unknown-linux-musleabi` | ✓ |ARMv7 Linux with MUSL
142 `armv7-unknown-linux-musleabihf` | ✓ | ARMv7 Linux with MUSL, hardfloat
143 `armv7a-none-eabi` | * | Bare ARMv7-A
144 `armv7r-none-eabi` | * | Bare ARMv7-R
145 `armv7r-none-eabihf` | * | Bare ARMv7-R, hardfloat
146 `asmjs-unknown-emscripten` | ✓ | asm.js via Emscripten
147 `i586-pc-windows-msvc` | * | 32-bit Windows w/o SSE
148 `i586-unknown-linux-gnu` | ✓ | 32-bit Linux w/o SSE (kernel 3.2, glibc 2.17)
149 `i586-unknown-linux-musl` | ✓ | 32-bit Linux w/o SSE, MUSL
150 [`i686-linux-android`](platform-support/android.md) | ✓ | 32-bit x86 Android
151 `i686-unknown-freebsd` | ✓ | 32-bit FreeBSD
152 `i686-unknown-linux-musl` | ✓ | 32-bit Linux with MUSL
153 [`i686-unknown-uefi`](platform-support/unknown-uefi.md) | * | 32-bit UEFI
154 `mips-unknown-linux-musl` | ✓ | MIPS Linux with MUSL
155 `mips64-unknown-linux-muslabi64` | ✓ | MIPS64 Linux, n64 ABI, MUSL
156 `mips64el-unknown-linux-muslabi64` | ✓ | MIPS64 (LE) Linux, n64 ABI, MUSL
157 `mipsel-unknown-linux-musl` | ✓ | MIPS (LE) Linux with MUSL
158 `nvptx64-nvidia-cuda` | * | --emit=asm generates PTX code that [runs on NVIDIA GPUs]
159 `riscv32i-unknown-none-elf` | * | Bare RISC-V (RV32I ISA)
160 `riscv32imac-unknown-none-elf` | * | Bare RISC-V (RV32IMAC ISA)
161 `riscv32imc-unknown-none-elf` | * | Bare RISC-V (RV32IMC ISA)
162 `riscv64gc-unknown-none-elf` | * | Bare RISC-V (RV64IMAFDC ISA)
163 `riscv64imac-unknown-none-elf` | * | Bare RISC-V (RV64IMAC ISA)
164 `sparc64-unknown-linux-gnu` | ✓ | SPARC Linux (kernel 4.4, glibc 2.23)
165 `sparcv9-sun-solaris` | ✓ | SPARC Solaris 10/11, illumos
166 `thumbv6m-none-eabi` | * | Bare Cortex-M0, M0+, M1
167 `thumbv7em-none-eabi` | * | Bare Cortex-M4, M7
168 `thumbv7em-none-eabihf` | * | Bare Cortex-M4F, M7F, FPU, hardfloat
169 `thumbv7m-none-eabi` | * | Bare Cortex-M3
170 [`thumbv7neon-linux-androideabi`](platform-support/android.md) | ✓ | Thumb2-mode ARMv7a Android with NEON
171 `thumbv7neon-unknown-linux-gnueabihf` | ✓ | Thumb2-mode ARMv7a Linux with NEON (kernel 4.4, glibc 2.23)
172 `thumbv8m.base-none-eabi` | * | ARMv8-M Baseline
173 `thumbv8m.main-none-eabi` | * | ARMv8-M Mainline
174 `thumbv8m.main-none-eabihf` | * | ARMv8-M Mainline, hardfloat
175 `wasm32-unknown-emscripten` | ✓ | WebAssembly via Emscripten
176 `wasm32-unknown-unknown` | ✓ | WebAssembly
177 `wasm32-wasi` | ✓ | WebAssembly with WASI
178 `x86_64-apple-ios` | ✓ | 64-bit x86 iOS
179 [`x86_64-fortanix-unknown-sgx`](platform-support/x86_64-fortanix-unknown-sgx.md) | ✓ | [Fortanix ABI] for 64-bit Intel SGX
180 `x86_64-fuchsia` | ✓ | 64-bit Fuchsia
181 [`x86_64-linux-android`](platform-support/android.md) | ✓ | 64-bit x86 Android
182 `x86_64-pc-solaris` | ✓ | 64-bit Solaris 10/11, illumos
183 `x86_64-unknown-linux-gnux32` | ✓ | 64-bit Linux (x32 ABI) (kernel 4.15, glibc 2.27)
184 [`x86_64-unknown-none`](platform-support/x86_64-unknown-none.md) | * | Freestanding/bare-metal x86_64, softfloat
185 `x86_64-unknown-redox` | ✓ | Redox OS
186 [`x86_64-unknown-uefi`](platform-support/unknown-uefi.md) | * | 64-bit UEFI
187
188 [Fortanix ABI]: https://edp.fortanix.com/
189
190 ## Tier 3
191
192 Tier 3 targets are those which the Rust codebase has support for, but which the
193 Rust project does not build or test automatically, so they may or may not work.
194 Official builds are not available. For the full requirements, see [Tier 3
195 target policy](target-tier-policy.md#tier-3-target-policy) in the Target Tier
196 Policy.
197
198 The `std` column in the table below has the following meanings:
199
200 * ✓ indicates the full standard library is available.
201 * \* indicates the target only supports [`no_std`] development.
202 * ? indicates the standard library support is unknown or a work-in-progress.
203
204 [`no_std`]: https://rust-embedded.github.io/book/intro/no-std.html
205
206 The `host` column indicates whether the codebase includes support for building
207 host tools.
208
209 target | std | host | notes
210 -------|:---:|:----:|-------
211 `aarch64-apple-ios-macabi` | ? |  | Apple Catalyst on ARM64
212 `aarch64-apple-tvos` | * |  | ARM64 tvOS
213 [`aarch64-apple-watchos-sim`](platform-support/apple-watchos.md) | ✓ |  | ARM64 Apple WatchOS Simulator
214 [`aarch64-kmc-solid_asp3`](platform-support/kmc-solid.md) | ✓ |  | ARM64 SOLID with TOPPERS/ASP3
215 [`aarch64-nintendo-switch-freestanding`](platform-support/aarch64-nintendo-switch-freestanding.md) | * |  | ARM64 Nintendo Switch, Horizon
216 [`aarch64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ |
217 [`aarch64-unknown-nto-qnx7.1.0`](platform-support/nto-qnx.md) | ? |  | ARM64 QNX Neutrino 7.1 RTOS |
218 `aarch64-unknown-freebsd` | ✓ | ✓ | ARM64 FreeBSD
219 `aarch64-unknown-hermit` | ✓ |  | ARM64 HermitCore
220 `aarch64-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (ILP32 ABI)
221 `aarch64-unknown-netbsd` | ✓ | ✓ |
222 [`aarch64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | ARM64 OpenBSD
223 `aarch64-unknown-redox` | ? |  | ARM64 Redox OS
224 `aarch64-uwp-windows-msvc` | ? |  |
225 `aarch64-wrs-vxworks` | ? |  |
226 `aarch64_be-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (big-endian, ILP32 ABI)
227 `aarch64_be-unknown-linux-gnu` | ✓ | ✓ | ARM64 Linux (big-endian)
228 [`arm64_32-apple-watchos`](platform-support/apple-watchos.md) | ✓ | | ARM Apple WatchOS 64-bit with 32-bit pointers
229 [`armeb-unknown-linux-gnueabi`](platform-support/armeb-unknown-linux-gnueabi.md) | ✓ | ? | ARM BE8 the default ARM big-endian architecture since [ARMv6](https://developer.arm.com/documentation/101754/0616/armlink-Reference/armlink-Command-line-Options/--be8?lang=en).
230 `armv4t-none-eabi` | * |  | ARMv4T A32
231 `armv4t-unknown-linux-gnueabi` | ? |  |
232 [`armv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | ARMv5TE A32
233 `armv5te-unknown-linux-uclibceabi` | ? |  | ARMv5TE Linux with uClibc
234 `armv6-unknown-freebsd` | ✓ | ✓ | ARMv6 FreeBSD
235 `armv6-unknown-netbsd-eabihf` | ? |  |
236 [`armv6k-nintendo-3ds`](platform-support/armv6k-nintendo-3ds.md) | ? |  | ARMv6K Nintendo 3DS, Horizon (Requires devkitARM toolchain)
237 `armv7-apple-ios` | ✓ |  | ARMv7 iOS, Cortex-a8
238 [`armv7-unknown-linux-uclibceabi`](platform-support/armv7-unknown-linux-uclibceabi.md) | ✓ | ✓ | ARMv7 Linux with uClibc, softfloat
239 [`armv7-unknown-linux-uclibceabihf`](platform-support/armv7-unknown-linux-uclibceabihf.md) | ✓ | ? | ARMv7 Linux with uClibc, hardfloat
240 `armv7-unknown-freebsd` | ✓ | ✓ | ARMv7 FreeBSD
241 `armv7-unknown-netbsd-eabihf` | ✓ | ✓ |
242 `armv7-wrs-vxworks-eabihf` | ? |  |
243 [`armv7a-kmc-solid_asp3-eabi`](platform-support/kmc-solid.md) | ✓ |  | ARM SOLID with TOPPERS/ASP3
244 [`armv7a-kmc-solid_asp3-eabihf`](platform-support/kmc-solid.md) | ✓ |  | ARM SOLID with TOPPERS/ASP3, hardfloat
245 `armv7a-none-eabihf` | * | | ARM Cortex-A, hardfloat
246 [`armv7k-apple-watchos`](platform-support/apple-watchos.md) | ✓ | | ARM Apple WatchOS
247 `armv7s-apple-ios` | ✓ |  |
248 `avr-unknown-gnu-atmega328` | * |  | AVR. Requires `-Z build-std=core`
249 `bpfeb-unknown-none` | * |  | BPF (big endian)
250 `bpfel-unknown-none` | * |  | BPF (little endian)
251 `hexagon-unknown-linux-musl` | ? |  |
252 `i386-apple-ios` | ✓ |  | 32-bit x86 iOS
253 `i686-apple-darwin` | ✓ | ✓ | 32-bit macOS (10.7+, Lion+)
254 `i686-pc-windows-msvc` | * |  | 32-bit Windows XP support
255 `i686-unknown-haiku` | ✓ | ✓ | 32-bit Haiku
256 `i686-unknown-netbsd` | ✓ | ✓ | NetBSD/i386 with SSE2
257 [`i686-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 32-bit OpenBSD
258 `i686-uwp-windows-gnu` | ? |  |
259 `i686-uwp-windows-msvc` | ? |  |
260 `i686-wrs-vxworks` | ? |  |
261 [`m68k-unknown-linux-gnu`](platform-support/m68k-unknown-linux-gnu.md) | ? |  | Motorola 680x0 Linux
262 `mips-unknown-linux-uclibc` | ✓ |  | MIPS Linux with uClibc
263 [`mips64-openwrt-linux-musl`](platform-support/mips64-openwrt-linux-musl.md) | ? |  | MIPS64 for OpenWrt Linux MUSL
264 `mipsel-sony-psp` | * |  | MIPS (LE) Sony PlayStation Portable (PSP)
265 [`mipsel-sony-psx`](platform-support/mipsel-sony-psx.md) | * |  | MIPS (LE) Sony PlayStation 1 (PSX)
266 `mipsel-unknown-linux-uclibc` | ✓ |  | MIPS (LE) Linux with uClibc
267 `mipsel-unknown-none` | * |  | Bare MIPS (LE) softfloat
268 `mipsisa32r6-unknown-linux-gnu` | ? |  |
269 `mipsisa32r6el-unknown-linux-gnu` | ? |  |
270 `mipsisa64r6-unknown-linux-gnuabi64` | ? |  |
271 `mipsisa64r6el-unknown-linux-gnuabi64` | ? |  |
272 `msp430-none-elf` | * |  | 16-bit MSP430 microcontrollers
273 `powerpc-unknown-linux-gnuspe` | ✓ |  | PowerPC SPE Linux
274 `powerpc-unknown-linux-musl` | ? |  |
275 `powerpc-unknown-netbsd` | ✓ | ✓ |
276 `powerpc-unknown-openbsd` | ? |  |
277 `powerpc-wrs-vxworks-spe` | ? |  |
278 `powerpc-wrs-vxworks` | ? |  |
279 `powerpc64-unknown-freebsd` | ✓ | ✓ | PPC64 FreeBSD (ELFv1 and ELFv2)
280 `powerpc64le-unknown-freebsd` |   |   | PPC64LE FreeBSD
281 `powerpc-unknown-freebsd` |   |   | PowerPC FreeBSD
282 `powerpc64-unknown-linux-musl` | ? |  |
283 `powerpc64-wrs-vxworks` | ? |  |
284 `powerpc64le-unknown-linux-musl` | ? |  |
285 [`powerpc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/powerpc64
286 `riscv32gc-unknown-linux-gnu` |   |   | RISC-V Linux (kernel 5.4, glibc 2.33)
287 `riscv32gc-unknown-linux-musl` |   |   | RISC-V Linux (kernel 5.4, musl + RISCV32 support patches)
288 `riscv32im-unknown-none-elf` | * |  | Bare RISC-V (RV32IM ISA)
289 [`riscv32imac-unknown-xous-elf`](platform-support/riscv32imac-unknown-xous-elf.md) | ? |  | RISC-V Xous (RV32IMAC ISA)
290 `riscv32imc-esp-espidf` | ✓ |  | RISC-V ESP-IDF
291 `riscv64gc-unknown-freebsd` |   |   | RISC-V FreeBSD
292 `riscv64gc-unknown-linux-musl` |   |   | RISC-V Linux (kernel 4.20, musl 1.2.0)
293 [`riscv64gc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/riscv64
294 `s390x-unknown-linux-musl` |  |  | S390x Linux (kernel 3.2, MUSL)
295 `sparc-unknown-linux-gnu` | ✓ |  | 32-bit SPARC Linux
296 `sparc64-unknown-netbsd` | ✓ | ✓ | NetBSD/sparc64
297 [`sparc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/sparc64
298 `thumbv4t-none-eabi` | * |  | ARMv4T T32
299 [`thumbv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | ARMv5TE T32
300 `thumbv7a-pc-windows-msvc` | ? |  |
301 `thumbv7a-uwp-windows-msvc` | ✓ |  |
302 `thumbv7neon-unknown-linux-musleabihf` | ? |  | Thumb2-mode ARMv7a Linux with NEON, MUSL
303 [`wasm64-unknown-unknown`](platform-support/wasm64-unknown-unknown.md) | ? |  | WebAssembly
304 `x86_64-apple-ios-macabi` | ✓ |  | Apple Catalyst on x86_64
305 `x86_64-apple-tvos` | * | | x86 64-bit tvOS
306 [`x86_64-apple-watchos-sim`](platform-support/apple-watchos.md) | ✓ | | x86 64-bit Apple WatchOS simulator
307 [`x86_64-pc-nto-qnx7.1.0`](platform-support/nto-qnx.md) | ? |  | x86 64-bit QNX Neutrino 7.1 RTOS |
308 [`x86_64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ |
309 `x86_64-pc-windows-msvc` | * |  | 64-bit Windows XP support
310 `x86_64-sun-solaris` | ? |  | Deprecated target for 64-bit Solaris 10/11, illumos
311 `x86_64-unknown-dragonfly` | ✓ | ✓ | 64-bit DragonFlyBSD
312 `x86_64-unknown-haiku` | ✓ | ✓ | 64-bit Haiku
313 `x86_64-unknown-hermit` | ✓ |  | HermitCore
314 `x86_64-unknown-l4re-uclibc` | ? |  |
315 [`x86_64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 64-bit OpenBSD
316 `x86_64-uwp-windows-gnu` | ✓ |  |
317 `x86_64-uwp-windows-msvc` | ✓ |  |
318 `x86_64-wrs-vxworks` | ? |  |
319
320 [runs on NVIDIA GPUs]: https://github.com/japaric-archived/nvptx#targets