]> git.lizzy.rs Git - rust.git/blob - src/doc/rustc/src/platform-support.md
Auto merge of #107843 - bjorn3:sync_cg_clif-2023-02-09, r=bjorn3
[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` | ✓ | Alias for `aarch64-unknown-fuchsia`
128 `aarch64-unknown-fuchsia` | ✓ | ARM64 Fuchsia
129 [`aarch64-linux-android`](platform-support/android.md) | ✓ | ARM64 Android
130 `aarch64-unknown-none-softfloat` | * | Bare ARM64, softfloat
131 `aarch64-unknown-none` | * | Bare ARM64, hardfloat
132 [`aarch64-unknown-uefi`](platform-support/unknown-uefi.md) | * | ARM64 UEFI
133 [`arm-linux-androideabi`](platform-support/android.md) | ✓ | ARMv7 Android
134 `arm-unknown-linux-musleabi` | ✓ | ARMv6 Linux with MUSL
135 `arm-unknown-linux-musleabihf` | ✓ | ARMv6 Linux with MUSL, hardfloat
136 `armebv7r-none-eabi` | * | Bare ARMv7-R, Big Endian
137 `armebv7r-none-eabihf` | * | Bare ARMv7-R, Big Endian, hardfloat
138 `armv5te-unknown-linux-gnueabi` | ✓ | ARMv5TE Linux (kernel 4.4, glibc 2.23)
139 `armv5te-unknown-linux-musleabi` | ✓ | ARMv5TE Linux with MUSL
140 [`armv7-linux-androideabi`](platform-support/android.md) | ✓ | ARMv7a Android
141 `armv7-unknown-linux-gnueabi` | ✓ |ARMv7 Linux (kernel 4.15, glibc 2.27)
142 `armv7-unknown-linux-musleabi` | ✓ |ARMv7 Linux with MUSL
143 `armv7-unknown-linux-musleabihf` | ✓ | ARMv7 Linux with MUSL, hardfloat
144 `armv7a-none-eabi` | * | Bare ARMv7-A
145 `armv7r-none-eabi` | * | Bare ARMv7-R
146 `armv7r-none-eabihf` | * | Bare ARMv7-R, hardfloat
147 `asmjs-unknown-emscripten` | ✓ | asm.js via Emscripten
148 `i586-pc-windows-msvc` | * | 32-bit Windows w/o SSE
149 `i586-unknown-linux-gnu` | ✓ | 32-bit Linux w/o SSE (kernel 3.2, glibc 2.17)
150 `i586-unknown-linux-musl` | ✓ | 32-bit Linux w/o SSE, MUSL
151 [`i686-linux-android`](platform-support/android.md) | ✓ | 32-bit x86 Android
152 `i686-unknown-freebsd` | ✓ | 32-bit FreeBSD
153 `i686-unknown-linux-musl` | ✓ | 32-bit Linux with MUSL
154 [`i686-unknown-uefi`](platform-support/unknown-uefi.md) | * | 32-bit UEFI
155 `mips-unknown-linux-musl` | ✓ | MIPS Linux with MUSL
156 `mips64-unknown-linux-muslabi64` | ✓ | MIPS64 Linux, n64 ABI, MUSL
157 `mips64el-unknown-linux-muslabi64` | ✓ | MIPS64 (LE) Linux, n64 ABI, MUSL
158 `mipsel-unknown-linux-musl` | ✓ | MIPS (LE) Linux with MUSL
159 `nvptx64-nvidia-cuda` | * | --emit=asm generates PTX code that [runs on NVIDIA GPUs]
160 `riscv32i-unknown-none-elf` | * | Bare RISC-V (RV32I ISA)
161 `riscv32imac-unknown-none-elf` | * | Bare RISC-V (RV32IMAC ISA)
162 `riscv32imc-unknown-none-elf` | * | Bare RISC-V (RV32IMC ISA)
163 `riscv64gc-unknown-none-elf` | * | Bare RISC-V (RV64IMAFDC ISA)
164 `riscv64imac-unknown-none-elf` | * | Bare RISC-V (RV64IMAC ISA)
165 `sparc64-unknown-linux-gnu` | ✓ | SPARC Linux (kernel 4.4, glibc 2.23)
166 `sparcv9-sun-solaris` | ✓ | SPARC Solaris 10/11, illumos
167 `thumbv6m-none-eabi` | * | Bare Cortex-M0, M0+, M1
168 `thumbv7em-none-eabi` | * | Bare Cortex-M4, M7
169 `thumbv7em-none-eabihf` | * | Bare Cortex-M4F, M7F, FPU, hardfloat
170 `thumbv7m-none-eabi` | * | Bare Cortex-M3
171 [`thumbv7neon-linux-androideabi`](platform-support/android.md) | ✓ | Thumb2-mode ARMv7a Android with NEON
172 `thumbv7neon-unknown-linux-gnueabihf` | ✓ | Thumb2-mode ARMv7a Linux with NEON (kernel 4.4, glibc 2.23)
173 `thumbv8m.base-none-eabi` | * | ARMv8-M Baseline
174 `thumbv8m.main-none-eabi` | * | ARMv8-M Mainline
175 `thumbv8m.main-none-eabihf` | * | ARMv8-M Mainline, hardfloat
176 `wasm32-unknown-emscripten` | ✓ | WebAssembly via Emscripten
177 `wasm32-unknown-unknown` | ✓ | WebAssembly
178 `wasm32-wasi` | ✓ | WebAssembly with WASI
179 `x86_64-apple-ios` | ✓ | 64-bit x86 iOS
180 [`x86_64-fortanix-unknown-sgx`](platform-support/x86_64-fortanix-unknown-sgx.md) | ✓ | [Fortanix ABI] for 64-bit Intel SGX
181 `x86_64-fuchsia` | ✓ | Alias for `x86_64-unknown-fuchsia`
182 `x86_64-unknown-fuchsia` | ✓ | 64-bit Fuchsia
183 [`x86_64-linux-android`](platform-support/android.md) | ✓ | 64-bit x86 Android
184 `x86_64-pc-solaris` | ✓ | 64-bit Solaris 10/11, illumos
185 `x86_64-unknown-linux-gnux32` | ✓ | 64-bit Linux (x32 ABI) (kernel 4.15, glibc 2.27)
186 [`x86_64-unknown-none`](platform-support/x86_64-unknown-none.md) | * | Freestanding/bare-metal x86_64, softfloat
187 `x86_64-unknown-redox` | ✓ | Redox OS
188 [`x86_64-unknown-uefi`](platform-support/unknown-uefi.md) | * | 64-bit UEFI
189
190 [Fortanix ABI]: https://edp.fortanix.com/
191
192 ## Tier 3
193
194 Tier 3 targets are those which the Rust codebase has support for, but which the
195 Rust project does not build or test automatically, so they may or may not work.
196 Official builds are not available. For the full requirements, see [Tier 3
197 target policy](target-tier-policy.md#tier-3-target-policy) in the Target Tier
198 Policy.
199
200 The `std` column in the table below has the following meanings:
201
202 * ✓ indicates the full standard library is available.
203 * \* indicates the target only supports [`no_std`] development.
204 * ? indicates the standard library support is unknown or a work-in-progress.
205
206 [`no_std`]: https://rust-embedded.github.io/book/intro/no-std.html
207
208 The `host` column indicates whether the codebase includes support for building
209 host tools.
210
211 target | std | host | notes
212 -------|:---:|:----:|-------
213 `aarch64-apple-ios-macabi` | ? |  | Apple Catalyst on ARM64
214 `aarch64-apple-tvos` | * |  | ARM64 tvOS
215 [`aarch64-apple-watchos-sim`](platform-support/apple-watchos.md) | ✓ |  | ARM64 Apple WatchOS Simulator
216 [`aarch64-kmc-solid_asp3`](platform-support/kmc-solid.md) | ✓ |  | ARM64 SOLID with TOPPERS/ASP3
217 [`aarch64-nintendo-switch-freestanding`](platform-support/aarch64-nintendo-switch-freestanding.md) | * |  | ARM64 Nintendo Switch, Horizon
218 [`aarch64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ |
219 [`aarch64-unknown-nto-qnx710`](platform-support/nto-qnx.md) | ? |  | ARM64 QNX Neutrino 7.1 RTOS |
220 `aarch64-unknown-freebsd` | ✓ | ✓ | ARM64 FreeBSD
221 `aarch64-unknown-hermit` | ✓ |  | ARM64 HermitCore
222 `aarch64-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (ILP32 ABI)
223 `aarch64-unknown-netbsd` | ✓ | ✓ |
224 [`aarch64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | ARM64 OpenBSD
225 `aarch64-unknown-redox` | ? |  | ARM64 Redox OS
226 `aarch64-uwp-windows-msvc` | ? |  |
227 `aarch64-wrs-vxworks` | ? |  |
228 `aarch64_be-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (big-endian, ILP32 ABI)
229 `aarch64_be-unknown-linux-gnu` | ✓ | ✓ | ARM64 Linux (big-endian)
230 [`arm64_32-apple-watchos`](platform-support/apple-watchos.md) | ✓ | | ARM Apple WatchOS 64-bit with 32-bit pointers
231 [`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).
232 `armv4t-none-eabi` | * |  | ARMv4T A32
233 `armv4t-unknown-linux-gnueabi` | ? |  |
234 [`armv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | ARMv5TE A32
235 `armv5te-unknown-linux-uclibceabi` | ? |  | ARMv5TE Linux with uClibc
236 `armv6-unknown-freebsd` | ✓ | ✓ | ARMv6 FreeBSD
237 `armv6-unknown-netbsd-eabihf` | ? |  |
238 [`armv6k-nintendo-3ds`](platform-support/armv6k-nintendo-3ds.md) | ? |  | ARMv6K Nintendo 3DS, Horizon (Requires devkitARM toolchain)
239 `armv7-apple-ios` | ✓ |  | ARMv7 iOS, Cortex-a8
240 [`armv7-sony-vita-newlibeabihf`](platform-support/armv7-sony-vita-newlibeabihf.md) | ? |  | ARM Cortex-A9 Sony PlayStation Vita (requires VITASDK toolchain)
241 [`armv7-unknown-linux-uclibceabi`](platform-support/armv7-unknown-linux-uclibceabi.md) | ✓ | ✓ | ARMv7 Linux with uClibc, softfloat
242 [`armv7-unknown-linux-uclibceabihf`](platform-support/armv7-unknown-linux-uclibceabihf.md) | ✓ | ? | ARMv7 Linux with uClibc, hardfloat
243 `armv7-unknown-freebsd` | ✓ | ✓ | ARMv7 FreeBSD
244 `armv7-unknown-netbsd-eabihf` | ✓ | ✓ |
245 `armv7-wrs-vxworks-eabihf` | ? |  |
246 [`armv7a-kmc-solid_asp3-eabi`](platform-support/kmc-solid.md) | ✓ |  | ARM SOLID with TOPPERS/ASP3
247 [`armv7a-kmc-solid_asp3-eabihf`](platform-support/kmc-solid.md) | ✓ |  | ARM SOLID with TOPPERS/ASP3, hardfloat
248 `armv7a-none-eabihf` | * | | ARM Cortex-A, hardfloat
249 [`armv7k-apple-watchos`](platform-support/apple-watchos.md) | ✓ | | ARM Apple WatchOS
250 `armv7s-apple-ios` | ✓ |  |
251 `avr-unknown-gnu-atmega328` | * |  | AVR. Requires `-Z build-std=core`
252 `bpfeb-unknown-none` | * |  | BPF (big endian)
253 `bpfel-unknown-none` | * |  | BPF (little endian)
254 `hexagon-unknown-linux-musl` | ? |  |
255 `i386-apple-ios` | ✓ |  | 32-bit x86 iOS
256 `i686-apple-darwin` | ✓ | ✓ | 32-bit macOS (10.7+, Lion+)
257 `i686-pc-windows-msvc` | * |  | 32-bit Windows XP support
258 `i686-unknown-haiku` | ✓ | ✓ | 32-bit Haiku
259 `i686-unknown-netbsd` | ✓ | ✓ | NetBSD/i386 with SSE2
260 [`i686-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 32-bit OpenBSD
261 `i686-uwp-windows-gnu` | ? |  |
262 `i686-uwp-windows-msvc` | ? |  |
263 `i686-wrs-vxworks` | ? |  |
264 [`m68k-unknown-linux-gnu`](platform-support/m68k-unknown-linux-gnu.md) | ? |  | Motorola 680x0 Linux
265 `mips-unknown-linux-uclibc` | ✓ |  | MIPS Linux with uClibc
266 [`mips64-openwrt-linux-musl`](platform-support/mips64-openwrt-linux-musl.md) | ? |  | MIPS64 for OpenWrt Linux MUSL
267 `mipsel-sony-psp` | * |  | MIPS (LE) Sony PlayStation Portable (PSP)
268 [`mipsel-sony-psx`](platform-support/mipsel-sony-psx.md) | * |  | MIPS (LE) Sony PlayStation 1 (PSX)
269 `mipsel-unknown-linux-uclibc` | ✓ |  | MIPS (LE) Linux with uClibc
270 `mipsel-unknown-none` | * |  | Bare MIPS (LE) softfloat
271 `mipsisa32r6-unknown-linux-gnu` | ? |  |
272 `mipsisa32r6el-unknown-linux-gnu` | ? |  |
273 `mipsisa64r6-unknown-linux-gnuabi64` | ? |  |
274 `mipsisa64r6el-unknown-linux-gnuabi64` | ? |  |
275 `msp430-none-elf` | * |  | 16-bit MSP430 microcontrollers
276 `powerpc-unknown-linux-gnuspe` | ✓ |  | PowerPC SPE Linux
277 `powerpc-unknown-linux-musl` | ? |  |
278 `powerpc-unknown-netbsd` | ✓ | ✓ |
279 `powerpc-unknown-openbsd` | ? |  |
280 `powerpc-wrs-vxworks-spe` | ? |  |
281 `powerpc-wrs-vxworks` | ? |  |
282 `powerpc64-unknown-freebsd` | ✓ | ✓ | PPC64 FreeBSD (ELFv1 and ELFv2)
283 `powerpc64le-unknown-freebsd` |   |   | PPC64LE FreeBSD
284 `powerpc-unknown-freebsd` |   |   | PowerPC FreeBSD
285 `powerpc64-unknown-linux-musl` | ? |  |
286 `powerpc64-wrs-vxworks` | ? |  |
287 `powerpc64le-unknown-linux-musl` | ? |  |
288 [`powerpc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/powerpc64
289 `powerpc64-ibm-aix` | ? |  | 64-bit AIX (7.2 and newer)
290 `riscv32gc-unknown-linux-gnu` |   |   | RISC-V Linux (kernel 5.4, glibc 2.33)
291 `riscv32gc-unknown-linux-musl` |   |   | RISC-V Linux (kernel 5.4, musl + RISCV32 support patches)
292 `riscv32im-unknown-none-elf` | * |  | Bare RISC-V (RV32IM ISA)
293 [`riscv32imac-unknown-xous-elf`](platform-support/riscv32imac-unknown-xous-elf.md) | ? |  | RISC-V Xous (RV32IMAC ISA)
294 `riscv32imc-esp-espidf` | ✓ |  | RISC-V ESP-IDF
295 `riscv64gc-unknown-freebsd` |   |   | RISC-V FreeBSD
296 `riscv64gc-unknown-linux-musl` |   |   | RISC-V Linux (kernel 4.20, musl 1.2.0)
297 [`riscv64gc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/riscv64
298 `s390x-unknown-linux-musl` |  |  | S390x Linux (kernel 3.2, MUSL)
299 `sparc-unknown-linux-gnu` | ✓ |  | 32-bit SPARC Linux
300 `sparc64-unknown-netbsd` | ✓ | ✓ | NetBSD/sparc64
301 [`sparc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/sparc64
302 `thumbv4t-none-eabi` | * |  | ARMv4T T32
303 [`thumbv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | ARMv5TE T32
304 `thumbv7a-pc-windows-msvc` | ? |  |
305 `thumbv7a-uwp-windows-msvc` | ✓ |  |
306 `thumbv7neon-unknown-linux-musleabihf` | ? |  | Thumb2-mode ARMv7a Linux with NEON, MUSL
307 [`wasm64-unknown-unknown`](platform-support/wasm64-unknown-unknown.md) | ? |  | WebAssembly
308 `x86_64-apple-ios-macabi` | ✓ |  | Apple Catalyst on x86_64
309 `x86_64-apple-tvos` | * | | x86 64-bit tvOS
310 [`x86_64-apple-watchos-sim`](platform-support/apple-watchos.md) | ✓ | | x86 64-bit Apple WatchOS simulator
311 [`x86_64-pc-nto-qnx710`](platform-support/nto-qnx.md) | ? |  | x86 64-bit QNX Neutrino 7.1 RTOS |
312 [`x86_64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ |
313 `x86_64-pc-windows-msvc` | * |  | 64-bit Windows XP support
314 `x86_64-sun-solaris` | ? |  | Deprecated target for 64-bit Solaris 10/11, illumos
315 `x86_64-unknown-dragonfly` | ✓ | ✓ | 64-bit DragonFlyBSD
316 `x86_64-unknown-haiku` | ✓ | ✓ | 64-bit Haiku
317 `x86_64-unknown-hermit` | ✓ |  | HermitCore
318 `x86_64-unknown-l4re-uclibc` | ? |  |
319 [`x86_64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 64-bit OpenBSD
320 `x86_64-uwp-windows-gnu` | ✓ |  |
321 `x86_64-uwp-windows-msvc` | ✓ |  |
322 `x86_64-wrs-vxworks` | ? |  |
323
324 [runs on NVIDIA GPUs]: https://github.com/japaric-archived/nvptx#targets