From 5e548e1b0d32b718c3b17b1aa95250b0a5a82173 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 25 Aug 2023 17:07:54 +0100 Subject: [PATCH 001/145] doc: target tier policy with compiler-team#655 Update target tier policy to require that targets be able to produce object code with a supported backend. Signed-off-by: David Wood --- src/doc/rustc/src/target-tier-policy.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/doc/rustc/src/target-tier-policy.md b/src/doc/rustc/src/target-tier-policy.md index 95932db14e1f6..65d4a13388de8 100644 --- a/src/doc/rustc/src/target-tier-policy.md +++ b/src/doc/rustc/src/target-tier-policy.md @@ -246,6 +246,8 @@ approved by the appropriate team for that shared code before acceptance. introducing unconditional uses of features that another variation of the target may not have; use conditional compilation or runtime detection, as appropriate, to let each target run code supported by that target. +- Tier 3 targets must be able to produce object code using at least one of + rustc's supported backends. If a tier 3 target stops meeting these requirements, or the target maintainers no longer have interest or time, or the target shows no signs of activity and From cc2897113daa73820bbdc14c22a1740209fe2274 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 10:40:00 +0100 Subject: [PATCH 002/145] target compliance: x86_64h-apple-darwin Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- ...apple-darwin.md => x86_64h_apple_darwin.md} | 2 +- tests/assembly/targets/x86_64h_apple_darwin.rs | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) rename src/doc/rustc/src/platform-support/{x86_64h-apple-darwin.md => x86_64h_apple_darwin.md} (96%) create mode 100644 tests/assembly/targets/x86_64h_apple_darwin.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 70b35526ee58a..96fc070464b65 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -343,6 +343,6 @@ target | std | host | notes `x86_64-uwp-windows-gnu` | ✓ | | `x86_64-uwp-windows-msvc` | ✓ | | `x86_64-wrs-vxworks` | ? | | -[`x86_64h-apple-darwin`](platform-support/x86_64h-apple-darwin.md) | ✓ | ✓ | macOS with late-gen Intel (at least Haswell) +[`x86_64h-apple-darwin`](platform-support/x86_64h_apple_darwin.md) | ✓ | ✓ | macOS with late-gen Intel (at least Haswell) [runs on NVIDIA GPUs]: https://github.com/japaric-archived/nvptx#targets diff --git a/src/doc/rustc/src/platform-support/x86_64h-apple-darwin.md b/src/doc/rustc/src/platform-support/x86_64h_apple_darwin.md similarity index 96% rename from src/doc/rustc/src/platform-support/x86_64h-apple-darwin.md rename to src/doc/rustc/src/platform-support/x86_64h_apple_darwin.md index 0fe9d4edaca10..b17cfe4612bc9 100644 --- a/src/doc/rustc/src/platform-support/x86_64h-apple-darwin.md +++ b/src/doc/rustc/src/platform-support/x86_64h_apple_darwin.md @@ -8,7 +8,7 @@ Target for macOS on late-generation `x86_64` Apple chips, usable as the ## Target maintainers -- Thom Chiovoloni `thom@shift.click` +- Thom Chiovoloni, `thom@shift.click`, ## Requirements diff --git a/tests/assembly/targets/x86_64h_apple_darwin.rs b/tests/assembly/targets/x86_64h_apple_darwin.rs new file mode 100644 index 0000000000000..fbd3ea182303d --- /dev/null +++ b/tests/assembly/targets/x86_64h_apple_darwin.rs @@ -0,0 +1,18 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64h-apple-darwin +// needs-llvm-components: x86 +// only-macos + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 16652f07c72879361a78da32ced472f8929cb9b1 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 10:55:35 +0100 Subject: [PATCH 003/145] target compliance: *-wrs-vxworks Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 14 +++---- src/doc/rustc/src/platform-support/vxworks.md | 40 +++++++++++++++++++ tests/assembly/targets/aarch64_wrs_vxworks.rs | 17 ++++++++ .../targets/armv7_wrs_vxworks_eabihf.rs | 17 ++++++++ tests/assembly/targets/i686_wrs_vxworks.rs | 17 ++++++++ .../assembly/targets/powerpc64_wrs_vxworks.rs | 17 ++++++++ tests/assembly/targets/powerpc_wrs_vxworks.rs | 17 ++++++++ .../targets/powerpc_wrs_vxworks_spe.rs | 17 ++++++++ tests/assembly/targets/x86_64_wrs_vxworks.rs | 17 ++++++++ 9 files changed, 166 insertions(+), 7 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/vxworks.md create mode 100644 tests/assembly/targets/aarch64_wrs_vxworks.rs create mode 100644 tests/assembly/targets/armv7_wrs_vxworks_eabihf.rs create mode 100644 tests/assembly/targets/i686_wrs_vxworks.rs create mode 100644 tests/assembly/targets/powerpc64_wrs_vxworks.rs create mode 100644 tests/assembly/targets/powerpc_wrs_vxworks.rs create mode 100644 tests/assembly/targets/powerpc_wrs_vxworks_spe.rs create mode 100644 tests/assembly/targets/x86_64_wrs_vxworks.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 96fc070464b65..071724ce42108 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -232,7 +232,7 @@ target | std | host | notes [`aarch64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | ARM64 OpenBSD `aarch64-unknown-redox` | ? | | ARM64 Redox OS `aarch64-uwp-windows-msvc` | ? | | -`aarch64-wrs-vxworks` | ? | | +[`aarch64-wrs-vxworks`](platform-support/vxworks.md) | ? | | ARM64 VxWorks `aarch64_be-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (big-endian, ILP32 ABI) `aarch64_be-unknown-linux-gnu` | ✓ | ✓ | ARM64 Linux (big-endian) [`aarch64_be-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | ARM64 NetBSD (big-endian) @@ -252,7 +252,7 @@ target | std | host | notes [`armv7-unknown-linux-uclibceabihf`](platform-support/armv7-unknown-linux-uclibceabihf.md) | ✓ | ? | ARMv7-A Linux with uClibc, hardfloat `armv7-unknown-freebsd` | ✓ | ✓ | ARMv7-A FreeBSD [`armv7-unknown-netbsd-eabihf`](platform-support/netbsd.md) | ✓ | ✓ | ARMv7-A NetBSD w/hard-float -`armv7-wrs-vxworks-eabihf` | ? | | ARMv7-A for VxWorks +[`armv7-wrs-vxworks-eabihf`](platform-support/vxworks.md) | ? | | ARMv7-A VxWorks [`armv7a-kmc-solid_asp3-eabi`](platform-support/kmc-solid.md) | ✓ | | ARM SOLID with TOPPERS/ASP3 [`armv7a-kmc-solid_asp3-eabihf`](platform-support/kmc-solid.md) | ✓ | | ARM SOLID with TOPPERS/ASP3, hardfloat `armv7a-none-eabihf` | * | | Bare ARMv7-A, hardfloat @@ -273,7 +273,7 @@ target | std | host | notes [`i686-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 32-bit OpenBSD `i686-uwp-windows-gnu` | ? | | `i686-uwp-windows-msvc` | ? | | -`i686-wrs-vxworks` | ? | | +[`i686-wrs-vxworks`](platform-support/vxworks.md) | ? | | i686 VxWorks [`loongarch64-unknown-none`](platform-support/loongarch-none.md) | * | | LoongArch64 Bare-metal (LP64D ABI) [`loongarch64-unknown-none-softfloat`](platform-support/loongarch-none.md) | * | | LoongArch64 Bare-metal (LP64S ABI) [`m68k-unknown-linux-gnu`](platform-support/m68k-unknown-linux-gnu.md) | ? | | Motorola 680x0 Linux @@ -292,13 +292,13 @@ target | std | host | notes `powerpc-unknown-linux-musl` | ? | | [`powerpc-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD 32-bit powerpc systems `powerpc-unknown-openbsd` | ? | | -`powerpc-wrs-vxworks-spe` | ? | | -`powerpc-wrs-vxworks` | ? | | +[`powerpc-wrs-vxworks-spe`](platform-support/vxworks.md) | ? | | PowerPC SPE VxWorks +[`powerpc-wrs-vxworks`](platform-support/vxworks.md) | ? | | PowerPC VxWorks `powerpc64-unknown-freebsd` | ✓ | ✓ | PPC64 FreeBSD (ELFv1 and ELFv2) `powerpc64le-unknown-freebsd` | | | PPC64LE FreeBSD `powerpc-unknown-freebsd` | | | PowerPC FreeBSD `powerpc64-unknown-linux-musl` | ? | | -`powerpc64-wrs-vxworks` | ? | | +[`powerpc64-wrs-vxworks`](platform-support/vxworks.md) | ? | | PPC64 VxWorks `powerpc64le-unknown-linux-musl` | ? | | [`powerpc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/powerpc64 `powerpc64-ibm-aix` | ? | | 64-bit AIX (7.2 and newer) @@ -342,7 +342,7 @@ target | std | host | notes [`x86_64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 64-bit OpenBSD `x86_64-uwp-windows-gnu` | ✓ | | `x86_64-uwp-windows-msvc` | ✓ | | -`x86_64-wrs-vxworks` | ? | | +[`x86_64-wrs-vxworks`](platform-support/vxworks.md) | ? | | x86_64 VxWorks [`x86_64h-apple-darwin`](platform-support/x86_64h_apple_darwin.md) | ✓ | ✓ | macOS with late-gen Intel (at least Haswell) [runs on NVIDIA GPUs]: https://github.com/japaric-archived/nvptx#targets diff --git a/src/doc/rustc/src/platform-support/vxworks.md b/src/doc/rustc/src/platform-support/vxworks.md new file mode 100644 index 0000000000000..1f83b90e02a72 --- /dev/null +++ b/src/doc/rustc/src/platform-support/vxworks.md @@ -0,0 +1,40 @@ +# `*-wrs-vxworks` + +**Tier: 3** + +VxWorks is a deterministic, priority-based preemptive RTOS with low latency +and minimal jitter. These targets allows Rust code to be added to RTP +(real-time programs) which are user-space programs on vxWorks by mapping +to a BSP (board support package). + +- `aarch64-wrs-vxworks` +- `armv7-wrs-vxworks` +- `i686-wrs-vxworks` +- `powerpc-wrs-vxworks-spe` +- `powerpc-wrs-vxworks` +- `powerpc64-wrs-vxworks` +- `x86_64-wrs-vxworks` + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/aarch64_wrs_vxworks.rs b/tests/assembly/targets/aarch64_wrs_vxworks.rs new file mode 100644 index 0000000000000..0d0235504acad --- /dev/null +++ b/tests/assembly/targets/aarch64_wrs_vxworks.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-wrs-vxworks +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/armv7_wrs_vxworks_eabihf.rs b/tests/assembly/targets/armv7_wrs_vxworks_eabihf.rs new file mode 100644 index 0000000000000..c72260fa383f6 --- /dev/null +++ b/tests/assembly/targets/armv7_wrs_vxworks_eabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7-wrs-vxworks-eabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/i686_wrs_vxworks.rs b/tests/assembly/targets/i686_wrs_vxworks.rs new file mode 100644 index 0000000000000..772972a5253c4 --- /dev/null +++ b/tests/assembly/targets/i686_wrs_vxworks.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i686-wrs-vxworks +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/powerpc64_wrs_vxworks.rs b/tests/assembly/targets/powerpc64_wrs_vxworks.rs new file mode 100644 index 0000000000000..d4b25aa513f7f --- /dev/null +++ b/tests/assembly/targets/powerpc64_wrs_vxworks.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc64-wrs-vxworks +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/powerpc_wrs_vxworks.rs b/tests/assembly/targets/powerpc_wrs_vxworks.rs new file mode 100644 index 0000000000000..ae3883b5ac161 --- /dev/null +++ b/tests/assembly/targets/powerpc_wrs_vxworks.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc-wrs-vxworks +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/powerpc_wrs_vxworks_spe.rs b/tests/assembly/targets/powerpc_wrs_vxworks_spe.rs new file mode 100644 index 0000000000000..f5b67ae63c53b --- /dev/null +++ b/tests/assembly/targets/powerpc_wrs_vxworks_spe.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc-wrs-vxworks-spe +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/x86_64_wrs_vxworks.rs b/tests/assembly/targets/x86_64_wrs_vxworks.rs new file mode 100644 index 0000000000000..344dc6943339c --- /dev/null +++ b/tests/assembly/targets/x86_64_wrs_vxworks.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-wrs-vxworks +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From ec2207a6fb27744d45f8f4ea94d50ea53c1aea97 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 10:59:19 +0100 Subject: [PATCH 004/145] target compliance: *-unknown-openbsd Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- src/doc/rustc/src/platform-support/openbsd.md | 1 + .../assembly/targets/aarch64_unknown_openbsd.rs | 17 +++++++++++++++++ tests/assembly/targets/i686_unknown_openbsd.rs | 17 +++++++++++++++++ .../targets/powerpc64_unknown_openbsd.rs | 17 +++++++++++++++++ .../assembly/targets/powerpc_unknown_openbsd.rs | 17 +++++++++++++++++ .../targets/riscv64gc_unknown_openbsd.rs | 17 +++++++++++++++++ .../assembly/targets/sparc64_unknown_openbsd.rs | 17 +++++++++++++++++ .../assembly/targets/x86_64_unknown_openbsd.rs | 17 +++++++++++++++++ 9 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 tests/assembly/targets/aarch64_unknown_openbsd.rs create mode 100644 tests/assembly/targets/i686_unknown_openbsd.rs create mode 100644 tests/assembly/targets/powerpc64_unknown_openbsd.rs create mode 100644 tests/assembly/targets/powerpc_unknown_openbsd.rs create mode 100644 tests/assembly/targets/riscv64gc_unknown_openbsd.rs create mode 100644 tests/assembly/targets/sparc64_unknown_openbsd.rs create mode 100644 tests/assembly/targets/x86_64_unknown_openbsd.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 071724ce42108..a56087f2f7df7 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -291,7 +291,7 @@ target | std | host | notes `powerpc-unknown-linux-gnuspe` | ✓ | | PowerPC SPE Linux `powerpc-unknown-linux-musl` | ? | | [`powerpc-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD 32-bit powerpc systems -`powerpc-unknown-openbsd` | ? | | +[`powerpc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/macppc [`powerpc-wrs-vxworks-spe`](platform-support/vxworks.md) | ? | | PowerPC SPE VxWorks [`powerpc-wrs-vxworks`](platform-support/vxworks.md) | ? | | PowerPC VxWorks `powerpc64-unknown-freebsd` | ✓ | ✓ | PPC64 FreeBSD (ELFv1 and ELFv2) diff --git a/src/doc/rustc/src/platform-support/openbsd.md b/src/doc/rustc/src/platform-support/openbsd.md index 4ce80157dbf9c..f83657a40c97d 100644 --- a/src/doc/rustc/src/platform-support/openbsd.md +++ b/src/doc/rustc/src/platform-support/openbsd.md @@ -12,6 +12,7 @@ The target names follow this format: `$ARCH-unknown-openbsd`, where `$ARCH` spec |--------------------------------|-------------|------------------| | `aarch64-unknown-openbsd` | libc++ | [64-bit ARM systems](https://www.openbsd.org/arm64.html) | | `i686-unknown-openbsd` | libc++ | [Standard PC and clones based on the Intel i386 architecture and compatible processors](https://www.openbsd.org/i386.html) | +| `powerpc-unknown-openbsd` | libc++ | [PowerPC-based Macintosh systems from the "New World" Family](https://www.openbsd.org/macppc.html) | | `powerpc64-unknown-openbsd` | libc++ | [IBM POWER-based PowerNV systems](https://www.openbsd.org/powerpc64.html) | | `riscv64gc-unknown-openbsd` | libc++ | [64-bit RISC-V systems](https://www.openbsd.org/riscv64.html) | | `sparc64-unknown-openbsd` | estdc++ | [Sun UltraSPARC and Fujitsu SPARC64 systems](https://www.openbsd.org/sparc64.html) | diff --git a/tests/assembly/targets/aarch64_unknown_openbsd.rs b/tests/assembly/targets/aarch64_unknown_openbsd.rs new file mode 100644 index 0000000000000..110d2f4d592dc --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_openbsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-openbsd +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/i686_unknown_openbsd.rs b/tests/assembly/targets/i686_unknown_openbsd.rs new file mode 100644 index 0000000000000..9bd9f8958a738 --- /dev/null +++ b/tests/assembly/targets/i686_unknown_openbsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i686-unknown-openbsd +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/powerpc64_unknown_openbsd.rs b/tests/assembly/targets/powerpc64_unknown_openbsd.rs new file mode 100644 index 0000000000000..bee46cb031b14 --- /dev/null +++ b/tests/assembly/targets/powerpc64_unknown_openbsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc64-unknown-openbsd +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/powerpc_unknown_openbsd.rs b/tests/assembly/targets/powerpc_unknown_openbsd.rs new file mode 100644 index 0000000000000..5a2e9f7436383 --- /dev/null +++ b/tests/assembly/targets/powerpc_unknown_openbsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc-unknown-openbsd +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/riscv64gc_unknown_openbsd.rs b/tests/assembly/targets/riscv64gc_unknown_openbsd.rs new file mode 100644 index 0000000000000..a8d613ba0d2a8 --- /dev/null +++ b/tests/assembly/targets/riscv64gc_unknown_openbsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv64gc-unknown-openbsd +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/sparc64_unknown_openbsd.rs b/tests/assembly/targets/sparc64_unknown_openbsd.rs new file mode 100644 index 0000000000000..72e792e89c867 --- /dev/null +++ b/tests/assembly/targets/sparc64_unknown_openbsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target sparc64-unknown-openbsd +// needs-llvm-components: sparc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/x86_64_unknown_openbsd.rs b/tests/assembly/targets/x86_64_unknown_openbsd.rs new file mode 100644 index 0000000000000..cfe5c6a2aa462 --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_openbsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-openbsd +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 9ffe261040d13f9cbd1b2347c82699a589085f73 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 11:01:33 +0100 Subject: [PATCH 005/145] target compliance: *-unknown-linux-ohos Signed-off-by: David Wood --- .../targets/aarch64_unknown_linux_ohos.rs | 17 +++++++++++++++++ .../targets/armv7_unknown_linux_ohos.rs | 17 +++++++++++++++++ .../targets/x86_64_unknown_linux_ohos.rs | 17 +++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 tests/assembly/targets/aarch64_unknown_linux_ohos.rs create mode 100644 tests/assembly/targets/armv7_unknown_linux_ohos.rs create mode 100644 tests/assembly/targets/x86_64_unknown_linux_ohos.rs diff --git a/tests/assembly/targets/aarch64_unknown_linux_ohos.rs b/tests/assembly/targets/aarch64_unknown_linux_ohos.rs new file mode 100644 index 0000000000000..c0cf41bd37fa1 --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_linux_ohos.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-linux-ohos +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/armv7_unknown_linux_ohos.rs b/tests/assembly/targets/armv7_unknown_linux_ohos.rs new file mode 100644 index 0000000000000..59ce3276fc343 --- /dev/null +++ b/tests/assembly/targets/armv7_unknown_linux_ohos.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7-unknown-linux-ohos +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/x86_64_unknown_linux_ohos.rs b/tests/assembly/targets/x86_64_unknown_linux_ohos.rs new file mode 100644 index 0000000000000..9aae97e4367c5 --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_linux_ohos.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-linux-ohos +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 61750e903657fdfa8d8df3b1dbcadab0d146c0ee Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 11:10:56 +0100 Subject: [PATCH 006/145] target compliance: x86_64-unknown-l4re-uclibc Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../x86_64_unknown_l4re_uclibc.md | 29 +++++++++++++++++++ .../targets/x86_64_unknown_l4re_uclibc.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/x86_64_unknown_l4re_uclibc.md create mode 100644 tests/assembly/targets/x86_64_unknown_l4re_uclibc.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index a56087f2f7df7..bacaef840070c 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -337,7 +337,7 @@ target | std | host | notes `x86_64-unknown-dragonfly` | ✓ | ✓ | 64-bit DragonFlyBSD `x86_64-unknown-haiku` | ✓ | ✓ | 64-bit Haiku [`x86_64-unknown-hermit`](platform-support/hermit.md) | ✓ | | x86_64 Hermit -`x86_64-unknown-l4re-uclibc` | ? | | +[`x86_64-unknown-l4re-uclibc`](platform-support/x86_64_unknown_l4re_uclibc.md) | ? | | L4 Runtime Environment [`x86_64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | x86_64 OpenHarmony | [`x86_64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 64-bit OpenBSD `x86_64-uwp-windows-gnu` | ✓ | | diff --git a/src/doc/rustc/src/platform-support/x86_64_unknown_l4re_uclibc.md b/src/doc/rustc/src/platform-support/x86_64_unknown_l4re_uclibc.md new file mode 100644 index 0000000000000..e4bddee1c98c3 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_unknown_l4re_uclibc.md @@ -0,0 +1,29 @@ +# `x86_64-unknown-l4re-uclibc` + +**Tier: 3** + +[L4 Runtime Environment](https://l4re.org) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/x86_64_unknown_l4re_uclibc.rs b/tests/assembly/targets/x86_64_unknown_l4re_uclibc.rs new file mode 100644 index 0000000000000..4cefb05b255a9 --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_l4re_uclibc.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-l4re-uclibc +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From e9f3db42c9d861aa1b90b40226138f92236cc94a Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 11:14:23 +0100 Subject: [PATCH 007/145] target compliance: *-unknown-hermit Signed-off-by: David Wood --- .../assembly/targets/aarch64_unknown_hermit.rs | 17 +++++++++++++++++ .../targets/riscv64gc_unknown_hermit.rs | 17 +++++++++++++++++ tests/assembly/targets/x86_64_unknown_hermit.rs | 17 +++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 tests/assembly/targets/aarch64_unknown_hermit.rs create mode 100644 tests/assembly/targets/riscv64gc_unknown_hermit.rs create mode 100644 tests/assembly/targets/x86_64_unknown_hermit.rs diff --git a/tests/assembly/targets/aarch64_unknown_hermit.rs b/tests/assembly/targets/aarch64_unknown_hermit.rs new file mode 100644 index 0000000000000..7add5bdc60a99 --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_hermit.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-hermit +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/riscv64gc_unknown_hermit.rs b/tests/assembly/targets/riscv64gc_unknown_hermit.rs new file mode 100644 index 0000000000000..8de7675f7db9a --- /dev/null +++ b/tests/assembly/targets/riscv64gc_unknown_hermit.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv64gc-unknown-hermit +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/x86_64_unknown_hermit.rs b/tests/assembly/targets/x86_64_unknown_hermit.rs new file mode 100644 index 0000000000000..f63b8dc8319b5 --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_hermit.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-hermit +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From eb644c898d402237b951c5d076e1c819b63e90fc Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 11:40:12 +0100 Subject: [PATCH 008/145] target compliance: *-unknown-haiku Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- src/doc/rustc/src/platform-support/haiku.md | 33 +++++++++++++++++++ tests/assembly/targets/i686_unknown_haiku.rs | 17 ++++++++++ .../assembly/targets/x86_64_unknown_haiku.rs | 17 ++++++++++ 4 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/haiku.md create mode 100644 tests/assembly/targets/i686_unknown_haiku.rs create mode 100644 tests/assembly/targets/x86_64_unknown_haiku.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index bacaef840070c..cbef5befe0d28 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -268,7 +268,7 @@ target | std | host | notes `i686-apple-darwin` | ✓ | ✓ | 32-bit macOS (10.7+, Lion+) `i686-pc-windows-msvc` | * | | 32-bit Windows XP support [`i686-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | -`i686-unknown-haiku` | ✓ | ✓ | 32-bit Haiku +[`i686-unknown-haiku`](platform-support/haiku.md) | ✓ | ✓ | 32-bit Haiku [`i686-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD/i386 with SSE2 [`i686-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 32-bit OpenBSD `i686-uwp-windows-gnu` | ? | | @@ -335,7 +335,7 @@ target | std | host | notes `x86_64-sun-solaris` | ? | | Deprecated target for 64-bit Solaris 10/11, illumos [`x86_64-unikraft-linux-musl`](platform-support/unikraft-linux-musl.md) | ✓ | | 64-bit Unikraft with musl `x86_64-unknown-dragonfly` | ✓ | ✓ | 64-bit DragonFlyBSD -`x86_64-unknown-haiku` | ✓ | ✓ | 64-bit Haiku +[`x86_64-unknown-haiku`](platform-support/haiku.md) | ✓ | ✓ | 64-bit Haiku [`x86_64-unknown-hermit`](platform-support/hermit.md) | ✓ | | x86_64 Hermit [`x86_64-unknown-l4re-uclibc`](platform-support/x86_64_unknown_l4re_uclibc.md) | ? | | L4 Runtime Environment [`x86_64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | x86_64 OpenHarmony | diff --git a/src/doc/rustc/src/platform-support/haiku.md b/src/doc/rustc/src/platform-support/haiku.md new file mode 100644 index 0000000000000..9be30eaa23ccb --- /dev/null +++ b/src/doc/rustc/src/platform-support/haiku.md @@ -0,0 +1,33 @@ +# `*-unknown-haiku` + +**Tier: 3** + +Haiku is an open-source operating system that specifically +targets personal computing. + +- `i686-unknown-haiku` +- `x86_64-unknown-haiku` + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/i686_unknown_haiku.rs b/tests/assembly/targets/i686_unknown_haiku.rs new file mode 100644 index 0000000000000..28dd957f07e25 --- /dev/null +++ b/tests/assembly/targets/i686_unknown_haiku.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i686-unknown-haiku +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/x86_64_unknown_haiku.rs b/tests/assembly/targets/x86_64_unknown_haiku.rs new file mode 100644 index 0000000000000..92b2e6e6d9757 --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_haiku.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-haiku +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 6ad7f0fc0f7a5af2ad40a819869b5b5a51cc2477 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 13:37:21 +0100 Subject: [PATCH 009/145] target compliance: x86_64-unknown-dragonfly Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../x86_64_unknown_dragonfly.md | 34 +++++++++++++++++++ .../targets/x86_64_unknown_dragonfly.rs | 17 ++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/x86_64_unknown_dragonfly.md create mode 100644 tests/assembly/targets/x86_64_unknown_dragonfly.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index cbef5befe0d28..4790305e52961 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -334,7 +334,7 @@ target | std | host | notes `x86_64-pc-windows-msvc` | * | | 64-bit Windows XP support `x86_64-sun-solaris` | ? | | Deprecated target for 64-bit Solaris 10/11, illumos [`x86_64-unikraft-linux-musl`](platform-support/unikraft-linux-musl.md) | ✓ | | 64-bit Unikraft with musl -`x86_64-unknown-dragonfly` | ✓ | ✓ | 64-bit DragonFlyBSD +[`x86_64-unknown-dragonfly`](platform-support/x86_64_unknown_dragonfly.md) | ✓ | ✓ | 64-bit DragonFlyBSD [`x86_64-unknown-haiku`](platform-support/haiku.md) | ✓ | ✓ | 64-bit Haiku [`x86_64-unknown-hermit`](platform-support/hermit.md) | ✓ | | x86_64 Hermit [`x86_64-unknown-l4re-uclibc`](platform-support/x86_64_unknown_l4re_uclibc.md) | ? | | L4 Runtime Environment diff --git a/src/doc/rustc/src/platform-support/x86_64_unknown_dragonfly.md b/src/doc/rustc/src/platform-support/x86_64_unknown_dragonfly.md new file mode 100644 index 0000000000000..5e0c215065913 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_unknown_dragonfly.md @@ -0,0 +1,34 @@ +# `x86_64-unknown-dragonfly` + +**Tier: 3** + +DragonFly belongs to the same class of operating systems as +other BSD-derived systems and Linux. It is based on the same +UNIX ideals and APIs and shares ancestor code with other BSD +operating systems. DragonFly provides an opportunity for the +BSD base to grow in an entirely different direction from the +one taken in the FreeBSD, NetBSD, and OpenBSD series. + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/x86_64_unknown_dragonfly.rs b/tests/assembly/targets/x86_64_unknown_dragonfly.rs new file mode 100644 index 0000000000000..906b3f5643682 --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_dragonfly.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-dragonfly +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 24016d246109f1888e059e07db1bea226e9dac5d Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 13:42:49 +0100 Subject: [PATCH 010/145] target compliance: x86_64-unikraft-linux-musl Signed-off-by: David Wood --- .../targets/x86_64_unikraft_linux_musl.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/x86_64_unikraft_linux_musl.rs diff --git a/tests/assembly/targets/x86_64_unikraft_linux_musl.rs b/tests/assembly/targets/x86_64_unikraft_linux_musl.rs new file mode 100644 index 0000000000000..ea2e89d80bf2f --- /dev/null +++ b/tests/assembly/targets/x86_64_unikraft_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unikraft-linux-musl +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 2cb45310406bdd43757c7b5d2ae397048dfac936 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 14:11:05 +0100 Subject: [PATCH 011/145] target compliance: *-uwp-windows-{msvc,gnu} Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 12 +++---- .../src/platform-support/uwp-windows-msvc.md | 34 +++++++++++++++++++ .../src/platform-support/uwp_windows_gnu.md | 32 +++++++++++++++++ .../targets/aarch64_uwp_windows_msvc.rs | 17 ++++++++++ .../assembly/targets/i686_uwp_windows_gnu.rs | 17 ++++++++++ .../assembly/targets/i686_uwp_windows_msvc.rs | 17 ++++++++++ .../targets/thumbv7a_uwp_windows_msvc.rs | 17 ++++++++++ .../targets/x86_64_uwp_windows_gnu.rs | 17 ++++++++++ .../targets/x86_64_uwp_windows_msvc.rs | 17 ++++++++++ 9 files changed, 174 insertions(+), 6 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/uwp-windows-msvc.md create mode 100644 src/doc/rustc/src/platform-support/uwp_windows_gnu.md create mode 100644 tests/assembly/targets/aarch64_uwp_windows_msvc.rs create mode 100644 tests/assembly/targets/i686_uwp_windows_gnu.rs create mode 100644 tests/assembly/targets/i686_uwp_windows_msvc.rs create mode 100644 tests/assembly/targets/thumbv7a_uwp_windows_msvc.rs create mode 100644 tests/assembly/targets/x86_64_uwp_windows_gnu.rs create mode 100644 tests/assembly/targets/x86_64_uwp_windows_msvc.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 4790305e52961..a1d871ac35439 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -231,7 +231,7 @@ target | std | host | notes [`aarch64-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | ARM64 NetBSD [`aarch64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | ARM64 OpenBSD `aarch64-unknown-redox` | ? | | ARM64 Redox OS -`aarch64-uwp-windows-msvc` | ? | | +[`aarch64-uwp-windows-msvc`](platform-support/uwp-windows-msvc.md) | ? | | ARM64 Universal Windows Platform (UWP) apps using MSVC [`aarch64-wrs-vxworks`](platform-support/vxworks.md) | ? | | ARM64 VxWorks `aarch64_be-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (big-endian, ILP32 ABI) `aarch64_be-unknown-linux-gnu` | ✓ | ✓ | ARM64 Linux (big-endian) @@ -271,8 +271,8 @@ target | std | host | notes [`i686-unknown-haiku`](platform-support/haiku.md) | ✓ | ✓ | 32-bit Haiku [`i686-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD/i386 with SSE2 [`i686-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 32-bit OpenBSD -`i686-uwp-windows-gnu` | ? | | -`i686-uwp-windows-msvc` | ? | | +[`i686-uwp-windows-gnu`](platform-support/uwp_windows_gnu.md) | ? | | x86 Universal Windows Platform (UWP) apps using MinGW +[`i686-uwp-windows-msvc`](platform-support/uwp-windows-msvc.md) | ? | | x86 Universal Windows Platform (UWP) apps using MSVC [`i686-wrs-vxworks`](platform-support/vxworks.md) | ? | | i686 VxWorks [`loongarch64-unknown-none`](platform-support/loongarch-none.md) | * | | LoongArch64 Bare-metal (LP64D ABI) [`loongarch64-unknown-none-softfloat`](platform-support/loongarch-none.md) | * | | LoongArch64 Bare-metal (LP64S ABI) @@ -323,7 +323,7 @@ target | std | host | notes `thumbv4t-none-eabi` | * | | Thumb-mode Bare ARMv4T [`thumbv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | Thumb-mode Bare ARMv5TE `thumbv7a-pc-windows-msvc` | ? | | -`thumbv7a-uwp-windows-msvc` | ✓ | | +[`thumbv7a-uwp-windows-msvc`](platform-support/usp-windows-msvc.md) | ✓ | | Thumb2-mode Universal Windows Platform (UWP) apps using MSVC `thumbv7neon-unknown-linux-musleabihf` | ? | | Thumb2-mode ARMv7-A Linux with NEON, MUSL [`wasm64-unknown-unknown`](platform-support/wasm64-unknown-unknown.md) | ? | | WebAssembly `x86_64-apple-ios-macabi` | ✓ | | Apple Catalyst on x86_64 @@ -340,8 +340,8 @@ target | std | host | notes [`x86_64-unknown-l4re-uclibc`](platform-support/x86_64_unknown_l4re_uclibc.md) | ? | | L4 Runtime Environment [`x86_64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | x86_64 OpenHarmony | [`x86_64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 64-bit OpenBSD -`x86_64-uwp-windows-gnu` | ✓ | | -`x86_64-uwp-windows-msvc` | ✓ | | +[`x86_64-uwp-windows-gnu`](platform-support/uwp_windows_gnu.md) | ✓ | | x86_64 Universal Windows Platform (UWP) apps using MinGW +[`x86_64-uwp-windows-msvc`](platform-support/uwp-windows-msvc.md) | ✓ | | x86_64 Universal Windows Platform (UWP) apps using MSVC [`x86_64-wrs-vxworks`](platform-support/vxworks.md) | ? | | x86_64 VxWorks [`x86_64h-apple-darwin`](platform-support/x86_64h_apple_darwin.md) | ✓ | ✓ | macOS with late-gen Intel (at least Haswell) diff --git a/src/doc/rustc/src/platform-support/uwp-windows-msvc.md b/src/doc/rustc/src/platform-support/uwp-windows-msvc.md new file mode 100644 index 0000000000000..da88e6041a126 --- /dev/null +++ b/src/doc/rustc/src/platform-support/uwp-windows-msvc.md @@ -0,0 +1,34 @@ +# `*-uwp-windows-msvc` + +**Tier: 3** + +Targets for Universal Windows Platform (UWP) apps using MSVC. + +- `aarch64-uwp-windows-msvc` +- `i686-uwp-windows-msvc` +- `thumbv7a-uwp-windows-msvc` +- `x86_64-uwp-windows-msvc` + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/src/doc/rustc/src/platform-support/uwp_windows_gnu.md b/src/doc/rustc/src/platform-support/uwp_windows_gnu.md new file mode 100644 index 0000000000000..20c654e60d01f --- /dev/null +++ b/src/doc/rustc/src/platform-support/uwp_windows_gnu.md @@ -0,0 +1,32 @@ +# `*-uwp-windows-gnu` + +**Tier: 3** + +Targets for Universal Windows Platform (UWP) apps using MinGW. + +- `i686-uwp-windows-gnu` +- `x86_64-uwp-windows-gnu` + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/aarch64_uwp_windows_msvc.rs b/tests/assembly/targets/aarch64_uwp_windows_msvc.rs new file mode 100644 index 0000000000000..738880ca414e0 --- /dev/null +++ b/tests/assembly/targets/aarch64_uwp_windows_msvc.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-uwp-windows-msvc +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .text diff --git a/tests/assembly/targets/i686_uwp_windows_gnu.rs b/tests/assembly/targets/i686_uwp_windows_gnu.rs new file mode 100644 index 0000000000000..ee9c20eeb9e8b --- /dev/null +++ b/tests/assembly/targets/i686_uwp_windows_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i686-uwp-windows-gnu +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .text diff --git a/tests/assembly/targets/i686_uwp_windows_msvc.rs b/tests/assembly/targets/i686_uwp_windows_msvc.rs new file mode 100644 index 0000000000000..28f8eb321b1e7 --- /dev/null +++ b/tests/assembly/targets/i686_uwp_windows_msvc.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i686-uwp-windows-msvc +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .text diff --git a/tests/assembly/targets/thumbv7a_uwp_windows_msvc.rs b/tests/assembly/targets/thumbv7a_uwp_windows_msvc.rs new file mode 100644 index 0000000000000..bb49226063b46 --- /dev/null +++ b/tests/assembly/targets/thumbv7a_uwp_windows_msvc.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target thumbv7a-uwp-windows-msvc +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .text diff --git a/tests/assembly/targets/x86_64_uwp_windows_gnu.rs b/tests/assembly/targets/x86_64_uwp_windows_gnu.rs new file mode 100644 index 0000000000000..bca3a648a9d50 --- /dev/null +++ b/tests/assembly/targets/x86_64_uwp_windows_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-uwp-windows-gnu +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .text diff --git a/tests/assembly/targets/x86_64_uwp_windows_msvc.rs b/tests/assembly/targets/x86_64_uwp_windows_msvc.rs new file mode 100644 index 0000000000000..a4ebaf1e0fcc9 --- /dev/null +++ b/tests/assembly/targets/x86_64_uwp_windows_msvc.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-uwp-windows-msvc +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .text From ceea4fa1787e13ab838d380fe3cd7a69ce6b398c Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 15:13:20 +0100 Subject: [PATCH 012/145] target compliance: x86_64-sun-solaris Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../platform-support/x86_64_sun_solaris.md | 29 +++++++++++++++++++ tests/assembly/targets/x86_64_sun_solaris.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/x86_64_sun_solaris.md create mode 100644 tests/assembly/targets/x86_64_sun_solaris.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index a1d871ac35439..f065f94e6e71e 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -332,7 +332,7 @@ target | std | host | notes [`x86_64-pc-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | x86 64-bit QNX Neutrino 7.1 RTOS | [`x86_64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | `x86_64-pc-windows-msvc` | * | | 64-bit Windows XP support -`x86_64-sun-solaris` | ? | | Deprecated target for 64-bit Solaris 10/11, illumos +[`x86_64-sun-solaris`](platform-support/x86_64_sun_solaris.md) | ? | | Deprecated target for 64-bit Solaris 10/11, illumos [`x86_64-unikraft-linux-musl`](platform-support/unikraft-linux-musl.md) | ✓ | | 64-bit Unikraft with musl [`x86_64-unknown-dragonfly`](platform-support/x86_64_unknown_dragonfly.md) | ✓ | ✓ | 64-bit DragonFlyBSD [`x86_64-unknown-haiku`](platform-support/haiku.md) | ✓ | ✓ | 64-bit Haiku diff --git a/src/doc/rustc/src/platform-support/x86_64_sun_solaris.md b/src/doc/rustc/src/platform-support/x86_64_sun_solaris.md new file mode 100644 index 0000000000000..cff008bca4e3a --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_sun_solaris.md @@ -0,0 +1,29 @@ +# `x86_64-sun-solaris` + +**Tier: 3** + +Deprecated target for 64-bit Solaris 10/11, illumos + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/x86_64_sun_solaris.rs b/tests/assembly/targets/x86_64_sun_solaris.rs new file mode 100644 index 0000000000000..1ff2bd45acf4e --- /dev/null +++ b/tests/assembly/targets/x86_64_sun_solaris.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-sun-solaris +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 1f8ce49e3b8f68c548178019ac84fd5f00a297e0 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 15:25:28 +0100 Subject: [PATCH 013/145] target compliance: drop windows xp in tier 3 Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index f065f94e6e71e..ddcb80595ea9a 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -331,7 +331,6 @@ target | std | host | notes [`x86_64-apple-watchos-sim`](platform-support/apple-watchos.md) | ✓ | | x86 64-bit Apple WatchOS simulator [`x86_64-pc-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | x86 64-bit QNX Neutrino 7.1 RTOS | [`x86_64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | -`x86_64-pc-windows-msvc` | * | | 64-bit Windows XP support [`x86_64-sun-solaris`](platform-support/x86_64_sun_solaris.md) | ? | | Deprecated target for 64-bit Solaris 10/11, illumos [`x86_64-unikraft-linux-musl`](platform-support/unikraft-linux-musl.md) | ✓ | | 64-bit Unikraft with musl [`x86_64-unknown-dragonfly`](platform-support/x86_64_unknown_dragonfly.md) | ✓ | ✓ | 64-bit DragonFlyBSD From be2b697d6434f8768b488a0a3aa5824678920e5f Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 15:28:03 +0100 Subject: [PATCH 014/145] target compliance: x86_64-pc-windows-gnullvm Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../targets/x86_64_pc_windows_gnullvm.rs | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 tests/assembly/targets/x86_64_pc_windows_gnullvm.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index ddcb80595ea9a..4d11ca1ece7f7 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -330,7 +330,7 @@ target | std | host | notes [`x86_64-apple-tvos`](platform-support/apple-tvos.md) | ? | | x86 64-bit tvOS [`x86_64-apple-watchos-sim`](platform-support/apple-watchos.md) | ✓ | | x86 64-bit Apple WatchOS simulator [`x86_64-pc-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | x86 64-bit QNX Neutrino 7.1 RTOS | -[`x86_64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | +[`x86_64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | 64-bit Windows using UCRT and LLVM [`x86_64-sun-solaris`](platform-support/x86_64_sun_solaris.md) | ? | | Deprecated target for 64-bit Solaris 10/11, illumos [`x86_64-unikraft-linux-musl`](platform-support/unikraft-linux-musl.md) | ✓ | | 64-bit Unikraft with musl [`x86_64-unknown-dragonfly`](platform-support/x86_64_unknown_dragonfly.md) | ✓ | ✓ | 64-bit DragonFlyBSD diff --git a/tests/assembly/targets/x86_64_pc_windows_gnullvm.rs b/tests/assembly/targets/x86_64_pc_windows_gnullvm.rs new file mode 100644 index 0000000000000..3c805d23bc94b --- /dev/null +++ b/tests/assembly/targets/x86_64_pc_windows_gnullvm.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-pc-windows-gnullvm +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .text From 28109b569522989e15c10ff9d6d6ee7814f7257b Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 15:34:35 +0100 Subject: [PATCH 015/145] target compliance: x86_64-pc-nto-qnx710 Signed-off-by: David Wood --- tests/assembly/targets/x86_64_pc_nto_qnx710.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/x86_64_pc_nto_qnx710.rs diff --git a/tests/assembly/targets/x86_64_pc_nto_qnx710.rs b/tests/assembly/targets/x86_64_pc_nto_qnx710.rs new file mode 100644 index 0000000000000..6fddf29f240ea --- /dev/null +++ b/tests/assembly/targets/x86_64_pc_nto_qnx710.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-pc-nto-qnx710 +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 85ce17813d7ec9a9c84b9641265a11d494010df2 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 15:42:52 +0100 Subject: [PATCH 016/145] target compliance: *-apple-watchos{,-*} Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 8 ++++---- .../{apple-watchos.md => apple_watchos.md} | 17 +++++++---------- .../targets/aarch64_apple_watchos_sim.rs | 17 +++++++++++++++++ .../assembly/targets/arm64_32_apple_watchos.rs | 17 +++++++++++++++++ tests/assembly/targets/armv7k_apple_watchos.rs | 17 +++++++++++++++++ .../targets/x86_64_apple_watchos_sim.rs | 17 +++++++++++++++++ 6 files changed, 79 insertions(+), 14 deletions(-) rename src/doc/rustc/src/platform-support/{apple-watchos.md => apple_watchos.md} (80%) create mode 100644 tests/assembly/targets/aarch64_apple_watchos_sim.rs create mode 100644 tests/assembly/targets/arm64_32_apple_watchos.rs create mode 100644 tests/assembly/targets/armv7k_apple_watchos.rs create mode 100644 tests/assembly/targets/x86_64_apple_watchos_sim.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 4d11ca1ece7f7..231b3bdd7eb51 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -218,7 +218,7 @@ target | std | host | notes -------|:---:|:----:|------- `aarch64-apple-ios-macabi` | ? | | Apple Catalyst on ARM64 [`aarch64-apple-tvos`](platform-support/apple-tvos.md) | ? | | ARM64 tvOS -[`aarch64-apple-watchos-sim`](platform-support/apple-watchos.md) | ✓ | | ARM64 Apple WatchOS Simulator +[`aarch64-apple-watchos-sim`](platform-support/apple_watchos.md) | ✓ | | ARM64 Apple WatchOS Simulator [`aarch64-kmc-solid_asp3`](platform-support/kmc-solid.md) | ✓ | | ARM64 SOLID with TOPPERS/ASP3 [`aarch64-nintendo-switch-freestanding`](platform-support/aarch64-nintendo-switch-freestanding.md) | * | | ARM64 Nintendo Switch, Horizon [`aarch64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | @@ -236,7 +236,7 @@ target | std | host | notes `aarch64_be-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (big-endian, ILP32 ABI) `aarch64_be-unknown-linux-gnu` | ✓ | ✓ | ARM64 Linux (big-endian) [`aarch64_be-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | ARM64 NetBSD (big-endian) -[`arm64_32-apple-watchos`](platform-support/apple-watchos.md) | ✓ | | ARM Apple WatchOS 64-bit with 32-bit pointers +[`arm64_32-apple-watchos`](platform-support/apple_watchos.md) | ✓ | | ARM Apple WatchOS 64-bit with 32-bit pointers [`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). `armv4t-none-eabi` | * | | Bare ARMv4T `armv4t-unknown-linux-gnueabi` | ? | | ARMv4T Linux @@ -256,7 +256,7 @@ target | std | host | notes [`armv7a-kmc-solid_asp3-eabi`](platform-support/kmc-solid.md) | ✓ | | ARM SOLID with TOPPERS/ASP3 [`armv7a-kmc-solid_asp3-eabihf`](platform-support/kmc-solid.md) | ✓ | | ARM SOLID with TOPPERS/ASP3, hardfloat `armv7a-none-eabihf` | * | | Bare ARMv7-A, hardfloat -[`armv7k-apple-watchos`](platform-support/apple-watchos.md) | ✓ | | ARMv7-A Apple WatchOS +[`armv7k-apple-watchos`](platform-support/apple_watchos.md) | ✓ | | ARMv7-A Apple WatchOS `armv7s-apple-ios` | ✓ | | ARMv7-A Apple-A6 Apple iOS `avr-unknown-gnu-atmega328` | * | | AVR. Requires `-Z build-std=core` `bpfeb-unknown-none` | * | | BPF (big endian) @@ -328,7 +328,7 @@ target | std | host | notes [`wasm64-unknown-unknown`](platform-support/wasm64-unknown-unknown.md) | ? | | WebAssembly `x86_64-apple-ios-macabi` | ✓ | | Apple Catalyst on x86_64 [`x86_64-apple-tvos`](platform-support/apple-tvos.md) | ? | | x86 64-bit tvOS -[`x86_64-apple-watchos-sim`](platform-support/apple-watchos.md) | ✓ | | x86 64-bit Apple WatchOS simulator +[`x86_64-apple-watchos-sim`](platform-support/apple_watchos.md) | ✓ | | x86 64-bit Apple WatchOS simulator [`x86_64-pc-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | x86 64-bit QNX Neutrino 7.1 RTOS | [`x86_64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | 64-bit Windows using UCRT and LLVM [`x86_64-sun-solaris`](platform-support/x86_64_sun_solaris.md) | ? | | Deprecated target for 64-bit Solaris 10/11, illumos diff --git a/src/doc/rustc/src/platform-support/apple-watchos.md b/src/doc/rustc/src/platform-support/apple_watchos.md similarity index 80% rename from src/doc/rustc/src/platform-support/apple-watchos.md rename to src/doc/rustc/src/platform-support/apple_watchos.md index fe4c7c0c88f6d..1ddedbaf8c8ae 100644 --- a/src/doc/rustc/src/platform-support/apple-watchos.md +++ b/src/doc/rustc/src/platform-support/apple_watchos.md @@ -1,16 +1,13 @@ -# *-apple-watchos -- arm64_32-apple-watchos -- armv7k-apple-watchos -- aarch64-apple-watchos-sim -- x86_64-apple-watchos-sim +# `*-apple-watchos{,-*}` **Tier: 3** -Apple WatchOS targets: -- Apple WatchOS on Arm 64_32 -- Apple WatchOS on Arm v7k -- Apple WatchOS Simulator on arm64 -- Apple WatchOS Simulator on x86_64 +Apple WatchOS targets + +- `arm64_32-apple-watchos` (Apple WatchOS on Arm 64_32) +- `armv7k-apple-watchos` (Apple WatchOS on Arm v7k) +- `aarch64-apple-watchos-sim` (Apple WatchOS Simulator on arm64) +- `x86_64-apple-watchos-sim` (Apple WatchOS Simulator on x86_64) ## Target maintainers diff --git a/tests/assembly/targets/aarch64_apple_watchos_sim.rs b/tests/assembly/targets/aarch64_apple_watchos_sim.rs new file mode 100644 index 0000000000000..0b7f8599552c9 --- /dev/null +++ b/tests/assembly/targets/aarch64_apple_watchos_sim.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-apple-watchos-sim +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/arm64_32_apple_watchos.rs b/tests/assembly/targets/arm64_32_apple_watchos.rs new file mode 100644 index 0000000000000..763b0acb9efba --- /dev/null +++ b/tests/assembly/targets/arm64_32_apple_watchos.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target arm64_32-apple-watchos +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/armv7k_apple_watchos.rs b/tests/assembly/targets/armv7k_apple_watchos.rs new file mode 100644 index 0000000000000..8abecf70d6e66 --- /dev/null +++ b/tests/assembly/targets/armv7k_apple_watchos.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7k-apple-watchos +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/x86_64_apple_watchos_sim.rs b/tests/assembly/targets/x86_64_apple_watchos_sim.rs new file mode 100644 index 0000000000000..0f49937af260a --- /dev/null +++ b/tests/assembly/targets/x86_64_apple_watchos_sim.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-apple-watchos-sim +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 194765655b64ceef89896a5389b9819f38adaa36 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 15:46:22 +0100 Subject: [PATCH 017/145] target compliance: *-apple-tvos Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 ++-- .../{apple-tvos.md => apple_tvos.md} | 9 ++++----- tests/assembly/targets/aarch64_apple_tvos.rs | 17 +++++++++++++++++ tests/assembly/targets/x86_64_apple_tvos.rs | 17 +++++++++++++++++ 4 files changed, 40 insertions(+), 7 deletions(-) rename src/doc/rustc/src/platform-support/{apple-tvos.md => apple_tvos.md} (95%) create mode 100644 tests/assembly/targets/aarch64_apple_tvos.rs create mode 100644 tests/assembly/targets/x86_64_apple_tvos.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 231b3bdd7eb51..f6940aa98fb4d 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -217,7 +217,7 @@ host tools. target | std | host | notes -------|:---:|:----:|------- `aarch64-apple-ios-macabi` | ? | | Apple Catalyst on ARM64 -[`aarch64-apple-tvos`](platform-support/apple-tvos.md) | ? | | ARM64 tvOS +[`aarch64-apple-tvos`](platform-support/apple_tvos.md) | ? | | ARM64 tvOS [`aarch64-apple-watchos-sim`](platform-support/apple_watchos.md) | ✓ | | ARM64 Apple WatchOS Simulator [`aarch64-kmc-solid_asp3`](platform-support/kmc-solid.md) | ✓ | | ARM64 SOLID with TOPPERS/ASP3 [`aarch64-nintendo-switch-freestanding`](platform-support/aarch64-nintendo-switch-freestanding.md) | * | | ARM64 Nintendo Switch, Horizon @@ -327,7 +327,7 @@ target | std | host | notes `thumbv7neon-unknown-linux-musleabihf` | ? | | Thumb2-mode ARMv7-A Linux with NEON, MUSL [`wasm64-unknown-unknown`](platform-support/wasm64-unknown-unknown.md) | ? | | WebAssembly `x86_64-apple-ios-macabi` | ✓ | | Apple Catalyst on x86_64 -[`x86_64-apple-tvos`](platform-support/apple-tvos.md) | ? | | x86 64-bit tvOS +[`x86_64-apple-tvos`](platform-support/apple_tvos.md) | ? | | x86 64-bit tvOS [`x86_64-apple-watchos-sim`](platform-support/apple_watchos.md) | ✓ | | x86 64-bit Apple WatchOS simulator [`x86_64-pc-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | x86 64-bit QNX Neutrino 7.1 RTOS | [`x86_64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | 64-bit Windows using UCRT and LLVM diff --git a/src/doc/rustc/src/platform-support/apple-tvos.md b/src/doc/rustc/src/platform-support/apple_tvos.md similarity index 95% rename from src/doc/rustc/src/platform-support/apple-tvos.md rename to src/doc/rustc/src/platform-support/apple_tvos.md index d87fd1959b49c..b56431d78cd86 100644 --- a/src/doc/rustc/src/platform-support/apple-tvos.md +++ b/src/doc/rustc/src/platform-support/apple_tvos.md @@ -1,12 +1,11 @@ # `*-apple-tvos` -- aarch64-apple-tvos -- x86_64-apple-tvos **Tier: 3** -Apple tvOS targets: -- Apple tvOS on aarch64 -- Apple tvOS Simulator on x86_64 +Apple tvOS targets + +- `aarch64-apple-tvos` (Apple tvOS on aarch64) +- `x86_64-apple-tvos` (Apple tvOS Simulator on x86_64) ## Target maintainers diff --git a/tests/assembly/targets/aarch64_apple_tvos.rs b/tests/assembly/targets/aarch64_apple_tvos.rs new file mode 100644 index 0000000000000..e0d93baa9335c --- /dev/null +++ b/tests/assembly/targets/aarch64_apple_tvos.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-apple-tvos +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/x86_64_apple_tvos.rs b/tests/assembly/targets/x86_64_apple_tvos.rs new file mode 100644 index 0000000000000..c8d30b8d48bb9 --- /dev/null +++ b/tests/assembly/targets/x86_64_apple_tvos.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-apple-tvos +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 5076fe7de08b56702a3f713703a28cb448c07d27 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 15:50:53 +0100 Subject: [PATCH 018/145] target compliance: *-apple-ios-macabi Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- .../src/platform-support/apple_ios_macabi.md | 29 +++++++++++++++++++ .../targets/aarch64_apple_ios_macabi.rs | 17 +++++++++++ .../targets/x86_64_apple_ios_macabi.rs | 17 +++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/apple_ios_macabi.md create mode 100644 tests/assembly/targets/aarch64_apple_ios_macabi.rs create mode 100644 tests/assembly/targets/x86_64_apple_ios_macabi.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index f6940aa98fb4d..432dc2b5a9042 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -216,7 +216,7 @@ host tools. target | std | host | notes -------|:---:|:----:|------- -`aarch64-apple-ios-macabi` | ? | | Apple Catalyst on ARM64 +[`aarch64-apple-ios-macabi`](platform-support/apple_ios_macabi.md) | ? | | Apple Catalyst on ARM64 [`aarch64-apple-tvos`](platform-support/apple_tvos.md) | ? | | ARM64 tvOS [`aarch64-apple-watchos-sim`](platform-support/apple_watchos.md) | ✓ | | ARM64 Apple WatchOS Simulator [`aarch64-kmc-solid_asp3`](platform-support/kmc-solid.md) | ✓ | | ARM64 SOLID with TOPPERS/ASP3 @@ -326,7 +326,7 @@ target | std | host | notes [`thumbv7a-uwp-windows-msvc`](platform-support/usp-windows-msvc.md) | ✓ | | Thumb2-mode Universal Windows Platform (UWP) apps using MSVC `thumbv7neon-unknown-linux-musleabihf` | ? | | Thumb2-mode ARMv7-A Linux with NEON, MUSL [`wasm64-unknown-unknown`](platform-support/wasm64-unknown-unknown.md) | ? | | WebAssembly -`x86_64-apple-ios-macabi` | ✓ | | Apple Catalyst on x86_64 +[`x86_64-apple-ios-macabi`](platform-support/apple_ios_macabi.md) | ✓ | | Apple Catalyst on x86_64 [`x86_64-apple-tvos`](platform-support/apple_tvos.md) | ? | | x86 64-bit tvOS [`x86_64-apple-watchos-sim`](platform-support/apple_watchos.md) | ✓ | | x86 64-bit Apple WatchOS simulator [`x86_64-pc-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | x86 64-bit QNX Neutrino 7.1 RTOS | diff --git a/src/doc/rustc/src/platform-support/apple_ios_macabi.md b/src/doc/rustc/src/platform-support/apple_ios_macabi.md new file mode 100644 index 0000000000000..cf434fe47328c --- /dev/null +++ b/src/doc/rustc/src/platform-support/apple_ios_macabi.md @@ -0,0 +1,29 @@ +# `*-apple-ios-macabi` + +**Tier: 3** + +Apple Catalyst + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/aarch64_apple_ios_macabi.rs b/tests/assembly/targets/aarch64_apple_ios_macabi.rs new file mode 100644 index 0000000000000..b8b449535c940 --- /dev/null +++ b/tests/assembly/targets/aarch64_apple_ios_macabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-apple-ios-macabi +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/x86_64_apple_ios_macabi.rs b/tests/assembly/targets/x86_64_apple_ios_macabi.rs new file mode 100644 index 0000000000000..3a02346c28d24 --- /dev/null +++ b/tests/assembly/targets/x86_64_apple_ios_macabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-apple-ios-macabi +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 44c6fdfe25ace6805d2c4239966b20a0360ee3f9 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 15:56:27 +0100 Subject: [PATCH 019/145] target compliance: wasm64-unknown-unknown Signed-off-by: David Wood --- .../assembly/targets/wasm64_unknown_unknown.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/wasm64_unknown_unknown.rs diff --git a/tests/assembly/targets/wasm64_unknown_unknown.rs b/tests/assembly/targets/wasm64_unknown_unknown.rs new file mode 100644 index 0000000000000..6c28dfec5dd24 --- /dev/null +++ b/tests/assembly/targets/wasm64_unknown_unknown.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target wasm64-unknown-unknown +// needs-llvm-components: webassembly + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 92e532285fdbc139d0644a1ce0657791dec5609a Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 15:57:45 +0100 Subject: [PATCH 020/145] target compliance: wasm32-wasi-preview1-threads Signed-off-by: David Wood --- .../targets/wasm32_wasi_preview1_threads.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/wasm32_wasi_preview1_threads.rs diff --git a/tests/assembly/targets/wasm32_wasi_preview1_threads.rs b/tests/assembly/targets/wasm32_wasi_preview1_threads.rs new file mode 100644 index 0000000000000..7fd67268dd720 --- /dev/null +++ b/tests/assembly/targets/wasm32_wasi_preview1_threads.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target wasm32-wasi-preview1-threads +// needs-llvm-components: webassembly + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 8169ca1e546496c115c077c26925df6128200c38 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 16:01:38 +0100 Subject: [PATCH 021/145] target compliance: thumbv7neon-unknown-linux-musleabihf Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../thumbv7neon_unknown_linux_musleabihf.md | 29 +++++++++++++++++++ .../thumbv7neon_unknown_linux_musleabihf.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/thumbv7neon_unknown_linux_musleabihf.md create mode 100644 tests/assembly/targets/thumbv7neon_unknown_linux_musleabihf.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 432dc2b5a9042..58fd725d6712b 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -324,7 +324,7 @@ target | std | host | notes [`thumbv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | Thumb-mode Bare ARMv5TE `thumbv7a-pc-windows-msvc` | ? | | [`thumbv7a-uwp-windows-msvc`](platform-support/usp-windows-msvc.md) | ✓ | | Thumb2-mode Universal Windows Platform (UWP) apps using MSVC -`thumbv7neon-unknown-linux-musleabihf` | ? | | Thumb2-mode ARMv7-A Linux with NEON, MUSL +[`thumbv7neon-unknown-linux-musleabihf`](platform-support/thumbv7neon_unknown_linux_musleabihf.md) | ? | | Thumb2-mode ARMv7-A Linux with NEON, MUSL [`wasm64-unknown-unknown`](platform-support/wasm64-unknown-unknown.md) | ? | | WebAssembly [`x86_64-apple-ios-macabi`](platform-support/apple_ios_macabi.md) | ✓ | | Apple Catalyst on x86_64 [`x86_64-apple-tvos`](platform-support/apple_tvos.md) | ? | | x86 64-bit tvOS diff --git a/src/doc/rustc/src/platform-support/thumbv7neon_unknown_linux_musleabihf.md b/src/doc/rustc/src/platform-support/thumbv7neon_unknown_linux_musleabihf.md new file mode 100644 index 0000000000000..da4e03c36154e --- /dev/null +++ b/src/doc/rustc/src/platform-support/thumbv7neon_unknown_linux_musleabihf.md @@ -0,0 +1,29 @@ +# `thumbv7neon-unknown-linux-musleabihf` + +**Tier: 3** + +Thumb2-mode ARMv7-A Linux with NEON, MUSL + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/thumbv7neon_unknown_linux_musleabihf.rs b/tests/assembly/targets/thumbv7neon_unknown_linux_musleabihf.rs new file mode 100644 index 0000000000000..7cafd633ea2b7 --- /dev/null +++ b/tests/assembly/targets/thumbv7neon_unknown_linux_musleabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target thumbv7neon-unknown-linux-musleabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 23e54d06143c4dae69e03eba081d5fc95d673f1c Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 16:08:59 +0100 Subject: [PATCH 022/145] target compliance: thumbv7a-pc-windows-msvc Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../thumbv7a-pc-windows-msvc.md | 29 +++++++++++++++++++ .../targets/thumbv7a_pc_windows_msvc.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/thumbv7a-pc-windows-msvc.md create mode 100644 tests/assembly/targets/thumbv7a_pc_windows_msvc.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 58fd725d6712b..c17d4ae96c0d6 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -322,7 +322,7 @@ target | std | host | notes [`sparc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/sparc64 `thumbv4t-none-eabi` | * | | Thumb-mode Bare ARMv4T [`thumbv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | Thumb-mode Bare ARMv5TE -`thumbv7a-pc-windows-msvc` | ? | | +[`thumbv7a-pc-windows-msvc`](platform-support/thumbv7a-pc-windows-msvc.md) | ? | | Thumb2-mode MSVC Windows [`thumbv7a-uwp-windows-msvc`](platform-support/usp-windows-msvc.md) | ✓ | | Thumb2-mode Universal Windows Platform (UWP) apps using MSVC [`thumbv7neon-unknown-linux-musleabihf`](platform-support/thumbv7neon_unknown_linux_musleabihf.md) | ? | | Thumb2-mode ARMv7-A Linux with NEON, MUSL [`wasm64-unknown-unknown`](platform-support/wasm64-unknown-unknown.md) | ? | | WebAssembly diff --git a/src/doc/rustc/src/platform-support/thumbv7a-pc-windows-msvc.md b/src/doc/rustc/src/platform-support/thumbv7a-pc-windows-msvc.md new file mode 100644 index 0000000000000..ea06a6f881d7d --- /dev/null +++ b/src/doc/rustc/src/platform-support/thumbv7a-pc-windows-msvc.md @@ -0,0 +1,29 @@ +# `thumbv7a-pc-windows-msvc` + +**Tier: 3** + +Thumb2-mode MSVC Windows + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/thumbv7a_pc_windows_msvc.rs b/tests/assembly/targets/thumbv7a_pc_windows_msvc.rs new file mode 100644 index 0000000000000..b45c114bedc24 --- /dev/null +++ b/tests/assembly/targets/thumbv7a_pc_windows_msvc.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target thumbv7a-pc-windows-msvc +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .text From 29b2ca85b3ae8fd62b52207f83782b2cd0e3551e Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 16:15:52 +0100 Subject: [PATCH 023/145] target compliance: {arm,thumb}v5te-none-eabi Signed-off-by: David Wood --- tests/assembly/targets/armv5te_none_eabi.rs | 17 +++++++++++++++++ tests/assembly/targets/thumbv5te_none_eabi.rs | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 tests/assembly/targets/armv5te_none_eabi.rs create mode 100644 tests/assembly/targets/thumbv5te_none_eabi.rs diff --git a/tests/assembly/targets/armv5te_none_eabi.rs b/tests/assembly/targets/armv5te_none_eabi.rs new file mode 100644 index 0000000000000..2dc53a201c57c --- /dev/null +++ b/tests/assembly/targets/armv5te_none_eabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv5te-none-eabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/thumbv5te_none_eabi.rs b/tests/assembly/targets/thumbv5te_none_eabi.rs new file mode 100644 index 0000000000000..226da94925882 --- /dev/null +++ b/tests/assembly/targets/thumbv5te_none_eabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target thumbv5te-none-eabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 4b49b819935680091a91fa1832de51ce5e4b283b Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 29 Aug 2023 16:18:35 +0100 Subject: [PATCH 024/145] target compliance: {arm,thumb}v4t-none-eabi Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 ++-- tests/assembly/targets/armv4t_none_eabi.rs | 17 +++++++++++++++++ tests/assembly/targets/thumbv4t_none_eabi.rs | 17 +++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 tests/assembly/targets/armv4t_none_eabi.rs create mode 100644 tests/assembly/targets/thumbv4t_none_eabi.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index c17d4ae96c0d6..24fccc00cd75b 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -238,7 +238,7 @@ target | std | host | notes [`aarch64_be-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | ARM64 NetBSD (big-endian) [`arm64_32-apple-watchos`](platform-support/apple_watchos.md) | ✓ | | ARM Apple WatchOS 64-bit with 32-bit pointers [`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). -`armv4t-none-eabi` | * | | Bare ARMv4T +[`armv4t-none-eabi`](platform-support/armv4t-none-eabi.md) | * | | Bare ARMv4T `armv4t-unknown-linux-gnueabi` | ? | | ARMv4T Linux [`armv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | Bare ARMv5TE `armv5te-unknown-linux-uclibceabi` | ? | | ARMv5TE Linux with uClibc @@ -320,7 +320,7 @@ target | std | host | notes [`sparc-unknown-none-elf`](./platform-support/sparc-unknown-none-elf.md) | * | | Bare 32-bit SPARC V7+ [`sparc64-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD/sparc64 [`sparc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/sparc64 -`thumbv4t-none-eabi` | * | | Thumb-mode Bare ARMv4T +[`thumbv4t-none-eabi`](platform-support/armv4t-none-eabi.md) | * | | Thumb-mode Bare ARMv4T [`thumbv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | Thumb-mode Bare ARMv5TE [`thumbv7a-pc-windows-msvc`](platform-support/thumbv7a-pc-windows-msvc.md) | ? | | Thumb2-mode MSVC Windows [`thumbv7a-uwp-windows-msvc`](platform-support/usp-windows-msvc.md) | ✓ | | Thumb2-mode Universal Windows Platform (UWP) apps using MSVC diff --git a/tests/assembly/targets/armv4t_none_eabi.rs b/tests/assembly/targets/armv4t_none_eabi.rs new file mode 100644 index 0000000000000..bc1d77289ce24 --- /dev/null +++ b/tests/assembly/targets/armv4t_none_eabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv4t-none-eabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/thumbv4t_none_eabi.rs b/tests/assembly/targets/thumbv4t_none_eabi.rs new file mode 100644 index 0000000000000..c9450112ab2f5 --- /dev/null +++ b/tests/assembly/targets/thumbv4t_none_eabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target thumbv4t-none-eabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From e228da18f45f69304b9968d7b54683c3fe27be4a Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 10:26:03 +0100 Subject: [PATCH 025/145] target compliance: sparc-unknown-none-elf Signed-off-by: David Wood --- .../assembly/targets/sparc_unknown_none_elf.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/sparc_unknown_none_elf.rs diff --git a/tests/assembly/targets/sparc_unknown_none_elf.rs b/tests/assembly/targets/sparc_unknown_none_elf.rs new file mode 100644 index 0000000000000..c7ff4601e1d7c --- /dev/null +++ b/tests/assembly/targets/sparc_unknown_none_elf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target sparc-unknown-none-elf +// needs-llvm-components: sparc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From f7f9e854564cb8b4bf45c4e15da0c17366e8b3b6 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 10:26:23 +0100 Subject: [PATCH 026/145] target compliance: sparc-unknown-linux-gnu Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../sparc_unknown_linux_gnu.md | 29 +++++++++++++++++++ .../targets/sparc_unknown_linux_gnu.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/sparc_unknown_linux_gnu.md create mode 100644 tests/assembly/targets/sparc_unknown_linux_gnu.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 24fccc00cd75b..118983775b833 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -316,7 +316,7 @@ target | std | host | notes [`riscv64gc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/riscv64 [`riscv64-linux-android`](platform-support/android.md) | | | RISC-V 64-bit Android `s390x-unknown-linux-musl` | | | S390x Linux (kernel 3.2, MUSL) -`sparc-unknown-linux-gnu` | ✓ | | 32-bit SPARC Linux +[`sparc-unknown-linux-gnu`](./platform-support/sparc_unknown_linux_gnu.md) | ✓ | | 32-bit SPARC Linux [`sparc-unknown-none-elf`](./platform-support/sparc-unknown-none-elf.md) | * | | Bare 32-bit SPARC V7+ [`sparc64-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD/sparc64 [`sparc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/sparc64 diff --git a/src/doc/rustc/src/platform-support/sparc_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/sparc_unknown_linux_gnu.md new file mode 100644 index 0000000000000..9bacb431e8d41 --- /dev/null +++ b/src/doc/rustc/src/platform-support/sparc_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `sparc-unknown-linux-gnu` + +**Tier: 3** + +32-bit SPARC Linux + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/sparc_unknown_linux_gnu.rs b/tests/assembly/targets/sparc_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..e721082e4ef84 --- /dev/null +++ b/tests/assembly/targets/sparc_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target sparc-unknown-linux-gnu +// needs-llvm-components: sparc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 9f7929c36774e7162ae350383f14331becdde463 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 10:37:48 +0100 Subject: [PATCH 027/145] target compliance: s390x-unknown-linux-musl Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../s390x_unknown_linux_musl.md | 29 +++++++++++++++++++ .../targets/s390x_unknown_linux_gnu.rs | 17 +++++++++++ .../targets/s390x_unknown_linux_musl.rs | 17 +++++++++++ 4 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/s390x_unknown_linux_musl.md create mode 100644 tests/assembly/targets/s390x_unknown_linux_gnu.rs create mode 100644 tests/assembly/targets/s390x_unknown_linux_musl.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 118983775b833..9949db5bcf1ce 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -315,7 +315,7 @@ target | std | host | notes [`riscv64gc-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | RISC-V NetBSD [`riscv64gc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/riscv64 [`riscv64-linux-android`](platform-support/android.md) | | | RISC-V 64-bit Android -`s390x-unknown-linux-musl` | | | S390x Linux (kernel 3.2, MUSL) +[`s390x-unknown-linux-musl`](./platform-support/s390x_unknown_linux_musl.md) | | | S390x Linux (kernel 3.2, MUSL) [`sparc-unknown-linux-gnu`](./platform-support/sparc_unknown_linux_gnu.md) | ✓ | | 32-bit SPARC Linux [`sparc-unknown-none-elf`](./platform-support/sparc-unknown-none-elf.md) | * | | Bare 32-bit SPARC V7+ [`sparc64-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD/sparc64 diff --git a/src/doc/rustc/src/platform-support/s390x_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/s390x_unknown_linux_musl.md new file mode 100644 index 0000000000000..6327d601e672f --- /dev/null +++ b/src/doc/rustc/src/platform-support/s390x_unknown_linux_musl.md @@ -0,0 +1,29 @@ +# `s390x-unknown-linux-musl` + +**Tier: 3** + +S390x Linux (Kernel 3.2, MUSL) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/s390x_unknown_linux_gnu.rs b/tests/assembly/targets/s390x_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..d5ecc99f14f6d --- /dev/null +++ b/tests/assembly/targets/s390x_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target s390x-unknown-linux-gnu +// needs-llvm-components: s390x + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/s390x_unknown_linux_musl.rs b/tests/assembly/targets/s390x_unknown_linux_musl.rs new file mode 100644 index 0000000000000..0803d0a86860e --- /dev/null +++ b/tests/assembly/targets/s390x_unknown_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target s390x-unknown-linux-musl +// needs-llvm-components: s390x + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 13e23bb87d9951f42174da579e13fc76e55f658a Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 10:41:18 +0100 Subject: [PATCH 028/145] target compliance: riscv64-linux-android Signed-off-by: David Wood --- tests/assembly/targets/riscv64_linux_android.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/riscv64_linux_android.rs diff --git a/tests/assembly/targets/riscv64_linux_android.rs b/tests/assembly/targets/riscv64_linux_android.rs new file mode 100644 index 0000000000000..068c2f32937f8 --- /dev/null +++ b/tests/assembly/targets/riscv64_linux_android.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv64-linux-android +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 1a49c26c14d18bd149fbe8f2474b9abf053fef49 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 10:48:12 +0100 Subject: [PATCH 029/145] target compliance: netbsd Signed-off-by: David Wood --- src/doc/rustc/src/platform-support/netbsd.md | 4 +--- .../targets/aarch64_be_unknown_netbsd.rs | 17 +++++++++++++++++ .../assembly/targets/aarch64_unknown_netbsd.rs | 17 +++++++++++++++++ .../targets/armv6_unknown_netbsd_eabihf.rs | 17 +++++++++++++++++ .../targets/armv7_unknown_netbsd_eabihf.rs | 17 +++++++++++++++++ tests/assembly/targets/i686_unknown_netbsd.rs | 17 +++++++++++++++++ .../assembly/targets/powerpc_unknown_netbsd.rs | 17 +++++++++++++++++ .../targets/riscv64gc_unknown_netbsd.rs | 17 +++++++++++++++++ .../assembly/targets/sparc64_unknown_netbsd.rs | 17 +++++++++++++++++ tests/assembly/targets/x86_64_unknown_netbsd.rs | 17 +++++++++++++++++ 10 files changed, 154 insertions(+), 3 deletions(-) create mode 100644 tests/assembly/targets/aarch64_be_unknown_netbsd.rs create mode 100644 tests/assembly/targets/aarch64_unknown_netbsd.rs create mode 100644 tests/assembly/targets/armv6_unknown_netbsd_eabihf.rs create mode 100644 tests/assembly/targets/armv7_unknown_netbsd_eabihf.rs create mode 100644 tests/assembly/targets/i686_unknown_netbsd.rs create mode 100644 tests/assembly/targets/powerpc_unknown_netbsd.rs create mode 100644 tests/assembly/targets/riscv64gc_unknown_netbsd.rs create mode 100644 tests/assembly/targets/sparc64_unknown_netbsd.rs create mode 100644 tests/assembly/targets/x86_64_unknown_netbsd.rs diff --git a/src/doc/rustc/src/platform-support/netbsd.md b/src/doc/rustc/src/platform-support/netbsd.md index 3891d6d3148da..4864105fc6694 100644 --- a/src/doc/rustc/src/platform-support/netbsd.md +++ b/src/doc/rustc/src/platform-support/netbsd.md @@ -13,14 +13,12 @@ are currently defined running NetBSD: | Target name | NetBSD Platform | |--------------------------------|-----------------| -| `amd64-unknown-netbsd` | [amd64 / x86_64 systems](https://wiki.netbsd.org/ports/amd64/) | +| `x86_64-unknown-netbsd` | [amd64 / x86_64 systems](https://wiki.netbsd.org/ports/amd64/) | | `armv7-unknown-netbsd-eabihf` | [32-bit ARMv7 systems with hard-float](https://wiki.netbsd.org/ports/evbarm/) | | `armv6-unknown-netbsd-eabihf` | [32-bit ARMv6 systems with hard-float](https://wiki.netbsd.org/ports/evbarm/) | | `aarch64-unknown-netbsd` | [64-bit ARM systems, little-endian](https://wiki.netbsd.org/ports/evbarm/) | | `aarch64_be-unknown-netbsd` | [64-bit ARM systems, big-endian](https://wiki.netbsd.org/ports/evbarm/) | -| `i586-unknown-netbsd` | [32-bit i386, restricted to Pentium](https://wiki.netbsd.org/ports/i386/) | | `i686-unknown-netbsd` | [32-bit i386 with SSE](https://wiki.netbsd.org/ports/i386/) | -| `mipsel-unknown-netbsd` | [32-bit mips, requires mips32 cpu support](https://wiki.netbsd.org/ports/evbmips/) | | `powerpc-unknown-netbsd` | [Various 32-bit PowerPC systems, e.g. MacPPC](https://wiki.netbsd.org/ports/macppc/) | | `riscv64gc-unknown-netbsd` | [64-bit RISC-V](https://wiki.netbsd.org/ports/riscv/) | `sparc64-unknown-netbsd` | [Sun UltraSPARC systems](https://wiki.netbsd.org/ports/sparc64/) | diff --git a/tests/assembly/targets/aarch64_be_unknown_netbsd.rs b/tests/assembly/targets/aarch64_be_unknown_netbsd.rs new file mode 100644 index 0000000000000..0d4b83886ab24 --- /dev/null +++ b/tests/assembly/targets/aarch64_be_unknown_netbsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64_be-unknown-netbsd +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/aarch64_unknown_netbsd.rs b/tests/assembly/targets/aarch64_unknown_netbsd.rs new file mode 100644 index 0000000000000..89d44ce0fa29c --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_netbsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-netbsd +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/armv6_unknown_netbsd_eabihf.rs b/tests/assembly/targets/armv6_unknown_netbsd_eabihf.rs new file mode 100644 index 0000000000000..9835eb2231350 --- /dev/null +++ b/tests/assembly/targets/armv6_unknown_netbsd_eabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv6-unknown-netbsd-eabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/armv7_unknown_netbsd_eabihf.rs b/tests/assembly/targets/armv7_unknown_netbsd_eabihf.rs new file mode 100644 index 0000000000000..5eeb8a79d450e --- /dev/null +++ b/tests/assembly/targets/armv7_unknown_netbsd_eabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7-unknown-netbsd-eabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/i686_unknown_netbsd.rs b/tests/assembly/targets/i686_unknown_netbsd.rs new file mode 100644 index 0000000000000..a6bf302326df7 --- /dev/null +++ b/tests/assembly/targets/i686_unknown_netbsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i686-unknown-netbsd +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/powerpc_unknown_netbsd.rs b/tests/assembly/targets/powerpc_unknown_netbsd.rs new file mode 100644 index 0000000000000..0155af289e6bc --- /dev/null +++ b/tests/assembly/targets/powerpc_unknown_netbsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc-unknown-netbsd +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/riscv64gc_unknown_netbsd.rs b/tests/assembly/targets/riscv64gc_unknown_netbsd.rs new file mode 100644 index 0000000000000..59a111925e133 --- /dev/null +++ b/tests/assembly/targets/riscv64gc_unknown_netbsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv64gc-unknown-netbsd +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/sparc64_unknown_netbsd.rs b/tests/assembly/targets/sparc64_unknown_netbsd.rs new file mode 100644 index 0000000000000..010ab49552ebb --- /dev/null +++ b/tests/assembly/targets/sparc64_unknown_netbsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target sparc64-unknown-netbsd +// needs-llvm-components: sparc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/x86_64_unknown_netbsd.rs b/tests/assembly/targets/x86_64_unknown_netbsd.rs new file mode 100644 index 0000000000000..1a490141c5d6a --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_netbsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-netbsd +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From d034d66cb482b89719d7ffd787eddd065270e91b Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 11:01:33 +0100 Subject: [PATCH 030/145] target compliance: fuchsia Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 6 +++--- src/doc/rustc/src/platform-support/fuchsia.md | 10 +++++++--- tests/assembly/targets/aarch64_fuchsia.rs | 17 +++++++++++++++++ .../assembly/targets/aarch64_unknown_fuchsia.rs | 17 +++++++++++++++++ .../targets/riscv64gc_unknown_fuchsia.rs | 17 +++++++++++++++++ tests/assembly/targets/x86_64_fuchsia.rs | 17 +++++++++++++++++ .../assembly/targets/x86_64_unknown_fuchsia.rs | 17 +++++++++++++++++ 7 files changed, 95 insertions(+), 6 deletions(-) create mode 100644 tests/assembly/targets/aarch64_fuchsia.rs create mode 100644 tests/assembly/targets/aarch64_unknown_fuchsia.rs create mode 100644 tests/assembly/targets/riscv64gc_unknown_fuchsia.rs create mode 100644 tests/assembly/targets/x86_64_fuchsia.rs create mode 100644 tests/assembly/targets/x86_64_unknown_fuchsia.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 9949db5bcf1ce..c180d4bd82ef2 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -129,7 +129,7 @@ target | std | notes -------|:---:|------- `aarch64-apple-ios` | ✓ | ARM64 iOS [`aarch64-apple-ios-sim`](platform-support/aarch64-apple-ios-sim.md) | ✓ | Apple iOS Simulator on ARM64 -`aarch64-fuchsia` | ✓ | Alias for `aarch64-unknown-fuchsia` +[`aarch64-fuchsia`](platform-support/fuchsia.md) | ✓ | Alias for `aarch64-unknown-fuchsia` [`aarch64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | ARM64 Fuchsia [`aarch64-linux-android`](platform-support/android.md) | ✓ | ARM64 Android `aarch64-unknown-none-softfloat` | * | Bare ARM64, softfloat @@ -184,7 +184,7 @@ target | std | notes [`wasm32-wasi-preview1-threads`](platform-support/wasm32-wasi-preview1-threads.md) | ✓ | | WebAssembly with WASI Preview 1 and threads `x86_64-apple-ios` | ✓ | 64-bit x86 iOS [`x86_64-fortanix-unknown-sgx`](platform-support/x86_64-fortanix-unknown-sgx.md) | ✓ | [Fortanix ABI] for 64-bit Intel SGX -`x86_64-fuchsia` | ✓ | Alias for `x86_64-unknown-fuchsia` +[`x86_64-fuchsia`](platform-support/fuchsia.md) | ✓ | Alias for `x86_64-unknown-fuchsia` [`x86_64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | 64-bit x86 Fuchsia [`x86_64-linux-android`](platform-support/android.md) | ✓ | 64-bit x86 Android `x86_64-pc-solaris` | ✓ | 64-bit Solaris 10/11, illumos @@ -310,7 +310,7 @@ target | std | host | notes [`riscv32imac-esp-espidf`](platform-support/esp-idf.md) | ✓ | | RISC-V ESP-IDF [`riscv64gc-unknown-hermit`](platform-support/hermit.md) | ✓ | | RISC-V Hermit `riscv64gc-unknown-freebsd` | | | RISC-V FreeBSD -`riscv64gc-unknown-fuchsia` | | | RISC-V Fuchsia +[`riscv64gc-unknown-fuchsia`](platform-support/fuchsia.md) | | | RISC-V Fuchsia `riscv64gc-unknown-linux-musl` | | | RISC-V Linux (kernel 4.20, musl 1.2.0) [`riscv64gc-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | RISC-V NetBSD [`riscv64gc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/riscv64 diff --git a/src/doc/rustc/src/platform-support/fuchsia.md b/src/doc/rustc/src/platform-support/fuchsia.md index f7cce35b1232b..3dbd528c462f2 100644 --- a/src/doc/rustc/src/platform-support/fuchsia.md +++ b/src/doc/rustc/src/platform-support/fuchsia.md @@ -1,10 +1,14 @@ -# `aarch64-unknown-fuchsia` and `x86_64-unknown-fuchsia` - -**Tier: 2** +# `*-unknown-fuchsia` [Fuchsia] is a modern open source operating system that's simple, secure, updatable, and performant. +| Target | Tier | +| --------------------------- | ------ | +| `aarch64-unknown-fuchsia` | Tier 2 | +| `x86_64-unknown-fuchsia` | Tier 2 | +| `riscv64gc-unknown-fuchsia` | Tier 3 | + ## Target maintainers The [Fuchsia team]: diff --git a/tests/assembly/targets/aarch64_fuchsia.rs b/tests/assembly/targets/aarch64_fuchsia.rs new file mode 100644 index 0000000000000..db74e3498770e --- /dev/null +++ b/tests/assembly/targets/aarch64_fuchsia.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-fuchsia +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/aarch64_unknown_fuchsia.rs b/tests/assembly/targets/aarch64_unknown_fuchsia.rs new file mode 100644 index 0000000000000..43fcd3d428641 --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_fuchsia.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-fuchsia +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/riscv64gc_unknown_fuchsia.rs b/tests/assembly/targets/riscv64gc_unknown_fuchsia.rs new file mode 100644 index 0000000000000..0a0120b5d81b8 --- /dev/null +++ b/tests/assembly/targets/riscv64gc_unknown_fuchsia.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv64gc-unknown-fuchsia +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/x86_64_fuchsia.rs b/tests/assembly/targets/x86_64_fuchsia.rs new file mode 100644 index 0000000000000..427f08f4b72f9 --- /dev/null +++ b/tests/assembly/targets/x86_64_fuchsia.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-fuchsia +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/x86_64_unknown_fuchsia.rs b/tests/assembly/targets/x86_64_unknown_fuchsia.rs new file mode 100644 index 0000000000000..b9e26271b8c3e --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_fuchsia.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-fuchsia +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From d7a6a9ec3f4b785c8e398900b698de73784c2717 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 11:24:54 +0100 Subject: [PATCH 031/145] target compliance: freebsd Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 18 +++---- src/doc/rustc/src/platform-support/freebsd.md | 50 +++++++++++++++++++ .../targets/aarch64_unknown_freebsd.rs | 17 +++++++ .../assembly/targets/armv6_unknown_freebsd.rs | 17 +++++++ .../assembly/targets/armv7_unknown_freebsd.rs | 17 +++++++ .../assembly/targets/i686_unknown_freebsd.rs | 17 +++++++ .../targets/powerpc64_unknown_freebsd.rs | 17 +++++++ .../targets/powerpc64le_unknown_freebsd.rs | 17 +++++++ .../targets/powerpc_unknown_freebsd.rs | 17 +++++++ .../targets/riscv64gc_unknown_freebsd.rs | 17 +++++++ .../targets/x86_64_unknown_freebsd.rs | 17 +++++++ 11 files changed, 212 insertions(+), 9 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/freebsd.md create mode 100644 tests/assembly/targets/aarch64_unknown_freebsd.rs create mode 100644 tests/assembly/targets/armv6_unknown_freebsd.rs create mode 100644 tests/assembly/targets/armv7_unknown_freebsd.rs create mode 100644 tests/assembly/targets/i686_unknown_freebsd.rs create mode 100644 tests/assembly/targets/powerpc64_unknown_freebsd.rs create mode 100644 tests/assembly/targets/powerpc64le_unknown_freebsd.rs create mode 100644 tests/assembly/targets/powerpc_unknown_freebsd.rs create mode 100644 tests/assembly/targets/riscv64gc_unknown_freebsd.rs create mode 100644 tests/assembly/targets/x86_64_unknown_freebsd.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index c180d4bd82ef2..16b13f35e43c0 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -99,7 +99,7 @@ target | notes `powerpc64le-unknown-linux-gnu` | PPC64LE Linux (kernel 3.10, glibc 2.17) `riscv64gc-unknown-linux-gnu` | RISC-V Linux (kernel 4.20, glibc 2.29) `s390x-unknown-linux-gnu` | S390x Linux (kernel 3.2, glibc 2.17) -`x86_64-unknown-freebsd` | 64-bit FreeBSD +[`x86_64-unknown-freebsd`](platform-support/freebsd.md) | 64-bit FreeBSD `x86_64-unknown-illumos` | illumos `x86_64-unknown-linux-musl` | 64-bit Linux with MUSL [`x86_64-unknown-netbsd`](platform-support/netbsd.md) | NetBSD/amd64 @@ -154,7 +154,7 @@ target | std | notes `i586-unknown-linux-gnu` | ✓ | 32-bit Linux w/o SSE (kernel 3.2, glibc 2.17) `i586-unknown-linux-musl` | ✓ | 32-bit Linux w/o SSE, MUSL [`i686-linux-android`](platform-support/android.md) | ✓ | 32-bit x86 Android -`i686-unknown-freebsd` | ✓ | 32-bit FreeBSD +[`i686-unknown-freebsd`](platform-support/freebsd.md) | ✓ | 32-bit FreeBSD `i686-unknown-linux-musl` | ✓ | 32-bit Linux with MUSL [`i686-unknown-uefi`](platform-support/unknown-uefi.md) | * | 32-bit UEFI `mips-unknown-linux-musl` | ✓ | MIPS Linux with MUSL @@ -225,7 +225,7 @@ target | std | host | notes [`aarch64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | ARM64 OpenHarmony | [`aarch64-unknown-teeos`](platform-support/aarch64-unknown-teeos.md) | ? | | ARM64 TEEOS | [`aarch64-unknown-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | ARM64 QNX Neutrino 7.1 RTOS | -`aarch64-unknown-freebsd` | ✓ | ✓ | ARM64 FreeBSD +[`aarch64-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARM64 FreeBSD [`aarch64-unknown-hermit`](platform-support/hermit.md) | ✓ | | ARM64 Hermit `aarch64-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (ILP32 ABI) [`aarch64-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | ARM64 NetBSD @@ -242,7 +242,7 @@ target | std | host | notes `armv4t-unknown-linux-gnueabi` | ? | | ARMv4T Linux [`armv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | Bare ARMv5TE `armv5te-unknown-linux-uclibceabi` | ? | | ARMv5TE Linux with uClibc -`armv6-unknown-freebsd` | ✓ | ✓ | ARMv6 FreeBSD +[`armv6-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARMv6 FreeBSD [`armv6-unknown-netbsd-eabihf`](platform-support/netbsd.md) | ✓ | ✓ | ARMv6 NetBSD w/hard-float [`armv6k-nintendo-3ds`](platform-support/armv6k-nintendo-3ds.md) | ? | | ARMv6K Nintendo 3DS, Horizon (Requires devkitARM toolchain) `armv7-apple-ios` | ✓ | | ARMv7-A Cortex-A8 iOS @@ -250,7 +250,7 @@ target | std | host | notes [`armv7-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | ARMv7-A OpenHarmony | [`armv7-unknown-linux-uclibceabi`](platform-support/armv7-unknown-linux-uclibceabi.md) | ✓ | ✓ | ARMv7-A Linux with uClibc, softfloat [`armv7-unknown-linux-uclibceabihf`](platform-support/armv7-unknown-linux-uclibceabihf.md) | ✓ | ? | ARMv7-A Linux with uClibc, hardfloat -`armv7-unknown-freebsd` | ✓ | ✓ | ARMv7-A FreeBSD +[`armv7-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARMv7-A FreeBSD [`armv7-unknown-netbsd-eabihf`](platform-support/netbsd.md) | ✓ | ✓ | ARMv7-A NetBSD w/hard-float [`armv7-wrs-vxworks-eabihf`](platform-support/vxworks.md) | ? | | ARMv7-A VxWorks [`armv7a-kmc-solid_asp3-eabi`](platform-support/kmc-solid.md) | ✓ | | ARM SOLID with TOPPERS/ASP3 @@ -294,9 +294,9 @@ target | std | host | notes [`powerpc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/macppc [`powerpc-wrs-vxworks-spe`](platform-support/vxworks.md) | ? | | PowerPC SPE VxWorks [`powerpc-wrs-vxworks`](platform-support/vxworks.md) | ? | | PowerPC VxWorks -`powerpc64-unknown-freebsd` | ✓ | ✓ | PPC64 FreeBSD (ELFv1 and ELFv2) -`powerpc64le-unknown-freebsd` | | | PPC64LE FreeBSD -`powerpc-unknown-freebsd` | | | PowerPC FreeBSD +[`powerpc64-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | PPC64 FreeBSD (ELFv1 and ELFv2) +[`powerpc64le-unknown-freebsd`](platform-support/freebsd.md) | | | PPC64LE FreeBSD +[`powerpc-unknown-freebsd`](platform-support/freebsd.md) | | | PowerPC FreeBSD `powerpc64-unknown-linux-musl` | ? | | [`powerpc64-wrs-vxworks`](platform-support/vxworks.md) | ? | | PPC64 VxWorks `powerpc64le-unknown-linux-musl` | ? | | @@ -309,7 +309,7 @@ target | std | host | notes [`riscv32imc-esp-espidf`](platform-support/esp-idf.md) | ✓ | | RISC-V ESP-IDF [`riscv32imac-esp-espidf`](platform-support/esp-idf.md) | ✓ | | RISC-V ESP-IDF [`riscv64gc-unknown-hermit`](platform-support/hermit.md) | ✓ | | RISC-V Hermit -`riscv64gc-unknown-freebsd` | | | RISC-V FreeBSD +[`riscv64gc-unknown-freebsd`](platform-support/freebsd.md) | | | RISC-V FreeBSD [`riscv64gc-unknown-fuchsia`](platform-support/fuchsia.md) | | | RISC-V Fuchsia `riscv64gc-unknown-linux-musl` | | | RISC-V Linux (kernel 4.20, musl 1.2.0) [`riscv64gc-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | RISC-V NetBSD diff --git a/src/doc/rustc/src/platform-support/freebsd.md b/src/doc/rustc/src/platform-support/freebsd.md new file mode 100644 index 0000000000000..5d8f5c35e24e6 --- /dev/null +++ b/src/doc/rustc/src/platform-support/freebsd.md @@ -0,0 +1,50 @@ +# `*-unknown-freebsd` + +[FreeBSD] is an operating system used to power modern servers, +desktops, and embedded platforms. + +| Target | Tier | +| ----------------------------- | -------------------- | +| `aarch64-unknown-freebsd` | Tier 3 | +| `armv6-unknown-freebsd` | Tier 3 | +| `armv7-unknown-freebsd` | Tier 3 | +| `x86_64-unknown-freebsd` | Tier 2 w/ Host Tools | +| `i686-unknown-freebsd` | Tier 2 | +| `powerpc64-unknown-freebsd` | Tier 3 | +| `powerpc64le-unknown-freebsd` | Tier 3 | +| `powerpc-unknown-freebsd` | Tier 3 | +| `riscv64gc-unknown-freebsd` | Tier 3 | + +## Target maintainers + +- rust@FreeBSD.org + +## Requirements + +Missing! + +## Building the target + +The target can be built by enabling it for a `rustc` build. + +```toml +[build] +target = ["$ARCH-unknown-freebsd"] + +[target.$ARCH-unknown-openbsd] +cc = "$ARCH-freebsd-cc" +``` + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! + +[FreeBSD]: https://www.freebsd.org diff --git a/tests/assembly/targets/aarch64_unknown_freebsd.rs b/tests/assembly/targets/aarch64_unknown_freebsd.rs new file mode 100644 index 0000000000000..844235d8ccd76 --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_freebsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-freebsd +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/armv6_unknown_freebsd.rs b/tests/assembly/targets/armv6_unknown_freebsd.rs new file mode 100644 index 0000000000000..9681faf39d908 --- /dev/null +++ b/tests/assembly/targets/armv6_unknown_freebsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv6-unknown-freebsd +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/armv7_unknown_freebsd.rs b/tests/assembly/targets/armv7_unknown_freebsd.rs new file mode 100644 index 0000000000000..3952be980df89 --- /dev/null +++ b/tests/assembly/targets/armv7_unknown_freebsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7-unknown-freebsd +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/i686_unknown_freebsd.rs b/tests/assembly/targets/i686_unknown_freebsd.rs new file mode 100644 index 0000000000000..398d0f344e7f1 --- /dev/null +++ b/tests/assembly/targets/i686_unknown_freebsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i686-unknown-freebsd +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/powerpc64_unknown_freebsd.rs b/tests/assembly/targets/powerpc64_unknown_freebsd.rs new file mode 100644 index 0000000000000..fa36e01961b62 --- /dev/null +++ b/tests/assembly/targets/powerpc64_unknown_freebsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc64-unknown-freebsd +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/powerpc64le_unknown_freebsd.rs b/tests/assembly/targets/powerpc64le_unknown_freebsd.rs new file mode 100644 index 0000000000000..14bad84c7731a --- /dev/null +++ b/tests/assembly/targets/powerpc64le_unknown_freebsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc64le-unknown-freebsd +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/powerpc_unknown_freebsd.rs b/tests/assembly/targets/powerpc_unknown_freebsd.rs new file mode 100644 index 0000000000000..4e12d3d36205e --- /dev/null +++ b/tests/assembly/targets/powerpc_unknown_freebsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc-unknown-freebsd +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/riscv64gc_unknown_freebsd.rs b/tests/assembly/targets/riscv64gc_unknown_freebsd.rs new file mode 100644 index 0000000000000..43b7af2873125 --- /dev/null +++ b/tests/assembly/targets/riscv64gc_unknown_freebsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv64gc-unknown-freebsd +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/x86_64_unknown_freebsd.rs b/tests/assembly/targets/x86_64_unknown_freebsd.rs new file mode 100644 index 0000000000000..3d1b7e3e2f505 --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_freebsd.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-freebsd +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From b987ec94c4105b1b4cb8c49285822ea948d28e8a Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 11:36:09 +0100 Subject: [PATCH 032/145] target compliance: *-esp-espidf Signed-off-by: David Wood --- .../assembly/targets/riscv32imac_esp_espidf.rs | 17 +++++++++++++++++ tests/assembly/targets/riscv32imc_esp_espidf.rs | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 tests/assembly/targets/riscv32imac_esp_espidf.rs create mode 100644 tests/assembly/targets/riscv32imc_esp_espidf.rs diff --git a/tests/assembly/targets/riscv32imac_esp_espidf.rs b/tests/assembly/targets/riscv32imac_esp_espidf.rs new file mode 100644 index 0000000000000..6b2a030a14e25 --- /dev/null +++ b/tests/assembly/targets/riscv32imac_esp_espidf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv32imac-esp-espidf +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/riscv32imc_esp_espidf.rs b/tests/assembly/targets/riscv32imc_esp_espidf.rs new file mode 100644 index 0000000000000..c0d0210066464 --- /dev/null +++ b/tests/assembly/targets/riscv32imc_esp_espidf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv32imc-esp-espidf +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 4597e069bb79c5a783113ebb34dde007cb02bc66 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 11:38:16 +0100 Subject: [PATCH 033/145] target compliance: riscv32imac-unknown-xous-elf Signed-off-by: David Wood --- .../targets/riscv32imac_unknown_xous_elf.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/riscv32imac_unknown_xous_elf.rs diff --git a/tests/assembly/targets/riscv32imac_unknown_xous_elf.rs b/tests/assembly/targets/riscv32imac_unknown_xous_elf.rs new file mode 100644 index 0000000000000..3893ee032398f --- /dev/null +++ b/tests/assembly/targets/riscv32imac_unknown_xous_elf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv32imac-unknown-xous-elf +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 792f37d04dd42612bacca5faba3f0ad1f243c41d Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 11:43:06 +0100 Subject: [PATCH 034/145] target compliance: riscv32im-unknown-none-elf Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../riscv32im_unknown_none_elf.md | 29 +++++++++++++++++++ .../targets/riscv32im_unknown_none_elf.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/riscv32im_unknown_none_elf.md create mode 100644 tests/assembly/targets/riscv32im_unknown_none_elf.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 16b13f35e43c0..0fef71a3edcba 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -304,7 +304,7 @@ target | std | host | notes `powerpc64-ibm-aix` | ? | | 64-bit AIX (7.2 and newer) `riscv32gc-unknown-linux-gnu` | | | RISC-V Linux (kernel 5.4, glibc 2.33) `riscv32gc-unknown-linux-musl` | | | RISC-V Linux (kernel 5.4, musl + RISCV32 support patches) -`riscv32im-unknown-none-elf` | * | | Bare RISC-V (RV32IM ISA) +[`riscv32im-unknown-none-elf`](platform-support/riscv32im_unknown_none_elf.md) | * | | Bare RISC-V (RV32IM ISA) [`riscv32imac-unknown-xous-elf`](platform-support/riscv32imac-unknown-xous-elf.md) | ? | | RISC-V Xous (RV32IMAC ISA) [`riscv32imc-esp-espidf`](platform-support/esp-idf.md) | ✓ | | RISC-V ESP-IDF [`riscv32imac-esp-espidf`](platform-support/esp-idf.md) | ✓ | | RISC-V ESP-IDF diff --git a/src/doc/rustc/src/platform-support/riscv32im_unknown_none_elf.md b/src/doc/rustc/src/platform-support/riscv32im_unknown_none_elf.md new file mode 100644 index 0000000000000..51e4a1253057c --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv32im_unknown_none_elf.md @@ -0,0 +1,29 @@ +# `riscv32im-unknown-none-elf` + +**Tier: 3** + +Bare RISC-V (RV32IM ISA) + +## Target maintainers + +- @ridwanabdillahi + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/riscv32im_unknown_none_elf.rs b/tests/assembly/targets/riscv32im_unknown_none_elf.rs new file mode 100644 index 0000000000000..890a456d67f3c --- /dev/null +++ b/tests/assembly/targets/riscv32im_unknown_none_elf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv32im-unknown-none-elf +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 521a962192e514a8574d4028eac5d5e8b4c77359 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 10:57:58 +0100 Subject: [PATCH 035/145] target compliance: riscv{32,64}gc-unknown-linux-musl Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- .../riscvgc_unknown_linux_musl.md | 29 +++++++++++++++++++ .../targets/riscv32gc_unknown_linux_musl.rs | 17 +++++++++++ .../targets/riscv64gc_unknown_linux_musl.rs | 17 +++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/riscvgc_unknown_linux_musl.md create mode 100644 tests/assembly/targets/riscv32gc_unknown_linux_musl.rs create mode 100644 tests/assembly/targets/riscv64gc_unknown_linux_musl.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 0fef71a3edcba..c739c75c5658c 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -303,7 +303,7 @@ target | std | host | notes [`powerpc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/powerpc64 `powerpc64-ibm-aix` | ? | | 64-bit AIX (7.2 and newer) `riscv32gc-unknown-linux-gnu` | | | RISC-V Linux (kernel 5.4, glibc 2.33) -`riscv32gc-unknown-linux-musl` | | | RISC-V Linux (kernel 5.4, musl + RISCV32 support patches) +[`riscv32gc-unknown-linux-musl`](platform-support/riscvgc_unknown_linux_musl.md) | | | RISC-V Linux (kernel 5.4, MUSL + RISCV32 support patches) [`riscv32im-unknown-none-elf`](platform-support/riscv32im_unknown_none_elf.md) | * | | Bare RISC-V (RV32IM ISA) [`riscv32imac-unknown-xous-elf`](platform-support/riscv32imac-unknown-xous-elf.md) | ? | | RISC-V Xous (RV32IMAC ISA) [`riscv32imc-esp-espidf`](platform-support/esp-idf.md) | ✓ | | RISC-V ESP-IDF @@ -311,7 +311,7 @@ target | std | host | notes [`riscv64gc-unknown-hermit`](platform-support/hermit.md) | ✓ | | RISC-V Hermit [`riscv64gc-unknown-freebsd`](platform-support/freebsd.md) | | | RISC-V FreeBSD [`riscv64gc-unknown-fuchsia`](platform-support/fuchsia.md) | | | RISC-V Fuchsia -`riscv64gc-unknown-linux-musl` | | | RISC-V Linux (kernel 4.20, musl 1.2.0) +[`riscv64gc-unknown-linux-musl`](platform-support/riscvgc_unknown_linux_musl.md) | | | RISC-V Linux (kernel 4.20, MUSL 1.2.0) [`riscv64gc-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | RISC-V NetBSD [`riscv64gc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/riscv64 [`riscv64-linux-android`](platform-support/android.md) | | | RISC-V 64-bit Android diff --git a/src/doc/rustc/src/platform-support/riscvgc_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/riscvgc_unknown_linux_musl.md new file mode 100644 index 0000000000000..73fdfcdec9c6b --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscvgc_unknown_linux_musl.md @@ -0,0 +1,29 @@ +# `riscv*gc-unknown-linux-musl` + +**Tier: 3** + +RISC-V Linux (Kernel 4.20, MUSL 1.2.0) (+ RISCV32 support patches) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/riscv32gc_unknown_linux_musl.rs b/tests/assembly/targets/riscv32gc_unknown_linux_musl.rs new file mode 100644 index 0000000000000..8842632dd5ca0 --- /dev/null +++ b/tests/assembly/targets/riscv32gc_unknown_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv32gc-unknown-linux-musl +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/riscv64gc_unknown_linux_musl.rs b/tests/assembly/targets/riscv64gc_unknown_linux_musl.rs new file mode 100644 index 0000000000000..942ac81cf8498 --- /dev/null +++ b/tests/assembly/targets/riscv64gc_unknown_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv64gc-unknown-linux-musl +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 66a1f1b4ad97a37a39ca6b1449a998415866da78 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 11:58:29 +0100 Subject: [PATCH 036/145] target compliance: riscv32gc-unknown-linux-gnu Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../riscv32gc_unknown_linux_gnu.md | 29 +++++++++++++++++++ .../targets/riscv32gc_unknown_linux_gnu.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/riscv32gc_unknown_linux_gnu.md create mode 100644 tests/assembly/targets/riscv32gc_unknown_linux_gnu.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index c739c75c5658c..371839c7c4f7e 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -302,7 +302,7 @@ target | std | host | notes `powerpc64le-unknown-linux-musl` | ? | | [`powerpc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/powerpc64 `powerpc64-ibm-aix` | ? | | 64-bit AIX (7.2 and newer) -`riscv32gc-unknown-linux-gnu` | | | RISC-V Linux (kernel 5.4, glibc 2.33) +[`riscv32gc-unknown-linux-gnu`](platform-support/riscv32gc_unknown_linux_gnu.md) | | | RISC-V Linux (kernel 5.4, glibc 2.33) [`riscv32gc-unknown-linux-musl`](platform-support/riscvgc_unknown_linux_musl.md) | | | RISC-V Linux (kernel 5.4, MUSL + RISCV32 support patches) [`riscv32im-unknown-none-elf`](platform-support/riscv32im_unknown_none_elf.md) | * | | Bare RISC-V (RV32IM ISA) [`riscv32imac-unknown-xous-elf`](platform-support/riscv32imac-unknown-xous-elf.md) | ? | | RISC-V Xous (RV32IMAC ISA) diff --git a/src/doc/rustc/src/platform-support/riscv32gc_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/riscv32gc_unknown_linux_gnu.md new file mode 100644 index 0000000000000..dd667ccb58174 --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv32gc_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `riscv32gc-unknown-linux-gnu` + +**Tier: 3** + +RISC-V Linux (Kernel 5.4, glibc 2.33) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/riscv32gc_unknown_linux_gnu.rs b/tests/assembly/targets/riscv32gc_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..c94175a1f0252 --- /dev/null +++ b/tests/assembly/targets/riscv32gc_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv32gc-unknown-linux-gnu +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From df334475407f6bbf5ab7005d5866cc00ae6f24e1 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 13:46:32 +0100 Subject: [PATCH 037/145] target compliance: powerpc64-ibm-aix Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../src/platform-support/powerpc64_ibm_aix.md | 30 +++++++++++++++++++ tests/assembly/targets/powerpc64_ibm_aix.rs | 17 +++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/powerpc64_ibm_aix.md create mode 100644 tests/assembly/targets/powerpc64_ibm_aix.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 371839c7c4f7e..a030eb7490082 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -301,7 +301,7 @@ target | std | host | notes [`powerpc64-wrs-vxworks`](platform-support/vxworks.md) | ? | | PPC64 VxWorks `powerpc64le-unknown-linux-musl` | ? | | [`powerpc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/powerpc64 -`powerpc64-ibm-aix` | ? | | 64-bit AIX (7.2 and newer) +[`powerpc64-ibm-aix`](platform-support/powerpc64_ibm_aix.md) | ? | | 64-bit AIX (7.2 and newer) [`riscv32gc-unknown-linux-gnu`](platform-support/riscv32gc_unknown_linux_gnu.md) | | | RISC-V Linux (kernel 5.4, glibc 2.33) [`riscv32gc-unknown-linux-musl`](platform-support/riscvgc_unknown_linux_musl.md) | | | RISC-V Linux (kernel 5.4, MUSL + RISCV32 support patches) [`riscv32im-unknown-none-elf`](platform-support/riscv32im_unknown_none_elf.md) | * | | Bare RISC-V (RV32IM ISA) diff --git a/src/doc/rustc/src/platform-support/powerpc64_ibm_aix.md b/src/doc/rustc/src/platform-support/powerpc64_ibm_aix.md new file mode 100644 index 0000000000000..4a35055987820 --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc64_ibm_aix.md @@ -0,0 +1,30 @@ +# `powerpc64-ibm-aix` + +**Tier: 3** + +64-bit AIX (7.2 and newer) + +## Target maintainers + +- Chaofan Qiu, qiucofan@cn.ibm.com, [@ecnelises](https://github.com/ecnelises) +- Kai Luo, lkail@cn.ibm.com, [@bzEq](https://github.com/bzEq) + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/powerpc64_ibm_aix.rs b/tests/assembly/targets/powerpc64_ibm_aix.rs new file mode 100644 index 0000000000000..d4de234f437e1 --- /dev/null +++ b/tests/assembly/targets/powerpc64_ibm_aix.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc64-ibm-aix +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .csect From 8c3318732c6a50128fe440af2bb5285d040a48ec Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 13:57:13 +0100 Subject: [PATCH 038/145] target compliance: powerpc64{,le}-unknown-linux-musl Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- .../powerpc64_unknown_linux_musl.md | 29 +++++++++++++++++++ .../powerpc64le_unknown_linux_musl.md | 29 +++++++++++++++++++ .../targets/powerpc64_unknown_linux_musl.rs | 17 +++++++++++ .../targets/powerpc64le_unknown_linux_musl.rs | 17 +++++++++++ 5 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/powerpc64_unknown_linux_musl.md create mode 100644 src/doc/rustc/src/platform-support/powerpc64le_unknown_linux_musl.md create mode 100644 tests/assembly/targets/powerpc64_unknown_linux_musl.rs create mode 100644 tests/assembly/targets/powerpc64le_unknown_linux_musl.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index a030eb7490082..82ca29ffd3051 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -297,9 +297,9 @@ target | std | host | notes [`powerpc64-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | PPC64 FreeBSD (ELFv1 and ELFv2) [`powerpc64le-unknown-freebsd`](platform-support/freebsd.md) | | | PPC64LE FreeBSD [`powerpc-unknown-freebsd`](platform-support/freebsd.md) | | | PowerPC FreeBSD -`powerpc64-unknown-linux-musl` | ? | | +[`powerpc64-unknown-linux-musl`](platform-support/powerpc64_unknown_linux_musl.md) | ? | | PPC64LE Linux (MUSL) [`powerpc64-wrs-vxworks`](platform-support/vxworks.md) | ? | | PPC64 VxWorks -`powerpc64le-unknown-linux-musl` | ? | | +[`powerpc64le-unknown-linux-musl`](platform-support/powerpc64le_unknown_linux_musl.md) | ? | | PPC64 Linux (MUSL) [`powerpc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/powerpc64 [`powerpc64-ibm-aix`](platform-support/powerpc64_ibm_aix.md) | ? | | 64-bit AIX (7.2 and newer) [`riscv32gc-unknown-linux-gnu`](platform-support/riscv32gc_unknown_linux_gnu.md) | | | RISC-V Linux (kernel 5.4, glibc 2.33) diff --git a/src/doc/rustc/src/platform-support/powerpc64_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/powerpc64_unknown_linux_musl.md new file mode 100644 index 0000000000000..0f36f703352b9 --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc64_unknown_linux_musl.md @@ -0,0 +1,29 @@ +# `powerpc64-unknown-linux-musl` + +**Tier: 3** + +PPC64 Linux (MUSL) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/src/doc/rustc/src/platform-support/powerpc64le_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/powerpc64le_unknown_linux_musl.md new file mode 100644 index 0000000000000..d844077ba706f --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc64le_unknown_linux_musl.md @@ -0,0 +1,29 @@ +# `powerpc64le-unknown-linux-musl` + +**Tier: 3** + +PPC64LE Linux (MUSL) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/powerpc64_unknown_linux_musl.rs b/tests/assembly/targets/powerpc64_unknown_linux_musl.rs new file mode 100644 index 0000000000000..556c4143c52ba --- /dev/null +++ b/tests/assembly/targets/powerpc64_unknown_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc64-unknown-linux-musl +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/powerpc64le_unknown_linux_musl.rs b/tests/assembly/targets/powerpc64le_unknown_linux_musl.rs new file mode 100644 index 0000000000000..9f46ea52dfee6 --- /dev/null +++ b/tests/assembly/targets/powerpc64le_unknown_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc64le-unknown-linux-musl +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 12c5564071179e00fabfd08a6c00044bd3a12f12 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 14:00:31 +0100 Subject: [PATCH 039/145] target compliance: powerpc-unknown-linux-musl Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../powerpc_unknown_linux_musl.md | 29 +++++++++++++++++++ .../targets/powerpc-unknown-linux-musl.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/powerpc_unknown_linux_musl.md create mode 100644 tests/assembly/targets/powerpc-unknown-linux-musl.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 82ca29ffd3051..accce738e0e21 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -289,7 +289,7 @@ target | std | host | notes [`mipsisa64r6el-unknown-linux-gnuabi64`](platform-support/mips-release-6.md) | ✓ | ✓ | 64-bit MIPS Release 6 Little Endian `msp430-none-elf` | * | | 16-bit MSP430 microcontrollers `powerpc-unknown-linux-gnuspe` | ✓ | | PowerPC SPE Linux -`powerpc-unknown-linux-musl` | ? | | +[`powerpc-unknown-linux-musl`](platform-support/powerpc_unknown_linux_musl.md) | ? | | PowerPC MUSL Linux [`powerpc-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD 32-bit powerpc systems [`powerpc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/macppc [`powerpc-wrs-vxworks-spe`](platform-support/vxworks.md) | ? | | PowerPC SPE VxWorks diff --git a/src/doc/rustc/src/platform-support/powerpc_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/powerpc_unknown_linux_musl.md new file mode 100644 index 0000000000000..c9a9955d01c8b --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc_unknown_linux_musl.md @@ -0,0 +1,29 @@ +# `powerpc-unknown-linux-musl` + +**Tier: 3** + +PowerPC MUSL Linux + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/powerpc-unknown-linux-musl.rs b/tests/assembly/targets/powerpc-unknown-linux-musl.rs new file mode 100644 index 0000000000000..f0804a111425e --- /dev/null +++ b/tests/assembly/targets/powerpc-unknown-linux-musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc-unknown-linux-musl +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 28d31fc470422a3bdbbe9487b63c8fa6997db7eb Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 14:03:15 +0100 Subject: [PATCH 040/145] target compliance: powerpc-unknown-linux-gnuspe Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../powerpc_unknown_linux_gnuspe.md | 29 +++++++++++++++++++ ...usl.rs => powerpc_unknown_linux_gnuspe.rs} | 2 +- .../targets/powerpc_unknown_linux_musl.rs | 17 +++++++++++ 4 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/powerpc_unknown_linux_gnuspe.md rename tests/assembly/targets/{powerpc-unknown-linux-musl.rs => powerpc_unknown_linux_gnuspe.rs} (80%) create mode 100644 tests/assembly/targets/powerpc_unknown_linux_musl.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index accce738e0e21..ba7afe910a207 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -288,7 +288,7 @@ target | std | host | notes [`mipsisa64r6-unknown-linux-gnuabi64`](platform-support/mips-release-6.md) | ? | | 64-bit MIPS Release 6 Big Endian [`mipsisa64r6el-unknown-linux-gnuabi64`](platform-support/mips-release-6.md) | ✓ | ✓ | 64-bit MIPS Release 6 Little Endian `msp430-none-elf` | * | | 16-bit MSP430 microcontrollers -`powerpc-unknown-linux-gnuspe` | ✓ | | PowerPC SPE Linux +[`powerpc-unknown-linux-gnuspe`](platform-support/powerpc_unknown_linux_gnuspe.md) | ✓ | | PowerPC SPE Linux [`powerpc-unknown-linux-musl`](platform-support/powerpc_unknown_linux_musl.md) | ? | | PowerPC MUSL Linux [`powerpc-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD 32-bit powerpc systems [`powerpc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/macppc diff --git a/src/doc/rustc/src/platform-support/powerpc_unknown_linux_gnuspe.md b/src/doc/rustc/src/platform-support/powerpc_unknown_linux_gnuspe.md new file mode 100644 index 0000000000000..834b1d7ee7da7 --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc_unknown_linux_gnuspe.md @@ -0,0 +1,29 @@ +# `powerpc-unknown-linux-gnuspe` + +**Tier: 3** + +PowerPC SPE Linux + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/powerpc-unknown-linux-musl.rs b/tests/assembly/targets/powerpc_unknown_linux_gnuspe.rs similarity index 80% rename from tests/assembly/targets/powerpc-unknown-linux-musl.rs rename to tests/assembly/targets/powerpc_unknown_linux_gnuspe.rs index f0804a111425e..7f0229cae037f 100644 --- a/tests/assembly/targets/powerpc-unknown-linux-musl.rs +++ b/tests/assembly/targets/powerpc_unknown_linux_gnuspe.rs @@ -1,5 +1,5 @@ // assembly-output: emit-asm -// compile-flags: --target powerpc-unknown-linux-musl +// compile-flags: --target powerpc-unknown-linux-gnuspe // needs-llvm-components: powerpc #![feature(no_core, lang_items)] diff --git a/tests/assembly/targets/powerpc_unknown_linux_musl.rs b/tests/assembly/targets/powerpc_unknown_linux_musl.rs new file mode 100644 index 0000000000000..7f0229cae037f --- /dev/null +++ b/tests/assembly/targets/powerpc_unknown_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc-unknown-linux-gnuspe +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 28c6d094441789ed8bec405be94cc4e933c73231 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 14:08:28 +0100 Subject: [PATCH 041/145] target compliance: msp430-none-elf Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../src/platform-support/msp430_none_elf.md | 29 +++++++++++++++++++ tests/assembly/targets/msp430_none_elf.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/msp430_none_elf.md create mode 100644 tests/assembly/targets/msp430_none_elf.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index ba7afe910a207..90f53c174d01b 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -287,7 +287,7 @@ target | std | host | notes [`mipsisa32r6el-unknown-linux-gnu`](platform-support/mips-release-6.md) | ? | | 32-bit MIPS Release 6 Little Endian [`mipsisa64r6-unknown-linux-gnuabi64`](platform-support/mips-release-6.md) | ? | | 64-bit MIPS Release 6 Big Endian [`mipsisa64r6el-unknown-linux-gnuabi64`](platform-support/mips-release-6.md) | ✓ | ✓ | 64-bit MIPS Release 6 Little Endian -`msp430-none-elf` | * | | 16-bit MSP430 microcontrollers +[`msp430-none-elf`](platform-support/msp430_none_elf.md) | * | | 16-bit MSP430 microcontrollers [`powerpc-unknown-linux-gnuspe`](platform-support/powerpc_unknown_linux_gnuspe.md) | ✓ | | PowerPC SPE Linux [`powerpc-unknown-linux-musl`](platform-support/powerpc_unknown_linux_musl.md) | ? | | PowerPC MUSL Linux [`powerpc-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD 32-bit powerpc systems diff --git a/src/doc/rustc/src/platform-support/msp430_none_elf.md b/src/doc/rustc/src/platform-support/msp430_none_elf.md new file mode 100644 index 0000000000000..ffe549ae00612 --- /dev/null +++ b/src/doc/rustc/src/platform-support/msp430_none_elf.md @@ -0,0 +1,29 @@ +# `msp430-none-elf` + +**Tier: 3** + +16-bit MSP430 microcontrollers + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/msp430_none_elf.rs b/tests/assembly/targets/msp430_none_elf.rs new file mode 100644 index 0000000000000..9486db48bf502 --- /dev/null +++ b/tests/assembly/targets/msp430_none_elf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target msp430-none-elf +// needs-llvm-components: msp430 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 13bba49f27b67d6c1cb6c24708e81ed63ef16a6d Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 14:11:37 +0100 Subject: [PATCH 042/145] target compliance: mipsisa{32r6,32r6el,64r6,64r6el}-unknown-linux-gnu{,abi64} Signed-off-by: David Wood --- .../targets/mipsisa32r6_unknown_linux_gnu.rs | 17 +++++++++++++++++ .../targets/mipsisa32r6el_unknown_linux_gnu.rs | 17 +++++++++++++++++ .../mipsisa64r6_unknown_linux_gnuabi64.rs | 17 +++++++++++++++++ .../mipsisa64r6el_unknown_linux_gnuabi64.rs | 17 +++++++++++++++++ 4 files changed, 68 insertions(+) create mode 100644 tests/assembly/targets/mipsisa32r6_unknown_linux_gnu.rs create mode 100644 tests/assembly/targets/mipsisa32r6el_unknown_linux_gnu.rs create mode 100644 tests/assembly/targets/mipsisa64r6_unknown_linux_gnuabi64.rs create mode 100644 tests/assembly/targets/mipsisa64r6el_unknown_linux_gnuabi64.rs diff --git a/tests/assembly/targets/mipsisa32r6_unknown_linux_gnu.rs b/tests/assembly/targets/mipsisa32r6_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..0e91ba6402b72 --- /dev/null +++ b/tests/assembly/targets/mipsisa32r6_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mipsisa32r6-unknown-linux-gnu +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/mipsisa32r6el_unknown_linux_gnu.rs b/tests/assembly/targets/mipsisa32r6el_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..d3a50d6a5f02a --- /dev/null +++ b/tests/assembly/targets/mipsisa32r6el_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mipsisa32r6el-unknown-linux-gnu +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/mipsisa64r6_unknown_linux_gnuabi64.rs b/tests/assembly/targets/mipsisa64r6_unknown_linux_gnuabi64.rs new file mode 100644 index 0000000000000..e787ed540d707 --- /dev/null +++ b/tests/assembly/targets/mipsisa64r6_unknown_linux_gnuabi64.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mipsisa64r6-unknown-linux-gnuabi64 +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/mipsisa64r6el_unknown_linux_gnuabi64.rs b/tests/assembly/targets/mipsisa64r6el_unknown_linux_gnuabi64.rs new file mode 100644 index 0000000000000..5dbb3f2e1a4b1 --- /dev/null +++ b/tests/assembly/targets/mipsisa64r6el_unknown_linux_gnuabi64.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mipsisa64r6el-unknown-linux-gnuabi64 +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 4067e5dfe1b925a54bf6d73ddc6e11a096d0f266 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 14:14:55 +0100 Subject: [PATCH 043/145] target compliance: mipsel-unknown-none Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../platform-support/mipsel_unknown_none.md | 29 +++++++++++++++++++ tests/assembly/targets/mipsel_unknown_none.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/mipsel_unknown_none.md create mode 100644 tests/assembly/targets/mipsel_unknown_none.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 90f53c174d01b..a16c08784c34f 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -282,7 +282,7 @@ target | std | host | notes `mipsel-sony-psp` | * | | MIPS (LE) Sony PlayStation Portable (PSP) [`mipsel-sony-psx`](platform-support/mipsel-sony-psx.md) | * | | MIPS (LE) Sony PlayStation 1 (PSX) `mipsel-unknown-linux-uclibc` | ✓ | | MIPS (LE) Linux with uClibc -`mipsel-unknown-none` | * | | Bare MIPS (LE) softfloat +[`mipsel-unknown-none`](platform-support/mipsel_unknown_none.md) | * | | Bare MIPS (LE) softfloat [`mipsisa32r6-unknown-linux-gnu`](platform-support/mips-release-6.md) | ? | | 32-bit MIPS Release 6 Big Endian [`mipsisa32r6el-unknown-linux-gnu`](platform-support/mips-release-6.md) | ? | | 32-bit MIPS Release 6 Little Endian [`mipsisa64r6-unknown-linux-gnuabi64`](platform-support/mips-release-6.md) | ? | | 64-bit MIPS Release 6 Big Endian diff --git a/src/doc/rustc/src/platform-support/mipsel_unknown_none.md b/src/doc/rustc/src/platform-support/mipsel_unknown_none.md new file mode 100644 index 0000000000000..46a0b4a7e5514 --- /dev/null +++ b/src/doc/rustc/src/platform-support/mipsel_unknown_none.md @@ -0,0 +1,29 @@ +# `mipsel-unknown-none` + +**Tier: 3** + +Bare MIPS (LE) softfloat + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/mipsel_unknown_none.rs b/tests/assembly/targets/mipsel_unknown_none.rs new file mode 100644 index 0000000000000..cdbad656cfa80 --- /dev/null +++ b/tests/assembly/targets/mipsel_unknown_none.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mipsel-unknown-none +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From a3e4a7efef131d9c3151431babf79459d22fe07a Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 14:18:26 +0100 Subject: [PATCH 044/145] target compliance: mipsel-unknown-linux-uclibc Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../mipsel_unknown_linux_uclibc.md | 29 +++++++++++++++++++ .../targets/mipsel_unknown_linux_uclibc.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/mipsel_unknown_linux_uclibc.md create mode 100644 tests/assembly/targets/mipsel_unknown_linux_uclibc.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index a16c08784c34f..d76a81b105b25 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -281,7 +281,7 @@ target | std | host | notes [`mips64-openwrt-linux-musl`](platform-support/mips64-openwrt-linux-musl.md) | ? | | MIPS64 for OpenWrt Linux MUSL `mipsel-sony-psp` | * | | MIPS (LE) Sony PlayStation Portable (PSP) [`mipsel-sony-psx`](platform-support/mipsel-sony-psx.md) | * | | MIPS (LE) Sony PlayStation 1 (PSX) -`mipsel-unknown-linux-uclibc` | ✓ | | MIPS (LE) Linux with uClibc +[`mipsel-unknown-linux-uclibc`](platform-support/mipsel_unknown_linux_uclibc.md) | ✓ | | MIPS (LE) Linux with uClibc [`mipsel-unknown-none`](platform-support/mipsel_unknown_none.md) | * | | Bare MIPS (LE) softfloat [`mipsisa32r6-unknown-linux-gnu`](platform-support/mips-release-6.md) | ? | | 32-bit MIPS Release 6 Big Endian [`mipsisa32r6el-unknown-linux-gnu`](platform-support/mips-release-6.md) | ? | | 32-bit MIPS Release 6 Little Endian diff --git a/src/doc/rustc/src/platform-support/mipsel_unknown_linux_uclibc.md b/src/doc/rustc/src/platform-support/mipsel_unknown_linux_uclibc.md new file mode 100644 index 0000000000000..a2d69300acd77 --- /dev/null +++ b/src/doc/rustc/src/platform-support/mipsel_unknown_linux_uclibc.md @@ -0,0 +1,29 @@ +# `mipsel-unknown-linux-uclibc` + +**Tier: 3** + +MIPS (LE) Linux with uClibc + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/mipsel_unknown_linux_uclibc.rs b/tests/assembly/targets/mipsel_unknown_linux_uclibc.rs new file mode 100644 index 0000000000000..6889f5204b4c1 --- /dev/null +++ b/tests/assembly/targets/mipsel_unknown_linux_uclibc.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mipsel-unknown-linux-uclibc +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 2325f9143bbe0dfa2565e437823d1f3950642b90 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 14:20:07 +0100 Subject: [PATCH 045/145] target compliance: mipsel-sony-psx Signed-off-by: David Wood --- tests/assembly/targets/mipsel_sony_psx.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/mipsel_sony_psx.rs diff --git a/tests/assembly/targets/mipsel_sony_psx.rs b/tests/assembly/targets/mipsel_sony_psx.rs new file mode 100644 index 0000000000000..d77ef57018137 --- /dev/null +++ b/tests/assembly/targets/mipsel_sony_psx.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mipsel-sony-psx +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 55f341697f0643bd63e62b421b4a87101318d33c Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 14:23:53 +0100 Subject: [PATCH 046/145] target compliance: mipsel-sony-psp Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../src/platform-support/mipsel_sony_psp.md | 29 +++++++++++++++++++ tests/assembly/targets/mipsel_sony_psp.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/mipsel_sony_psp.md create mode 100644 tests/assembly/targets/mipsel_sony_psp.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index d76a81b105b25..6fbae80bcb2fe 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -279,7 +279,7 @@ target | std | host | notes [`m68k-unknown-linux-gnu`](platform-support/m68k-unknown-linux-gnu.md) | ? | | Motorola 680x0 Linux `mips-unknown-linux-uclibc` | ✓ | | MIPS Linux with uClibc [`mips64-openwrt-linux-musl`](platform-support/mips64-openwrt-linux-musl.md) | ? | | MIPS64 for OpenWrt Linux MUSL -`mipsel-sony-psp` | * | | MIPS (LE) Sony PlayStation Portable (PSP) +[`mipsel-sony-psp`](platform-support/mipsel_sony_psp.md) | * | | MIPS (LE) Sony PlayStation Portable (PSP) [`mipsel-sony-psx`](platform-support/mipsel-sony-psx.md) | * | | MIPS (LE) Sony PlayStation 1 (PSX) [`mipsel-unknown-linux-uclibc`](platform-support/mipsel_unknown_linux_uclibc.md) | ✓ | | MIPS (LE) Linux with uClibc [`mipsel-unknown-none`](platform-support/mipsel_unknown_none.md) | * | | Bare MIPS (LE) softfloat diff --git a/src/doc/rustc/src/platform-support/mipsel_sony_psp.md b/src/doc/rustc/src/platform-support/mipsel_sony_psp.md new file mode 100644 index 0000000000000..b9f5afb4869a8 --- /dev/null +++ b/src/doc/rustc/src/platform-support/mipsel_sony_psp.md @@ -0,0 +1,29 @@ +# `mipsel-sony-psp` + +**Tier: 3** + +MIPS (LE) Sony PlayStation Portable (PSP) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/mipsel_sony_psp.rs b/tests/assembly/targets/mipsel_sony_psp.rs new file mode 100644 index 0000000000000..d43de4972dd49 --- /dev/null +++ b/tests/assembly/targets/mipsel_sony_psp.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mipsel-sony-psp +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From edf7a4b6e0b0bf1e018a47d1a921bafa9065d600 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 14:28:28 +0100 Subject: [PATCH 047/145] target compliance: mips64-openwrt-linux-musl Signed-off-by: David Wood --- .../targets/mips64_openwrt_linux_musl.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/mips64_openwrt_linux_musl.rs diff --git a/tests/assembly/targets/mips64_openwrt_linux_musl.rs b/tests/assembly/targets/mips64_openwrt_linux_musl.rs new file mode 100644 index 0000000000000..bc7b8e8b69ac5 --- /dev/null +++ b/tests/assembly/targets/mips64_openwrt_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mips64-openwrt-linux-musl +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 04d6c8b90abeb60623fc95931dd313c8b0b9bc1f Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 14:36:43 +0100 Subject: [PATCH 048/145] target compliance: mips-unknown-linux-uclibc Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../mips_unknown_linux_uclibc.md | 29 +++++++++++++++++++ .../targets/mips_unknown_linux_uclibc.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/mips_unknown_linux_uclibc.md create mode 100644 tests/assembly/targets/mips_unknown_linux_uclibc.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 6fbae80bcb2fe..5d01efc90b643 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -277,7 +277,7 @@ target | std | host | notes [`loongarch64-unknown-none`](platform-support/loongarch-none.md) | * | | LoongArch64 Bare-metal (LP64D ABI) [`loongarch64-unknown-none-softfloat`](platform-support/loongarch-none.md) | * | | LoongArch64 Bare-metal (LP64S ABI) [`m68k-unknown-linux-gnu`](platform-support/m68k-unknown-linux-gnu.md) | ? | | Motorola 680x0 Linux -`mips-unknown-linux-uclibc` | ✓ | | MIPS Linux with uClibc +[`mips-unknown-linux-uclibc`](platform-support/mips_unknown_linux_uclibc.md) | ✓ | | MIPS Linux with uClibc [`mips64-openwrt-linux-musl`](platform-support/mips64-openwrt-linux-musl.md) | ? | | MIPS64 for OpenWrt Linux MUSL [`mipsel-sony-psp`](platform-support/mipsel_sony_psp.md) | * | | MIPS (LE) Sony PlayStation Portable (PSP) [`mipsel-sony-psx`](platform-support/mipsel-sony-psx.md) | * | | MIPS (LE) Sony PlayStation 1 (PSX) diff --git a/src/doc/rustc/src/platform-support/mips_unknown_linux_uclibc.md b/src/doc/rustc/src/platform-support/mips_unknown_linux_uclibc.md new file mode 100644 index 0000000000000..8e136fdcfafb0 --- /dev/null +++ b/src/doc/rustc/src/platform-support/mips_unknown_linux_uclibc.md @@ -0,0 +1,29 @@ +# `mips-unknown-linux-uclibc` + +**Tier: 3** + +MIPS Linux with uClibc + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/mips_unknown_linux_uclibc.rs b/tests/assembly/targets/mips_unknown_linux_uclibc.rs new file mode 100644 index 0000000000000..3ec7418584ebc --- /dev/null +++ b/tests/assembly/targets/mips_unknown_linux_uclibc.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mips-unknown-linux-uclibc +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 343ed33d8819015764ddcfd9c5e171c83902e213 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 14:38:52 +0100 Subject: [PATCH 049/145] target compliance: m68k-unknown-linux-gnu Signed-off-by: David Wood --- .../assembly/targets/m68k_unknown_linux_gnu.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/m68k_unknown_linux_gnu.rs diff --git a/tests/assembly/targets/m68k_unknown_linux_gnu.rs b/tests/assembly/targets/m68k_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..03590f4a71696 --- /dev/null +++ b/tests/assembly/targets/m68k_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target m68k-unknown-linux-gnu +// needs-llvm-components: m68k + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 4354c653529b984b916dc63b75af7cceec006b16 Mon Sep 17 00:00:00 2001 From: David Wood Date: Fri, 8 Sep 2023 14:40:55 +0100 Subject: [PATCH 050/145] target compliance: loongarch64-unknown-none{,-softfloat} Signed-off-by: David Wood --- .../targets/loongarch64_unknown_none.rs | 17 +++++++++++++++++ .../loongarch64_unknown_none_softfloat.rs | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 tests/assembly/targets/loongarch64_unknown_none.rs create mode 100644 tests/assembly/targets/loongarch64_unknown_none_softfloat.rs diff --git a/tests/assembly/targets/loongarch64_unknown_none.rs b/tests/assembly/targets/loongarch64_unknown_none.rs new file mode 100644 index 0000000000000..8dfaad6c9e52e --- /dev/null +++ b/tests/assembly/targets/loongarch64_unknown_none.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target loongarch64-unknown-none +// needs-llvm-components: loongarch + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/loongarch64_unknown_none_softfloat.rs b/tests/assembly/targets/loongarch64_unknown_none_softfloat.rs new file mode 100644 index 0000000000000..3b2b7088dbd27 --- /dev/null +++ b/tests/assembly/targets/loongarch64_unknown_none_softfloat.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target loongarch64-unknown-none-softfloat +// needs-llvm-components: loongarch + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From ea63ade4aeb653cf9d45015b7880124daa94ae9b Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 13:19:11 +0100 Subject: [PATCH 051/145] target compliance: *-{pc,uwp}-windows-msvc Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 19 +++++---- .../thumbv7a-pc-windows-msvc.md | 29 -------------- .../src/platform-support/uwp-windows-msvc.md | 34 ---------------- .../src/platform-support/windows_msvc.md | 40 +++++++++++++++++++ .../targets/aarch64_pc_windows_msvc.rs | 17 ++++++++ .../assembly/targets/i586_pc_windows_msvc.rs | 17 ++++++++ .../assembly/targets/i686_pc_windows_msvc.rs | 17 ++++++++ .../targets/x86_64_pc_windows_msvc.rs | 17 ++++++++ 8 files changed, 117 insertions(+), 73 deletions(-) delete mode 100644 src/doc/rustc/src/platform-support/thumbv7a-pc-windows-msvc.md delete mode 100644 src/doc/rustc/src/platform-support/uwp-windows-msvc.md create mode 100644 src/doc/rustc/src/platform-support/windows_msvc.md create mode 100644 tests/assembly/targets/aarch64_pc_windows_msvc.rs create mode 100644 tests/assembly/targets/i586_pc_windows_msvc.rs create mode 100644 tests/assembly/targets/i686_pc_windows_msvc.rs create mode 100644 tests/assembly/targets/x86_64_pc_windows_msvc.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 5d01efc90b643..8e9cadb3dfb0f 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -34,11 +34,11 @@ target | notes -------|------- `aarch64-unknown-linux-gnu` | ARM64 Linux (kernel 4.1, glibc 2.17+) [^missing-stack-probes] `i686-pc-windows-gnu` | 32-bit MinGW (Windows 7+) [^windows-support] -`i686-pc-windows-msvc` | 32-bit MSVC (Windows 7+) [^windows-support] +[`i686-pc-windows-msvc`](platform-support/windows_msvc.md) | 32-bit MSVC (Windows 7+) [^windows-support] `i686-unknown-linux-gnu` | 32-bit Linux (kernel 3.2+, glibc 2.17+) `x86_64-apple-darwin` | 64-bit macOS (10.7+, Lion+) `x86_64-pc-windows-gnu` | 64-bit MinGW (Windows 7+) [^windows-support] -`x86_64-pc-windows-msvc` | 64-bit MSVC (Windows 7+) [^windows-support] +[`x86_64-pc-windows-msvc`](platform-support/windows_msvc.md) | 64-bit MSVC (Windows 7+) [^windows-support] `x86_64-unknown-linux-gnu` | 64-bit Linux (kernel 3.2+, glibc 2.17+) [^missing-stack-probes]: Stack probes support is missing on @@ -84,7 +84,7 @@ so Rustup may install the documentation for a similar tier 1 target instead. target | notes -------|------- `aarch64-apple-darwin` | ARM64 macOS (11.0+, Big Sur+) -`aarch64-pc-windows-msvc` | ARM64 Windows MSVC +[`aarch64-pc-windows-msvc`](platform-support/windows_msvc.md) | ARM64 Windows MSVC `aarch64-unknown-linux-musl` | ARM64 Linux with MUSL `arm-unknown-linux-gnueabi` | ARMv6 Linux (kernel 3.2, glibc 2.17) `arm-unknown-linux-gnueabihf` | ARMv6 Linux, hardfloat (kernel 3.2, glibc 2.17) @@ -150,7 +150,7 @@ target | std | notes `armv7r-none-eabi` | * | Bare ARMv7-R `armv7r-none-eabihf` | * | Bare ARMv7-R, hardfloat `asmjs-unknown-emscripten` | ✓ | asm.js via Emscripten -`i586-pc-windows-msvc` | * | 32-bit Windows w/o SSE +[`i586-pc-windows-msvc`](platform-support/windows_msvc.md) | * | 32-bit Windows w/o SSE `i586-unknown-linux-gnu` | ✓ | 32-bit Linux w/o SSE (kernel 3.2, glibc 2.17) `i586-unknown-linux-musl` | ✓ | 32-bit Linux w/o SSE, MUSL [`i686-linux-android`](platform-support/android.md) | ✓ | 32-bit x86 Android @@ -231,7 +231,7 @@ target | std | host | notes [`aarch64-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | ARM64 NetBSD [`aarch64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | ARM64 OpenBSD `aarch64-unknown-redox` | ? | | ARM64 Redox OS -[`aarch64-uwp-windows-msvc`](platform-support/uwp-windows-msvc.md) | ? | | ARM64 Universal Windows Platform (UWP) apps using MSVC +[`aarch64-uwp-windows-msvc`](platform-support/windows_msvc.md) | ? | | ARM64 Universal Windows Platform (UWP) apps using MSVC [`aarch64-wrs-vxworks`](platform-support/vxworks.md) | ? | | ARM64 VxWorks `aarch64_be-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (big-endian, ILP32 ABI) `aarch64_be-unknown-linux-gnu` | ✓ | ✓ | ARM64 Linux (big-endian) @@ -266,13 +266,12 @@ target | std | host | notes `i386-apple-ios` | ✓ | | 32-bit x86 iOS [`i586-pc-nto-qnx700`](platform-support/nto-qnx.md) | * | | 32-bit x86 QNX Neutrino 7.0 RTOS | `i686-apple-darwin` | ✓ | ✓ | 32-bit macOS (10.7+, Lion+) -`i686-pc-windows-msvc` | * | | 32-bit Windows XP support [`i686-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | [`i686-unknown-haiku`](platform-support/haiku.md) | ✓ | ✓ | 32-bit Haiku [`i686-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD/i386 with SSE2 [`i686-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 32-bit OpenBSD [`i686-uwp-windows-gnu`](platform-support/uwp_windows_gnu.md) | ? | | x86 Universal Windows Platform (UWP) apps using MinGW -[`i686-uwp-windows-msvc`](platform-support/uwp-windows-msvc.md) | ? | | x86 Universal Windows Platform (UWP) apps using MSVC +[`i686-uwp-windows-msvc`](platform-support/windows_msvc.md) | ? | | x86 Universal Windows Platform (UWP) apps using MSVC [`i686-wrs-vxworks`](platform-support/vxworks.md) | ? | | i686 VxWorks [`loongarch64-unknown-none`](platform-support/loongarch-none.md) | * | | LoongArch64 Bare-metal (LP64D ABI) [`loongarch64-unknown-none-softfloat`](platform-support/loongarch-none.md) | * | | LoongArch64 Bare-metal (LP64S ABI) @@ -322,8 +321,8 @@ target | std | host | notes [`sparc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/sparc64 [`thumbv4t-none-eabi`](platform-support/armv4t-none-eabi.md) | * | | Thumb-mode Bare ARMv4T [`thumbv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | Thumb-mode Bare ARMv5TE -[`thumbv7a-pc-windows-msvc`](platform-support/thumbv7a-pc-windows-msvc.md) | ? | | Thumb2-mode MSVC Windows -[`thumbv7a-uwp-windows-msvc`](platform-support/usp-windows-msvc.md) | ✓ | | Thumb2-mode Universal Windows Platform (UWP) apps using MSVC +[`thumbv7a-pc-windows-msvc`](platform-support/windows_msvc.md) | ? | | Thumb2-mode MSVC Windows +[`thumbv7a-uwp-windows-msvc`](platform-support/windows_msvc.md) | ✓ | | Thumb2-mode Universal Windows Platform (UWP) apps using MSVC [`thumbv7neon-unknown-linux-musleabihf`](platform-support/thumbv7neon_unknown_linux_musleabihf.md) | ? | | Thumb2-mode ARMv7-A Linux with NEON, MUSL [`wasm64-unknown-unknown`](platform-support/wasm64-unknown-unknown.md) | ? | | WebAssembly [`x86_64-apple-ios-macabi`](platform-support/apple_ios_macabi.md) | ✓ | | Apple Catalyst on x86_64 @@ -340,7 +339,7 @@ target | std | host | notes [`x86_64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | x86_64 OpenHarmony | [`x86_64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 64-bit OpenBSD [`x86_64-uwp-windows-gnu`](platform-support/uwp_windows_gnu.md) | ✓ | | x86_64 Universal Windows Platform (UWP) apps using MinGW -[`x86_64-uwp-windows-msvc`](platform-support/uwp-windows-msvc.md) | ✓ | | x86_64 Universal Windows Platform (UWP) apps using MSVC +[`x86_64-uwp-windows-msvc`](platform-support/windows_msvc.md) | ✓ | | x86_64 Universal Windows Platform (UWP) apps using MSVC [`x86_64-wrs-vxworks`](platform-support/vxworks.md) | ? | | x86_64 VxWorks [`x86_64h-apple-darwin`](platform-support/x86_64h_apple_darwin.md) | ✓ | ✓ | macOS with late-gen Intel (at least Haswell) diff --git a/src/doc/rustc/src/platform-support/thumbv7a-pc-windows-msvc.md b/src/doc/rustc/src/platform-support/thumbv7a-pc-windows-msvc.md deleted file mode 100644 index ea06a6f881d7d..0000000000000 --- a/src/doc/rustc/src/platform-support/thumbv7a-pc-windows-msvc.md +++ /dev/null @@ -1,29 +0,0 @@ -# `thumbv7a-pc-windows-msvc` - -**Tier: 3** - -Thumb2-mode MSVC Windows - -## Target maintainers - -- Missing! - -## Requirements - -Missing! - -## Building the target - -Missing! - -## Building Rust programs - -Missing! - -## Testing - -Missing! - -## Cross-compilation toolchains and C code - -Missing! diff --git a/src/doc/rustc/src/platform-support/uwp-windows-msvc.md b/src/doc/rustc/src/platform-support/uwp-windows-msvc.md deleted file mode 100644 index da88e6041a126..0000000000000 --- a/src/doc/rustc/src/platform-support/uwp-windows-msvc.md +++ /dev/null @@ -1,34 +0,0 @@ -# `*-uwp-windows-msvc` - -**Tier: 3** - -Targets for Universal Windows Platform (UWP) apps using MSVC. - -- `aarch64-uwp-windows-msvc` -- `i686-uwp-windows-msvc` -- `thumbv7a-uwp-windows-msvc` -- `x86_64-uwp-windows-msvc` - -## Target maintainers - -- Missing! - -## Requirements - -Missing! - -## Building the target - -Missing! - -## Building Rust programs - -Missing! - -## Testing - -Missing! - -## Cross-compilation toolchains and C code - -Missing! diff --git a/src/doc/rustc/src/platform-support/windows_msvc.md b/src/doc/rustc/src/platform-support/windows_msvc.md new file mode 100644 index 0000000000000..6060b2abaa6b6 --- /dev/null +++ b/src/doc/rustc/src/platform-support/windows_msvc.md @@ -0,0 +1,40 @@ +# `*-{pc,uwp}-windows-msvc` + +Windows targets using MSVC + +| Target | Description | Tier | +| =========================== | ====================================== | ====================== | +| `i686-pc-windows-msvc` | 32-bit MSVC | Tier 1 with Host Tools | +| `x86_64-pc-windows-msvc` | 64-bit MSVC | Tier 1 with Host Tools | +| `aarch64-pc-windows-msvc` | ARM64 MSVC | Tier 2 with Host Tools | +| `i586-pc-windows-msvc` | 32-bit MSVC w/o SSE | Tier 2 | +| `aarch64-uwp-windows-msvc` | ARM64 Univeral Windows Platform | Tier 3 | +| `i686-uwp-windows-msvc` | x86 Universal Windows Platform | Tier 3 | +| `thumbv7a-pc-windows-msvc` | Thumb2-mode MSVC | Tier 3 | +| `thumbv7a-uwp-windows-msvc` | Thumb2-mode Universal Windows Platform | Tier 3 | +| `x86_64-uwp-windows-msvc` | x86_64 Universal Windows Platform | Tier 3 | + + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/aarch64_pc_windows_msvc.rs b/tests/assembly/targets/aarch64_pc_windows_msvc.rs new file mode 100644 index 0000000000000..12bb9cff87f36 --- /dev/null +++ b/tests/assembly/targets/aarch64_pc_windows_msvc.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-pc-windows-msvc +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/i586_pc_windows_msvc.rs b/tests/assembly/targets/i586_pc_windows_msvc.rs new file mode 100644 index 0000000000000..12bc5f078d99c --- /dev/null +++ b/tests/assembly/targets/i586_pc_windows_msvc.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i586-pc-windows-msvc +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/i686_pc_windows_msvc.rs b/tests/assembly/targets/i686_pc_windows_msvc.rs new file mode 100644 index 0000000000000..5a24fe989f091 --- /dev/null +++ b/tests/assembly/targets/i686_pc_windows_msvc.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i686-pc-windows-msvc +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/x86_64_pc_windows_msvc.rs b/tests/assembly/targets/x86_64_pc_windows_msvc.rs new file mode 100644 index 0000000000000..0bf35a5b6bc8b --- /dev/null +++ b/tests/assembly/targets/x86_64_pc_windows_msvc.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-pc-windows-msvc +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 2a223d3dc24d149f05fcfff573f331c7bc0d3e33 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 13:32:44 +0100 Subject: [PATCH 052/145] target compliance: i686-apple-darwin Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../src/platform-support/i686_apple_darwin.md | 29 +++++++++++++++++++ tests/assembly/targets/i686_apple_darwin.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/i686_apple_darwin.md create mode 100644 tests/assembly/targets/i686_apple_darwin.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 8e9cadb3dfb0f..346d637884c71 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -265,7 +265,7 @@ target | std | host | notes `hexagon-unknown-linux-musl` | ? | | `i386-apple-ios` | ✓ | | 32-bit x86 iOS [`i586-pc-nto-qnx700`](platform-support/nto-qnx.md) | * | | 32-bit x86 QNX Neutrino 7.0 RTOS | -`i686-apple-darwin` | ✓ | ✓ | 32-bit macOS (10.7+, Lion+) +[`i686-apple-darwin`](platform-support/i686_apple_darwin.md) | ✓ | ✓ | 32-bit macOS (10.7+, Lion+) [`i686-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | [`i686-unknown-haiku`](platform-support/haiku.md) | ✓ | ✓ | 32-bit Haiku [`i686-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD/i386 with SSE2 diff --git a/src/doc/rustc/src/platform-support/i686_apple_darwin.md b/src/doc/rustc/src/platform-support/i686_apple_darwin.md new file mode 100644 index 0000000000000..f6f879168060e --- /dev/null +++ b/src/doc/rustc/src/platform-support/i686_apple_darwin.md @@ -0,0 +1,29 @@ +# `i686-apple-darwin` + +**Tier: 3** + +32-bit macOS (10.7+, Lion+) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/i686_apple_darwin.rs b/tests/assembly/targets/i686_apple_darwin.rs new file mode 100644 index 0000000000000..981f536337b54 --- /dev/null +++ b/tests/assembly/targets/i686_apple_darwin.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i686-apple-darwin +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 2f962fbcc20ee4ac9aa6609161f4ce2cd32e6ae9 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 13:37:07 +0100 Subject: [PATCH 053/145] target compliance: i586-pc-nto-qnx700 Signed-off-by: David Wood --- tests/assembly/targets/i586_pc_nto_qnx700.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/i586_pc_nto_qnx700.rs diff --git a/tests/assembly/targets/i586_pc_nto_qnx700.rs b/tests/assembly/targets/i586_pc_nto_qnx700.rs new file mode 100644 index 0000000000000..8db532380be40 --- /dev/null +++ b/tests/assembly/targets/i586_pc_nto_qnx700.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i586-pc-nto-qnx700 +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 83b931d7a67602b89416904f44a093194bef2c02 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 13:39:07 +0100 Subject: [PATCH 054/145] target compliance: i386-apple-ios Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../src/platform-support/i386_apple_ios.md | 29 +++++++++++++++++++ tests/assembly/targets/i386_apple_ios.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/i386_apple_ios.md create mode 100644 tests/assembly/targets/i386_apple_ios.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 346d637884c71..41237d27f86c8 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -263,7 +263,7 @@ target | std | host | notes `bpfel-unknown-none` | * | | BPF (little endian) `csky-unknown-linux-gnuabiv2` | ✓ | | C-SKY abiv2 Linux(little endian) `hexagon-unknown-linux-musl` | ? | | -`i386-apple-ios` | ✓ | | 32-bit x86 iOS +[`i386-apple-ios`](platform-support/i386_apple_ios.md) | ✓ | | 32-bit x86 iOS [`i586-pc-nto-qnx700`](platform-support/nto-qnx.md) | * | | 32-bit x86 QNX Neutrino 7.0 RTOS | [`i686-apple-darwin`](platform-support/i686_apple_darwin.md) | ✓ | ✓ | 32-bit macOS (10.7+, Lion+) [`i686-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | diff --git a/src/doc/rustc/src/platform-support/i386_apple_ios.md b/src/doc/rustc/src/platform-support/i386_apple_ios.md new file mode 100644 index 0000000000000..290e2f8a0f236 --- /dev/null +++ b/src/doc/rustc/src/platform-support/i386_apple_ios.md @@ -0,0 +1,29 @@ +# `i386-apple-ios` + +**Tier: 3** + +32-bit x86 iOS + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/i386_apple_ios.rs b/tests/assembly/targets/i386_apple_ios.rs new file mode 100644 index 0000000000000..db49cf95cfc65 --- /dev/null +++ b/tests/assembly/targets/i386_apple_ios.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i386-apple-ios +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 006f459d8f5ad7b04331f587a4a0eab9d42023d3 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 13:42:39 +0100 Subject: [PATCH 055/145] target compliance: hexagon-unknown-linux-musl Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../hexagon_unknown_linux_musl.md | 29 +++++++++++++++++++ .../targets/hexagon_unknown_linux_musl.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/hexagon_unknown_linux_musl.md create mode 100644 tests/assembly/targets/hexagon_unknown_linux_musl.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 41237d27f86c8..3a893d92fdecb 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -262,7 +262,7 @@ target | std | host | notes `bpfeb-unknown-none` | * | | BPF (big endian) `bpfel-unknown-none` | * | | BPF (little endian) `csky-unknown-linux-gnuabiv2` | ✓ | | C-SKY abiv2 Linux(little endian) -`hexagon-unknown-linux-musl` | ? | | +[`hexagon-unknown-linux-musl`](platform-support/hexagon_unknown_linux_musl.md) | ? | | Hexagon Linux MUSL [`i386-apple-ios`](platform-support/i386_apple_ios.md) | ✓ | | 32-bit x86 iOS [`i586-pc-nto-qnx700`](platform-support/nto-qnx.md) | * | | 32-bit x86 QNX Neutrino 7.0 RTOS | [`i686-apple-darwin`](platform-support/i686_apple_darwin.md) | ✓ | ✓ | 32-bit macOS (10.7+, Lion+) diff --git a/src/doc/rustc/src/platform-support/hexagon_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/hexagon_unknown_linux_musl.md new file mode 100644 index 0000000000000..4b26e378293aa --- /dev/null +++ b/src/doc/rustc/src/platform-support/hexagon_unknown_linux_musl.md @@ -0,0 +1,29 @@ +# `hexagon-unknown-linux-musl` + +**Tier: 3** + +Hexagon Linux MUSL + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/hexagon_unknown_linux_musl.rs b/tests/assembly/targets/hexagon_unknown_linux_musl.rs new file mode 100644 index 0000000000000..ab19bc2ecdcb2 --- /dev/null +++ b/tests/assembly/targets/hexagon_unknown_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target hexagon-unknown-linux-musl +// needs-llvm-components: hexagon + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From d9f5fc5c48093762cb093b5045aefb49e03abe2d Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 13:49:11 +0100 Subject: [PATCH 056/145] target compliance: csky-unknown-linux-gnuabiv2 Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../targets/csky_unknown_linux_gnuabiv2.rs | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 tests/assembly/targets/csky_unknown_linux_gnuabiv2.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 3a893d92fdecb..67c797f509e1c 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -261,7 +261,7 @@ target | std | host | notes `avr-unknown-gnu-atmega328` | * | | AVR. Requires `-Z build-std=core` `bpfeb-unknown-none` | * | | BPF (big endian) `bpfel-unknown-none` | * | | BPF (little endian) -`csky-unknown-linux-gnuabiv2` | ✓ | | C-SKY abiv2 Linux(little endian) +[`csky-unknown-linux-gnuabiv2`](platform-support/csky-unknown-linux-gnuabiv2.md) | ✓ | | C-SKY abiv2 Linux (Little Endian) [`hexagon-unknown-linux-musl`](platform-support/hexagon_unknown_linux_musl.md) | ? | | Hexagon Linux MUSL [`i386-apple-ios`](platform-support/i386_apple_ios.md) | ✓ | | 32-bit x86 iOS [`i586-pc-nto-qnx700`](platform-support/nto-qnx.md) | * | | 32-bit x86 QNX Neutrino 7.0 RTOS | diff --git a/tests/assembly/targets/csky_unknown_linux_gnuabiv2.rs b/tests/assembly/targets/csky_unknown_linux_gnuabiv2.rs new file mode 100644 index 0000000000000..856ad90bc3cca --- /dev/null +++ b/tests/assembly/targets/csky_unknown_linux_gnuabiv2.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target csky-unknown-linux-gnuabiv2 +// needs-llvm-components: csky + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 814ea896ef9f378abfe71cca4c25d92e018aa412 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 13:54:08 +0100 Subject: [PATCH 057/145] target compliance: bpf Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- src/doc/rustc/src/platform-support/bpf.md | 29 ++++++++++++++++++++ tests/assembly/targets/bpfeb_unknown_none.rs | 17 ++++++++++++ tests/assembly/targets/bpfel_unknown_none.rs | 17 ++++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/bpf.md create mode 100644 tests/assembly/targets/bpfeb_unknown_none.rs create mode 100644 tests/assembly/targets/bpfel_unknown_none.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 67c797f509e1c..7192d0c43cee5 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -259,8 +259,8 @@ target | std | host | notes [`armv7k-apple-watchos`](platform-support/apple_watchos.md) | ✓ | | ARMv7-A Apple WatchOS `armv7s-apple-ios` | ✓ | | ARMv7-A Apple-A6 Apple iOS `avr-unknown-gnu-atmega328` | * | | AVR. Requires `-Z build-std=core` -`bpfeb-unknown-none` | * | | BPF (big endian) -`bpfel-unknown-none` | * | | BPF (little endian) +[`bpfeb-unknown-none`](platform-support/bpf.md) | * | | BPF (Big Endian) +[`bpfel-unknown-none`](platform-support/bpf.md) | * | | BPF (Little Endian) [`csky-unknown-linux-gnuabiv2`](platform-support/csky-unknown-linux-gnuabiv2.md) | ✓ | | C-SKY abiv2 Linux (Little Endian) [`hexagon-unknown-linux-musl`](platform-support/hexagon_unknown_linux_musl.md) | ? | | Hexagon Linux MUSL [`i386-apple-ios`](platform-support/i386_apple_ios.md) | ✓ | | 32-bit x86 iOS diff --git a/src/doc/rustc/src/platform-support/bpf.md b/src/doc/rustc/src/platform-support/bpf.md new file mode 100644 index 0000000000000..48a28b1dde852 --- /dev/null +++ b/src/doc/rustc/src/platform-support/bpf.md @@ -0,0 +1,29 @@ +# `bpf{eb,el}-unknown-none` + +**Tier: 3** + +BPF (big and little endian) + +## Target maintainers + +- [@alessandrod](https://github.com/alessandrod) + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/bpfeb_unknown_none.rs b/tests/assembly/targets/bpfeb_unknown_none.rs new file mode 100644 index 0000000000000..b7d4e1752f5c1 --- /dev/null +++ b/tests/assembly/targets/bpfeb_unknown_none.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target bpfeb-unknown-none +// needs-llvm-components: bpf + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/bpfel_unknown_none.rs b/tests/assembly/targets/bpfel_unknown_none.rs new file mode 100644 index 0000000000000..814b235d5a536 --- /dev/null +++ b/tests/assembly/targets/bpfel_unknown_none.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target bpfel-unknown-none +// needs-llvm-components: bpf + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 677fd515168e64666354ac07e1f98fc50944927e Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 13:56:45 +0100 Subject: [PATCH 058/145] target compliance: avr Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- src/doc/rustc/src/platform-support/avr.md | 29 +++++++++++++++++++ .../targets/avr_unknown_gnu_atmega328.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/avr.md create mode 100644 tests/assembly/targets/avr_unknown_gnu_atmega328.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 7192d0c43cee5..ff67338e01d25 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -258,7 +258,7 @@ target | std | host | notes `armv7a-none-eabihf` | * | | Bare ARMv7-A, hardfloat [`armv7k-apple-watchos`](platform-support/apple_watchos.md) | ✓ | | ARMv7-A Apple WatchOS `armv7s-apple-ios` | ✓ | | ARMv7-A Apple-A6 Apple iOS -`avr-unknown-gnu-atmega328` | * | | AVR. Requires `-Z build-std=core` +[`avr-unknown-gnu-atmega328`](platform-support/avr.md) | * | | AVR. Requires `-Z build-std=core` [`bpfeb-unknown-none`](platform-support/bpf.md) | * | | BPF (Big Endian) [`bpfel-unknown-none`](platform-support/bpf.md) | * | | BPF (Little Endian) [`csky-unknown-linux-gnuabiv2`](platform-support/csky-unknown-linux-gnuabiv2.md) | ✓ | | C-SKY abiv2 Linux (Little Endian) diff --git a/src/doc/rustc/src/platform-support/avr.md b/src/doc/rustc/src/platform-support/avr.md new file mode 100644 index 0000000000000..44730cd9541b7 --- /dev/null +++ b/src/doc/rustc/src/platform-support/avr.md @@ -0,0 +1,29 @@ +# `avr-unknown-gnu-atmega328` + +**Tier: 3** + +AVR + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/avr_unknown_gnu_atmega328.rs b/tests/assembly/targets/avr_unknown_gnu_atmega328.rs new file mode 100644 index 0000000000000..6f54edd2a7d66 --- /dev/null +++ b/tests/assembly/targets/avr_unknown_gnu_atmega328.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target avr-unknown-gnu-atmega328 +// needs-llvm-components: avr + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 27a3682bf7bfe87807ea73acce5cbf5c2701ff27 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 13:58:43 +0100 Subject: [PATCH 059/145] target compliance: armv7s-apple-ios Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../src/platform-support/armv7s_apple_ios.md | 29 +++++++++++++++++++ tests/assembly/targets/armv7s_apple_ios.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/armv7s_apple_ios.md create mode 100644 tests/assembly/targets/armv7s_apple_ios.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index ff67338e01d25..3f301cad7f630 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -257,7 +257,7 @@ target | std | host | notes [`armv7a-kmc-solid_asp3-eabihf`](platform-support/kmc-solid.md) | ✓ | | ARM SOLID with TOPPERS/ASP3, hardfloat `armv7a-none-eabihf` | * | | Bare ARMv7-A, hardfloat [`armv7k-apple-watchos`](platform-support/apple_watchos.md) | ✓ | | ARMv7-A Apple WatchOS -`armv7s-apple-ios` | ✓ | | ARMv7-A Apple-A6 Apple iOS +[`armv7s-apple-ios`](platform-support/applev7s-apple-ios.md) | ✓ | | ARMv7-A Apple-A6 Apple iOS [`avr-unknown-gnu-atmega328`](platform-support/avr.md) | * | | AVR. Requires `-Z build-std=core` [`bpfeb-unknown-none`](platform-support/bpf.md) | * | | BPF (Big Endian) [`bpfel-unknown-none`](platform-support/bpf.md) | * | | BPF (Little Endian) diff --git a/src/doc/rustc/src/platform-support/armv7s_apple_ios.md b/src/doc/rustc/src/platform-support/armv7s_apple_ios.md new file mode 100644 index 0000000000000..fc26fc1fd369b --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7s_apple_ios.md @@ -0,0 +1,29 @@ +# `armv7s-apple-ios` + +**Tier: 3** + +ARMv7-A Apple-A6 Apple iOS + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/armv7s_apple_ios.rs b/tests/assembly/targets/armv7s_apple_ios.rs new file mode 100644 index 0000000000000..7b17d1b78f349 --- /dev/null +++ b/tests/assembly/targets/armv7s_apple_ios.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7s-apple-ios +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 1d5921c41f9343117c525f8dbdfbbe9a73c5175d Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 14:02:47 +0100 Subject: [PATCH 060/145] target compliance: armv7a-none-eabihf Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../platform-support/armv7a_none_eabihf.md | 29 +++++++++++++++++++ tests/assembly/targets/armv7a_none_eabihf.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/armv7a_none_eabihf.md create mode 100644 tests/assembly/targets/armv7a_none_eabihf.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 3f301cad7f630..0ef7b17553d22 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -255,7 +255,7 @@ target | std | host | notes [`armv7-wrs-vxworks-eabihf`](platform-support/vxworks.md) | ? | | ARMv7-A VxWorks [`armv7a-kmc-solid_asp3-eabi`](platform-support/kmc-solid.md) | ✓ | | ARM SOLID with TOPPERS/ASP3 [`armv7a-kmc-solid_asp3-eabihf`](platform-support/kmc-solid.md) | ✓ | | ARM SOLID with TOPPERS/ASP3, hardfloat -`armv7a-none-eabihf` | * | | Bare ARMv7-A, hardfloat +[`armv7a-none-eabihf`](platform-support/armv7a_none_eabihf.md) | * | | Bare ARMv7-A, hardfloat [`armv7k-apple-watchos`](platform-support/apple_watchos.md) | ✓ | | ARMv7-A Apple WatchOS [`armv7s-apple-ios`](platform-support/applev7s-apple-ios.md) | ✓ | | ARMv7-A Apple-A6 Apple iOS [`avr-unknown-gnu-atmega328`](platform-support/avr.md) | * | | AVR. Requires `-Z build-std=core` diff --git a/src/doc/rustc/src/platform-support/armv7a_none_eabihf.md b/src/doc/rustc/src/platform-support/armv7a_none_eabihf.md new file mode 100644 index 0000000000000..ad7dc47713ced --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7a_none_eabihf.md @@ -0,0 +1,29 @@ +# `armv7a-none-eabihf` + +**Tier: 3** + +Bare ARMv7-A, hardfloat + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/armv7a_none_eabihf.rs b/tests/assembly/targets/armv7a_none_eabihf.rs new file mode 100644 index 0000000000000..5c301d933e92e --- /dev/null +++ b/tests/assembly/targets/armv7a_none_eabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7a-none-eabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 3232d012b198dc8a05d72a28edca459ce4c5d428 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 14:05:59 +0100 Subject: [PATCH 061/145] target compliance: {aarch64,armv7a}-kmc-solid_asp3{,-eabi,-eabihf} Signed-off-by: David Wood --- .../assembly/targets/aarch64_kmc_solid_asp3.rs | 17 +++++++++++++++++ .../targets/armv7a_kmc_solid_asp3_eabi.rs | 17 +++++++++++++++++ .../targets/armv7a_kmc_solid_asp3_eabihf.rs | 17 +++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 tests/assembly/targets/aarch64_kmc_solid_asp3.rs create mode 100644 tests/assembly/targets/armv7a_kmc_solid_asp3_eabi.rs create mode 100644 tests/assembly/targets/armv7a_kmc_solid_asp3_eabihf.rs diff --git a/tests/assembly/targets/aarch64_kmc_solid_asp3.rs b/tests/assembly/targets/aarch64_kmc_solid_asp3.rs new file mode 100644 index 0000000000000..1ec73c87ebfdb --- /dev/null +++ b/tests/assembly/targets/aarch64_kmc_solid_asp3.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-kmc-solid_asp3 +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/armv7a_kmc_solid_asp3_eabi.rs b/tests/assembly/targets/armv7a_kmc_solid_asp3_eabi.rs new file mode 100644 index 0000000000000..5da0f8d8c1297 --- /dev/null +++ b/tests/assembly/targets/armv7a_kmc_solid_asp3_eabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7a-kmc-solid_asp3-eabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/armv7a_kmc_solid_asp3_eabihf.rs b/tests/assembly/targets/armv7a_kmc_solid_asp3_eabihf.rs new file mode 100644 index 0000000000000..817c4c16f42b0 --- /dev/null +++ b/tests/assembly/targets/armv7a_kmc_solid_asp3_eabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7a-kmc-solid_asp3-eabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 65c2bbf0902251d7978e056dc2ca4fd1d1b7308b Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 14:09:05 +0100 Subject: [PATCH 062/145] target compliance: armv7-unknown-linux-uclibceabihf Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- ...f.md => armv7_unknown_linux_uclibceabihf.md} | 2 +- .../targets/armv7_unknown_linux_uclibceabihf.rs | 17 +++++++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) rename src/doc/rustc/src/platform-support/{armv7-unknown-linux-uclibceabihf.md => armv7_unknown_linux_uclibceabihf.md} (98%) create mode 100644 tests/assembly/targets/armv7_unknown_linux_uclibceabihf.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 0ef7b17553d22..2e89989705166 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -249,7 +249,7 @@ target | std | host | notes [`armv7-sony-vita-newlibeabihf`](platform-support/armv7-sony-vita-newlibeabihf.md) | ? | | ARMv7-A Cortex-A9 Sony PlayStation Vita (requires VITASDK toolchain) [`armv7-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | ARMv7-A OpenHarmony | [`armv7-unknown-linux-uclibceabi`](platform-support/armv7-unknown-linux-uclibceabi.md) | ✓ | ✓ | ARMv7-A Linux with uClibc, softfloat -[`armv7-unknown-linux-uclibceabihf`](platform-support/armv7-unknown-linux-uclibceabihf.md) | ✓ | ? | ARMv7-A Linux with uClibc, hardfloat +[`armv7-unknown-linux-uclibceabihf`](platform-support/armv7_unknown_linux_uclibceabihf.md) | ✓ | ? | ARMv7-A Linux with uClibc, hardfloat [`armv7-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARMv7-A FreeBSD [`armv7-unknown-netbsd-eabihf`](platform-support/netbsd.md) | ✓ | ✓ | ARMv7-A NetBSD w/hard-float [`armv7-wrs-vxworks-eabihf`](platform-support/vxworks.md) | ? | | ARMv7-A VxWorks diff --git a/src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabihf.md b/src/doc/rustc/src/platform-support/armv7_unknown_linux_uclibceabihf.md similarity index 98% rename from src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabihf.md rename to src/doc/rustc/src/platform-support/armv7_unknown_linux_uclibceabihf.md index 1f029406367a2..9b65e469582a7 100644 --- a/src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabihf.md +++ b/src/doc/rustc/src/platform-support/armv7_unknown_linux_uclibceabihf.md @@ -1,4 +1,4 @@ -# armv7-unknown-linux-uclibceabihf +# `armv7-unknown-linux-uclibceabihf` **Tier: 3** diff --git a/tests/assembly/targets/armv7_unknown_linux_uclibceabihf.rs b/tests/assembly/targets/armv7_unknown_linux_uclibceabihf.rs new file mode 100644 index 0000000000000..850da538a34ff --- /dev/null +++ b/tests/assembly/targets/armv7_unknown_linux_uclibceabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7-unknown-linux-uclibceabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 82bcc004b400c66612a7b4d8ad2a08b50d5be425 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 14:11:06 +0100 Subject: [PATCH 063/145] target compliance: armv7-unknown-linux-uclibceabi Signed-off-by: David Wood --- .../targets/armv7_unknown_linux_uclibceabi.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/armv7_unknown_linux_uclibceabi.rs diff --git a/tests/assembly/targets/armv7_unknown_linux_uclibceabi.rs b/tests/assembly/targets/armv7_unknown_linux_uclibceabi.rs new file mode 100644 index 0000000000000..d76d752e05261 --- /dev/null +++ b/tests/assembly/targets/armv7_unknown_linux_uclibceabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7-unknown-linux-uclibceabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 34cc90caac83ef298848341de06af516b3d5b5ba Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 14:19:20 +0100 Subject: [PATCH 064/145] target compliance: armv7-apple-ios Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../src/platform-support/armv7_apple_ios.md | 29 +++++++++++++++++++ tests/assembly/targets/armv7_apple_ios.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/armv7_apple_ios.md create mode 100644 tests/assembly/targets/armv7_apple_ios.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 2e89989705166..185c94ea4ba92 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -245,7 +245,7 @@ target | std | host | notes [`armv6-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARMv6 FreeBSD [`armv6-unknown-netbsd-eabihf`](platform-support/netbsd.md) | ✓ | ✓ | ARMv6 NetBSD w/hard-float [`armv6k-nintendo-3ds`](platform-support/armv6k-nintendo-3ds.md) | ? | | ARMv6K Nintendo 3DS, Horizon (Requires devkitARM toolchain) -`armv7-apple-ios` | ✓ | | ARMv7-A Cortex-A8 iOS +[`armv7-apple-ios`](platform-support/armv7_apple_ios.md) | ✓ | | ARMv7-A Cortex-A8 iOS [`armv7-sony-vita-newlibeabihf`](platform-support/armv7-sony-vita-newlibeabihf.md) | ? | | ARMv7-A Cortex-A9 Sony PlayStation Vita (requires VITASDK toolchain) [`armv7-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | ARMv7-A OpenHarmony | [`armv7-unknown-linux-uclibceabi`](platform-support/armv7-unknown-linux-uclibceabi.md) | ✓ | ✓ | ARMv7-A Linux with uClibc, softfloat diff --git a/src/doc/rustc/src/platform-support/armv7_apple_ios.md b/src/doc/rustc/src/platform-support/armv7_apple_ios.md new file mode 100644 index 0000000000000..2a400c3d6ec0d --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7_apple_ios.md @@ -0,0 +1,29 @@ +# `armv7-apple-ios` + +**Tier: 3** + +ARMv7-A Cortex-A8 iOS + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/armv7_apple_ios.rs b/tests/assembly/targets/armv7_apple_ios.rs new file mode 100644 index 0000000000000..4d59bbbff8be6 --- /dev/null +++ b/tests/assembly/targets/armv7_apple_ios.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7-apple-ios +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 901704494e32160c40947da0ad94163f709141ad Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 14:21:20 +0100 Subject: [PATCH 065/145] target compliance: armv6k-nintendo-3ds Signed-off-by: David Wood --- tests/assembly/targets/armv6k_nintendo_3ds.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/armv6k_nintendo_3ds.rs diff --git a/tests/assembly/targets/armv6k_nintendo_3ds.rs b/tests/assembly/targets/armv6k_nintendo_3ds.rs new file mode 100644 index 0000000000000..d4c928fc9c246 --- /dev/null +++ b/tests/assembly/targets/armv6k_nintendo_3ds.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv6k-nintendo-3ds +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From d7da6947d5b6fffd16c6eb52f2acbbac78873091 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 14:27:06 +0100 Subject: [PATCH 066/145] target compliance: armv5te-unknown-linux-uclibceabi Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../armv5te_unknown_linux_uclibceabi.md | 29 +++++++++++++++++++ .../armv5te_unknown_linux_uclibceabi.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/armv5te_unknown_linux_uclibceabi.md create mode 100644 tests/assembly/targets/armv5te_unknown_linux_uclibceabi.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 185c94ea4ba92..411199a9b4528 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -241,7 +241,7 @@ target | std | host | notes [`armv4t-none-eabi`](platform-support/armv4t-none-eabi.md) | * | | Bare ARMv4T `armv4t-unknown-linux-gnueabi` | ? | | ARMv4T Linux [`armv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | Bare ARMv5TE -`armv5te-unknown-linux-uclibceabi` | ? | | ARMv5TE Linux with uClibc +[`armv5te-unknown-linux-uclibceabi`](platform-support/armv5te_unknown_linux_uclibceabi.md) | ? | | ARMv5TE Linux with uClibc [`armv6-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARMv6 FreeBSD [`armv6-unknown-netbsd-eabihf`](platform-support/netbsd.md) | ✓ | ✓ | ARMv6 NetBSD w/hard-float [`armv6k-nintendo-3ds`](platform-support/armv6k-nintendo-3ds.md) | ? | | ARMv6K Nintendo 3DS, Horizon (Requires devkitARM toolchain) diff --git a/src/doc/rustc/src/platform-support/armv5te_unknown_linux_uclibceabi.md b/src/doc/rustc/src/platform-support/armv5te_unknown_linux_uclibceabi.md new file mode 100644 index 0000000000000..e1d3a58edfc3b --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv5te_unknown_linux_uclibceabi.md @@ -0,0 +1,29 @@ +# `armv5te-unknown-linux-uclibceabi` + +**Tier: 3** + +ARMv5TE Linux with uClibc + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/armv5te_unknown_linux_uclibceabi.rs b/tests/assembly/targets/armv5te_unknown_linux_uclibceabi.rs new file mode 100644 index 0000000000000..3ef2e8d27a538 --- /dev/null +++ b/tests/assembly/targets/armv5te_unknown_linux_uclibceabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv5te-unknown-linux-uclibceabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From cf81738dee9ba40691540bd76c389e6de7284cbc Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 14:31:20 +0100 Subject: [PATCH 067/145] target compliance: armv4t-unknown-linux-gnueabi Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../armv4t_unknown_linux_gnueabi.md | 29 +++++++++++++++++++ .../targets/armv4t_unknown_linux_gnueabi.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/armv4t_unknown_linux_gnueabi.md create mode 100644 tests/assembly/targets/armv4t_unknown_linux_gnueabi.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 411199a9b4528..0804daf817eea 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -239,7 +239,7 @@ target | std | host | notes [`arm64_32-apple-watchos`](platform-support/apple_watchos.md) | ✓ | | ARM Apple WatchOS 64-bit with 32-bit pointers [`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). [`armv4t-none-eabi`](platform-support/armv4t-none-eabi.md) | * | | Bare ARMv4T -`armv4t-unknown-linux-gnueabi` | ? | | ARMv4T Linux +[`armv4t-unknown-linux-gnueabi`](platform-support/armv4t_unknown_linux_gnueabi.md) | ? | | ARMv4T Linux [`armv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | Bare ARMv5TE [`armv5te-unknown-linux-uclibceabi`](platform-support/armv5te_unknown_linux_uclibceabi.md) | ? | | ARMv5TE Linux with uClibc [`armv6-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARMv6 FreeBSD diff --git a/src/doc/rustc/src/platform-support/armv4t_unknown_linux_gnueabi.md b/src/doc/rustc/src/platform-support/armv4t_unknown_linux_gnueabi.md new file mode 100644 index 0000000000000..0aa0f59a79965 --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv4t_unknown_linux_gnueabi.md @@ -0,0 +1,29 @@ +# `armv4t-unknown-linux-gnueabi` + +**Tier: 3** + +ARMv4T Linux + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/armv4t_unknown_linux_gnueabi.rs b/tests/assembly/targets/armv4t_unknown_linux_gnueabi.rs new file mode 100644 index 0000000000000..f58673a51dc2c --- /dev/null +++ b/tests/assembly/targets/armv4t_unknown_linux_gnueabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv4t-unknown-linux-gnueabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 023764c15740d11ffbac98c54ed55750e07bf83f Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 14:34:10 +0100 Subject: [PATCH 068/145] target compliance: armeb-unknown-linux-gnueabi Signed-off-by: David Wood --- .../targets/armeb_unknown_linux_gnueabi.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/armeb_unknown_linux_gnueabi.rs diff --git a/tests/assembly/targets/armeb_unknown_linux_gnueabi.rs b/tests/assembly/targets/armeb_unknown_linux_gnueabi.rs new file mode 100644 index 0000000000000..6b78877a6f628 --- /dev/null +++ b/tests/assembly/targets/armeb_unknown_linux_gnueabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armeb-unknown-linux-gnueabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 57473bbc68859a376abdbc5a0c939fed8cef05ba Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 14:41:37 +0100 Subject: [PATCH 069/145] target compliance: aarch64_be-unknown-linux-gnu{,_ilp32} Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- .../aarch64_be_unknown_linux_gnu.md | 29 +++++++++++++++++++ .../aarch64_be_unknown_linux_gnu_ilp32.md | 29 +++++++++++++++++++ .../targets/aarch64_be_unknown_linux_gnu.rs | 17 +++++++++++ .../aarch64_be_unknown_linux_gnu_ilp32.rs | 17 +++++++++++ 5 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/aarch64_be_unknown_linux_gnu.md create mode 100644 src/doc/rustc/src/platform-support/aarch64_be_unknown_linux_gnu_ilp32.md create mode 100644 tests/assembly/targets/aarch64_be_unknown_linux_gnu.rs create mode 100644 tests/assembly/targets/aarch64_be_unknown_linux_gnu_ilp32.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 0804daf817eea..e5fb26eae8525 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -233,8 +233,8 @@ target | std | host | notes `aarch64-unknown-redox` | ? | | ARM64 Redox OS [`aarch64-uwp-windows-msvc`](platform-support/windows_msvc.md) | ? | | ARM64 Universal Windows Platform (UWP) apps using MSVC [`aarch64-wrs-vxworks`](platform-support/vxworks.md) | ? | | ARM64 VxWorks -`aarch64_be-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (big-endian, ILP32 ABI) -`aarch64_be-unknown-linux-gnu` | ✓ | ✓ | ARM64 Linux (big-endian) +[`aarch64_be-unknown-linux-gnu_ilp32`](platform-support/aarch64_be-unknown-linux-gnu-ilp32.md) | ✓ | ✓ | ARM64 Linux (Big Endian, ILP32 ABI) +[`aarch64_be-unknown-linux-gnu`](platform-support/aarch64_be_unknown_linux_gnu.md) | ✓ | ✓ | ARM64 Linux (Big Endian) [`aarch64_be-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | ARM64 NetBSD (big-endian) [`arm64_32-apple-watchos`](platform-support/apple_watchos.md) | ✓ | | ARM Apple WatchOS 64-bit with 32-bit pointers [`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). diff --git a/src/doc/rustc/src/platform-support/aarch64_be_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/aarch64_be_unknown_linux_gnu.md new file mode 100644 index 0000000000000..386ab09a84fe7 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_be_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `aarch64_be-unknown-linux-gnu` + +**Tier: 3** + +ARM64 Linux (Big Endian) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/src/doc/rustc/src/platform-support/aarch64_be_unknown_linux_gnu_ilp32.md b/src/doc/rustc/src/platform-support/aarch64_be_unknown_linux_gnu_ilp32.md new file mode 100644 index 0000000000000..2fae891dfa642 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_be_unknown_linux_gnu_ilp32.md @@ -0,0 +1,29 @@ +# `aarch64_be-unknown-linux-gnu_ilp32` + +**Tier: 3** + +ARM32 Linux (Big Endian, ILP32 ABI) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/aarch64_be_unknown_linux_gnu.rs b/tests/assembly/targets/aarch64_be_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..4fb00eaa875b9 --- /dev/null +++ b/tests/assembly/targets/aarch64_be_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64_be-unknown-linux-gnu +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/aarch64_be_unknown_linux_gnu_ilp32.rs b/tests/assembly/targets/aarch64_be_unknown_linux_gnu_ilp32.rs new file mode 100644 index 0000000000000..b15bb28a64a2d --- /dev/null +++ b/tests/assembly/targets/aarch64_be_unknown_linux_gnu_ilp32.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64_be-unknown-linux-gnu_ilp32 +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From a5fa026c74a8263a77d6f329bc74ef92bd448ef2 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 14:45:45 +0100 Subject: [PATCH 070/145] target compliance: aarch64-unknown-redox Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../platform-support/aarch64_unknown_redox.md | 29 +++++++++++++++++++ .../assembly/targets/aarch64_unknown_redox.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/aarch64_unknown_redox.md create mode 100644 tests/assembly/targets/aarch64_unknown_redox.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index e5fb26eae8525..305d92e2e80d0 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -230,7 +230,7 @@ target | std | host | notes `aarch64-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (ILP32 ABI) [`aarch64-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | ARM64 NetBSD [`aarch64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | ARM64 OpenBSD -`aarch64-unknown-redox` | ? | | ARM64 Redox OS +[`aarch64-unknown-redox`](platform-support/aarch64_unknown_redox.md) | ? | | ARM64 Redox OS [`aarch64-uwp-windows-msvc`](platform-support/windows_msvc.md) | ? | | ARM64 Universal Windows Platform (UWP) apps using MSVC [`aarch64-wrs-vxworks`](platform-support/vxworks.md) | ? | | ARM64 VxWorks [`aarch64_be-unknown-linux-gnu_ilp32`](platform-support/aarch64_be-unknown-linux-gnu-ilp32.md) | ✓ | ✓ | ARM64 Linux (Big Endian, ILP32 ABI) diff --git a/src/doc/rustc/src/platform-support/aarch64_unknown_redox.md b/src/doc/rustc/src/platform-support/aarch64_unknown_redox.md new file mode 100644 index 0000000000000..8cdb6883f0819 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_unknown_redox.md @@ -0,0 +1,29 @@ +# `aarch64-unknown-redox` + +**Tier: 3** + +ARM64 Redox OS + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/aarch64_unknown_redox.rs b/tests/assembly/targets/aarch64_unknown_redox.rs new file mode 100644 index 0000000000000..12718e7d863cf --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_redox.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-redox +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From f66038f20072d0d28f6adc0abfc3bd42621b4b71 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 14:48:34 +0100 Subject: [PATCH 071/145] target compliance: aarch64-unknown-linux-gnu_ilp32 Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../aarch64_unknown_linux_gnu_ilp32.md | 29 +++++++++++++++++++ .../aarch64_unknown_linux_gnu_ilp32.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/aarch64_unknown_linux_gnu_ilp32.md create mode 100644 tests/assembly/targets/aarch64_unknown_linux_gnu_ilp32.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 305d92e2e80d0..f5a4c05b1ddf6 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -227,7 +227,7 @@ target | std | host | notes [`aarch64-unknown-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | ARM64 QNX Neutrino 7.1 RTOS | [`aarch64-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARM64 FreeBSD [`aarch64-unknown-hermit`](platform-support/hermit.md) | ✓ | | ARM64 Hermit -`aarch64-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (ILP32 ABI) +[`aarch64-unknown-linux-gnu_ilp32`](platform-support/aarch64_unknown_linux_gnu_ilp32.md) | ✓ | ✓ | ARM64 Linux (ILP32 ABI) [`aarch64-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | ARM64 NetBSD [`aarch64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | ARM64 OpenBSD [`aarch64-unknown-redox`](platform-support/aarch64_unknown_redox.md) | ? | | ARM64 Redox OS diff --git a/src/doc/rustc/src/platform-support/aarch64_unknown_linux_gnu_ilp32.md b/src/doc/rustc/src/platform-support/aarch64_unknown_linux_gnu_ilp32.md new file mode 100644 index 0000000000000..916c9a00c2a63 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_unknown_linux_gnu_ilp32.md @@ -0,0 +1,29 @@ +# `aarch64-unknown-linux-gnu_ilp32` + +**Tier: 3** + +ARM64 Linux (ILP32 ABI) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/aarch64_unknown_linux_gnu_ilp32.rs b/tests/assembly/targets/aarch64_unknown_linux_gnu_ilp32.rs new file mode 100644 index 0000000000000..1ee583e24158b --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_linux_gnu_ilp32.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-linux-gnu_ilp32 +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 439559bc8dec95e099f89fa2ea0d3bb3d86e5d15 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 14:49:52 +0100 Subject: [PATCH 072/145] target compliance: aarch64-unknown-nto-qnx710 Signed-off-by: David Wood --- .../targets/aarch64_unknown_nto_qnx710.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/aarch64_unknown_nto_qnx710.rs diff --git a/tests/assembly/targets/aarch64_unknown_nto_qnx710.rs b/tests/assembly/targets/aarch64_unknown_nto_qnx710.rs new file mode 100644 index 0000000000000..83ae50e6a53b0 --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_nto_qnx710.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-nto-qnx710 +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 11d64081134dee1a83ca5255d88bd5bd1f1d58e9 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 15:33:14 +0100 Subject: [PATCH 073/145] target compliance: aarch64-unknown-teeos Signed-off-by: David Wood --- tests/assembly/targets/aarch64_unknown_teeos.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/aarch64_unknown_teeos.rs diff --git a/tests/assembly/targets/aarch64_unknown_teeos.rs b/tests/assembly/targets/aarch64_unknown_teeos.rs new file mode 100644 index 0000000000000..99c3504f5917c --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_teeos.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-teeos +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 4e88447c39ae27e8a176802daeacc9c77625ff34 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 15:35:07 +0100 Subject: [PATCH 074/145] target compliance: aarch64-pc-windows-gnullvm Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../targets/aarch64_pc_windows_gnullvm.rs | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 tests/assembly/targets/aarch64_pc_windows_gnullvm.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index f5a4c05b1ddf6..6a65524c6ed59 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -221,7 +221,7 @@ target | std | host | notes [`aarch64-apple-watchos-sim`](platform-support/apple_watchos.md) | ✓ | | ARM64 Apple WatchOS Simulator [`aarch64-kmc-solid_asp3`](platform-support/kmc-solid.md) | ✓ | | ARM64 SOLID with TOPPERS/ASP3 [`aarch64-nintendo-switch-freestanding`](platform-support/aarch64-nintendo-switch-freestanding.md) | * | | ARM64 Nintendo Switch, Horizon -[`aarch64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | +[`aarch64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | ARM64 Windows using UCRT and LLVM [`aarch64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | ARM64 OpenHarmony | [`aarch64-unknown-teeos`](platform-support/aarch64-unknown-teeos.md) | ? | | ARM64 TEEOS | [`aarch64-unknown-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | ARM64 QNX Neutrino 7.1 RTOS | diff --git a/tests/assembly/targets/aarch64_pc_windows_gnullvm.rs b/tests/assembly/targets/aarch64_pc_windows_gnullvm.rs new file mode 100644 index 0000000000000..6bfdc432a1cbd --- /dev/null +++ b/tests/assembly/targets/aarch64_pc_windows_gnullvm.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-pc-windows-gnullvm +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 2fcadaae7f2627e363572a694d23ddcfdbabc642 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 15:36:10 +0100 Subject: [PATCH 075/145] target compliance: aarch64-nintendo-switch-freestanding Signed-off-by: David Wood --- .../aarch64_nintendo_switch_freestanding.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/aarch64_nintendo_switch_freestanding.rs diff --git a/tests/assembly/targets/aarch64_nintendo_switch_freestanding.rs b/tests/assembly/targets/aarch64_nintendo_switch_freestanding.rs new file mode 100644 index 0000000000000..7d66e662dc0f6 --- /dev/null +++ b/tests/assembly/targets/aarch64_nintendo_switch_freestanding.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-nintendo-switch-freestanding +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 818f33569c942a59c34897714fc92a435484ed54 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 16:20:21 +0100 Subject: [PATCH 076/145] target compliance: x86_64-unknown-uefi Signed-off-by: David Wood --- tests/assembly/targets/x86_64_unknown_uefi.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/x86_64_unknown_uefi.rs diff --git a/tests/assembly/targets/x86_64_unknown_uefi.rs b/tests/assembly/targets/x86_64_unknown_uefi.rs new file mode 100644 index 0000000000000..6c1c367d3e94d --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_uefi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-uefi +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 46f63bdaaa20135b71ba94d8665f77eac48509d4 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 16:22:22 +0100 Subject: [PATCH 077/145] target compliance: x86_64-unknown-redox Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../platform-support/x86_64_unknown_redox.md | 29 +++++++++++++++++++ .../assembly/targets/x86_64_unknown_redox.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/x86_64_unknown_redox.md create mode 100644 tests/assembly/targets/x86_64_unknown_redox.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 6a65524c6ed59..fe731c374ace2 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -190,7 +190,7 @@ target | std | notes `x86_64-pc-solaris` | ✓ | 64-bit Solaris 10/11, illumos `x86_64-unknown-linux-gnux32` | ✓ | 64-bit Linux (x32 ABI) (kernel 4.15, glibc 2.27) [`x86_64-unknown-none`](platform-support/x86_64-unknown-none.md) | * | Freestanding/bare-metal x86_64, softfloat -`x86_64-unknown-redox` | ✓ | Redox OS +[`x86_64-unknown-redox`](platform-support/x86_64_unknown_redox.md) | ✓ | Redox OS [`x86_64-unknown-uefi`](platform-support/unknown-uefi.md) | * | 64-bit UEFI [Fortanix ABI]: https://edp.fortanix.com/ diff --git a/src/doc/rustc/src/platform-support/x86_64_unknown_redox.md b/src/doc/rustc/src/platform-support/x86_64_unknown_redox.md new file mode 100644 index 0000000000000..385a33ef66570 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_unknown_redox.md @@ -0,0 +1,29 @@ +# `x86_64-unknown-redox` + +**Tier: 2** + +x86_64 Redox OS + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/x86_64_unknown_redox.rs b/tests/assembly/targets/x86_64_unknown_redox.rs new file mode 100644 index 0000000000000..fe89512505d1e --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_redox.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-redox +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 387d4fbf9e3f5aeb80f59181ba83fc12b09d5d9d Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 16:24:16 +0100 Subject: [PATCH 078/145] target compliance: x86_64-unknown-none Signed-off-by: David Wood --- tests/assembly/targets/x86_64_unknown_none.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/x86_64_unknown_none.rs diff --git a/tests/assembly/targets/x86_64_unknown_none.rs b/tests/assembly/targets/x86_64_unknown_none.rs new file mode 100644 index 0000000000000..08651ccfa8f43 --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_none.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-none +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 074dec8cfdfa6e7a317bb0eebab05c4fe23de066 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 16:27:33 +0100 Subject: [PATCH 079/145] target compliance: x86_64-unknown-linux-gnux32 Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../x86_64_unknown_linux_gnux32.md | 29 +++++++++++++++++++ .../targets/x86_64_unknown_linux_gnux32.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/x86_64_unknown_linux_gnux32.md create mode 100644 tests/assembly/targets/x86_64_unknown_linux_gnux32.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index fe731c374ace2..06be2f9295a04 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -188,7 +188,7 @@ target | std | notes [`x86_64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | 64-bit x86 Fuchsia [`x86_64-linux-android`](platform-support/android.md) | ✓ | 64-bit x86 Android `x86_64-pc-solaris` | ✓ | 64-bit Solaris 10/11, illumos -`x86_64-unknown-linux-gnux32` | ✓ | 64-bit Linux (x32 ABI) (kernel 4.15, glibc 2.27) +[`x86_64-unknown-linux-gnux32`](platform-support/x86_64_unknown_linux_gnux32.md) | ✓ | 64-bit Linux (x32 ABI) (kernel 4.15, glibc 2.27) [`x86_64-unknown-none`](platform-support/x86_64-unknown-none.md) | * | Freestanding/bare-metal x86_64, softfloat [`x86_64-unknown-redox`](platform-support/x86_64_unknown_redox.md) | ✓ | Redox OS [`x86_64-unknown-uefi`](platform-support/unknown-uefi.md) | * | 64-bit UEFI diff --git a/src/doc/rustc/src/platform-support/x86_64_unknown_linux_gnux32.md b/src/doc/rustc/src/platform-support/x86_64_unknown_linux_gnux32.md new file mode 100644 index 0000000000000..667fa1e971274 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_unknown_linux_gnux32.md @@ -0,0 +1,29 @@ +# `x86_64-unknown-linux-gnux32` + +**Tier: 2** + +64-bit Linux (x32 ABI) (Kernel 4.15, glibc 2.27) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/x86_64_unknown_linux_gnux32.rs b/tests/assembly/targets/x86_64_unknown_linux_gnux32.rs new file mode 100644 index 0000000000000..e9b7b29dca300 --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_linux_gnux32.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-linux-gnux32 +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 61afec916d683ac11ff5a00e9be50638b006d710 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 16:28:59 +0100 Subject: [PATCH 080/145] target compliance: x86_64-pc-solaris Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../src/platform-support/x86_64_pc_solaris.md | 29 +++++++++++++++++++ tests/assembly/targets/x86_64_pc_solaris.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/x86_64_pc_solaris.md create mode 100644 tests/assembly/targets/x86_64_pc_solaris.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 06be2f9295a04..42f5e98bfb785 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -187,7 +187,7 @@ target | std | notes [`x86_64-fuchsia`](platform-support/fuchsia.md) | ✓ | Alias for `x86_64-unknown-fuchsia` [`x86_64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | 64-bit x86 Fuchsia [`x86_64-linux-android`](platform-support/android.md) | ✓ | 64-bit x86 Android -`x86_64-pc-solaris` | ✓ | 64-bit Solaris 10/11, illumos +[`x86_64-pc-solaris`](platform-support/x86_64_pc_solaris.md) | ✓ | 64-bit Solaris 10/11, illumos [`x86_64-unknown-linux-gnux32`](platform-support/x86_64_unknown_linux_gnux32.md) | ✓ | 64-bit Linux (x32 ABI) (kernel 4.15, glibc 2.27) [`x86_64-unknown-none`](platform-support/x86_64-unknown-none.md) | * | Freestanding/bare-metal x86_64, softfloat [`x86_64-unknown-redox`](platform-support/x86_64_unknown_redox.md) | ✓ | Redox OS diff --git a/src/doc/rustc/src/platform-support/x86_64_pc_solaris.md b/src/doc/rustc/src/platform-support/x86_64_pc_solaris.md new file mode 100644 index 0000000000000..0912f42cb55b4 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_pc_solaris.md @@ -0,0 +1,29 @@ +# `x86_64-pc-solaris` + +**Tier: 2** + +64-bit Solaris 10/11, illumos + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/x86_64_pc_solaris.rs b/tests/assembly/targets/x86_64_pc_solaris.rs new file mode 100644 index 0000000000000..44f87de0556fd --- /dev/null +++ b/tests/assembly/targets/x86_64_pc_solaris.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-pc-solaris +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From d800c858f6d45dda06f379c7746befc05d98ebdc Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 16:30:59 +0100 Subject: [PATCH 081/145] target compliance: x86_64-linux-android Signed-off-by: David Wood --- tests/assembly/targets/x86_64_linux_android.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/x86_64_linux_android.rs diff --git a/tests/assembly/targets/x86_64_linux_android.rs b/tests/assembly/targets/x86_64_linux_android.rs new file mode 100644 index 0000000000000..0f060fcf09f61 --- /dev/null +++ b/tests/assembly/targets/x86_64_linux_android.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-linux-android +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From cd171c6db137aba59b6404376773067e3aa4bf9f Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 16:32:21 +0100 Subject: [PATCH 082/145] target compliance: x86_64-fortanix-unknown-sgx Signed-off-by: David Wood --- .../targets/x86_64_fortanix_unknown_sgx.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/x86_64_fortanix_unknown_sgx.rs diff --git a/tests/assembly/targets/x86_64_fortanix_unknown_sgx.rs b/tests/assembly/targets/x86_64_fortanix_unknown_sgx.rs new file mode 100644 index 0000000000000..81ca26d8dc085 --- /dev/null +++ b/tests/assembly/targets/x86_64_fortanix_unknown_sgx.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-fortanix-unknown-sgx +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 1007b1ea4308c591e9652884570eca6f399b8dc1 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 16:34:48 +0100 Subject: [PATCH 083/145] target compliance: x86_64-apple-ios Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../src/platform-support/x86_64_apple_ios.md | 29 +++++++++++++++++++ tests/assembly/targets/x86_64_apple_ios.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/x86_64_apple_ios.md create mode 100644 tests/assembly/targets/x86_64_apple_ios.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 42f5e98bfb785..52efdb1c5fa42 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -182,7 +182,7 @@ target | std | notes `wasm32-unknown-unknown` | ✓ | WebAssembly `wasm32-wasi` | ✓ | WebAssembly with WASI [`wasm32-wasi-preview1-threads`](platform-support/wasm32-wasi-preview1-threads.md) | ✓ | | WebAssembly with WASI Preview 1 and threads -`x86_64-apple-ios` | ✓ | 64-bit x86 iOS +[`x86_64-apple-ios`](platform-support/x86_64_apple_ios.md) | ✓ | 64-bit x86 iOS [`x86_64-fortanix-unknown-sgx`](platform-support/x86_64-fortanix-unknown-sgx.md) | ✓ | [Fortanix ABI] for 64-bit Intel SGX [`x86_64-fuchsia`](platform-support/fuchsia.md) | ✓ | Alias for `x86_64-unknown-fuchsia` [`x86_64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | 64-bit x86 Fuchsia diff --git a/src/doc/rustc/src/platform-support/x86_64_apple_ios.md b/src/doc/rustc/src/platform-support/x86_64_apple_ios.md new file mode 100644 index 0000000000000..ab7167a9cb65a --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_apple_ios.md @@ -0,0 +1,29 @@ +# `x86_64-apple-ios` + +**Tier: 2** + +64-bit x86 iOS + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/x86_64_apple_ios.rs b/tests/assembly/targets/x86_64_apple_ios.rs new file mode 100644 index 0000000000000..b1e0c46bb8c7e --- /dev/null +++ b/tests/assembly/targets/x86_64_apple_ios.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-apple-ios +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 1398375b0d4ad8ef4f1f450118f3d6597822c948 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 16:38:05 +0100 Subject: [PATCH 084/145] target compliance: wasm32-wasi Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../rustc/src/platform-support/wasm32_wasi.md | 29 +++++++++++++++++++ tests/assembly/targets/wasm32_wasi.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/wasm32_wasi.md create mode 100644 tests/assembly/targets/wasm32_wasi.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 52efdb1c5fa42..614564db2808d 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -180,7 +180,7 @@ target | std | notes `thumbv8m.main-none-eabihf` | * | Bare ARMv8-M Mainline, hardfloat `wasm32-unknown-emscripten` | ✓ | WebAssembly via Emscripten `wasm32-unknown-unknown` | ✓ | WebAssembly -`wasm32-wasi` | ✓ | WebAssembly with WASI +[`wasm32-wasi`](platform-support/wasm32_wasi.md) | ✓ | WebAssembly with WASI [`wasm32-wasi-preview1-threads`](platform-support/wasm32-wasi-preview1-threads.md) | ✓ | | WebAssembly with WASI Preview 1 and threads [`x86_64-apple-ios`](platform-support/x86_64_apple_ios.md) | ✓ | 64-bit x86 iOS [`x86_64-fortanix-unknown-sgx`](platform-support/x86_64-fortanix-unknown-sgx.md) | ✓ | [Fortanix ABI] for 64-bit Intel SGX diff --git a/src/doc/rustc/src/platform-support/wasm32_wasi.md b/src/doc/rustc/src/platform-support/wasm32_wasi.md new file mode 100644 index 0000000000000..fe86af4157195 --- /dev/null +++ b/src/doc/rustc/src/platform-support/wasm32_wasi.md @@ -0,0 +1,29 @@ +# `wasm32-wasi` + +**Tier: 2** + +WebAssembly with WASI + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/wasm32_wasi.rs b/tests/assembly/targets/wasm32_wasi.rs new file mode 100644 index 0000000000000..87c89ee518f0f --- /dev/null +++ b/tests/assembly/targets/wasm32_wasi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target wasm32-wasi +// needs-llvm-components: webassembly + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From a6fe718bfcfa865fa2142a5b4c9a16cc5fa4ea1d Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 16:51:14 +0100 Subject: [PATCH 085/145] target compliance: wasm32-unknown-unknown Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../wasm32_unknown_unknown.md | 29 +++++++++++++++++++ .../targets/wasm32_unknown_unknown.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/wasm32_unknown_unknown.md create mode 100644 tests/assembly/targets/wasm32_unknown_unknown.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 614564db2808d..d9b29b1c76df4 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -179,7 +179,7 @@ target | std | notes `thumbv8m.main-none-eabi` | * | Bare ARMv8-M Mainline `thumbv8m.main-none-eabihf` | * | Bare ARMv8-M Mainline, hardfloat `wasm32-unknown-emscripten` | ✓ | WebAssembly via Emscripten -`wasm32-unknown-unknown` | ✓ | WebAssembly +[`wasm32-unknown-unknown`](platform-support/wasm32_unknown_unknown.md) | ✓ | WebAssembly [`wasm32-wasi`](platform-support/wasm32_wasi.md) | ✓ | WebAssembly with WASI [`wasm32-wasi-preview1-threads`](platform-support/wasm32-wasi-preview1-threads.md) | ✓ | | WebAssembly with WASI Preview 1 and threads [`x86_64-apple-ios`](platform-support/x86_64_apple_ios.md) | ✓ | 64-bit x86 iOS diff --git a/src/doc/rustc/src/platform-support/wasm32_unknown_unknown.md b/src/doc/rustc/src/platform-support/wasm32_unknown_unknown.md new file mode 100644 index 0000000000000..6fdf78ba977d9 --- /dev/null +++ b/src/doc/rustc/src/platform-support/wasm32_unknown_unknown.md @@ -0,0 +1,29 @@ +# `wasm32-unknown-unknown` + +**Tier: 2** + +WebAssembly + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/wasm32_unknown_unknown.rs b/tests/assembly/targets/wasm32_unknown_unknown.rs new file mode 100644 index 0000000000000..c708ec76a8075 --- /dev/null +++ b/tests/assembly/targets/wasm32_unknown_unknown.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target wasm32-unknown-unknown +// needs-llvm-components: webassembly + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From ff99f86070b97fbfd5137653df7b053f747bed8d Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 11 Sep 2023 16:52:23 +0100 Subject: [PATCH 086/145] target compliance: wasm32-unknown-emscripten Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../wasm32_unknown_emscripten.md | 29 +++++++++++++++++++ .../targets/wasm32_unknown_emscripten.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/wasm32_unknown_emscripten.md create mode 100644 tests/assembly/targets/wasm32_unknown_emscripten.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index d9b29b1c76df4..647bc8890377b 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -178,7 +178,7 @@ target | std | notes `thumbv8m.base-none-eabi` | * | Bare ARMv8-M Baseline `thumbv8m.main-none-eabi` | * | Bare ARMv8-M Mainline `thumbv8m.main-none-eabihf` | * | Bare ARMv8-M Mainline, hardfloat -`wasm32-unknown-emscripten` | ✓ | WebAssembly via Emscripten +[`wasm32-unknown-emscripten`](platform-support/wasm32_unknown_emscripten.md) | ✓ | WebAssembly via Emscripten [`wasm32-unknown-unknown`](platform-support/wasm32_unknown_unknown.md) | ✓ | WebAssembly [`wasm32-wasi`](platform-support/wasm32_wasi.md) | ✓ | WebAssembly with WASI [`wasm32-wasi-preview1-threads`](platform-support/wasm32-wasi-preview1-threads.md) | ✓ | | WebAssembly with WASI Preview 1 and threads diff --git a/src/doc/rustc/src/platform-support/wasm32_unknown_emscripten.md b/src/doc/rustc/src/platform-support/wasm32_unknown_emscripten.md new file mode 100644 index 0000000000000..eae26ef97fefa --- /dev/null +++ b/src/doc/rustc/src/platform-support/wasm32_unknown_emscripten.md @@ -0,0 +1,29 @@ +# `wasm32-unknown-emscripten` + +**Tier: 2** + +WebAssembly via Emscripten + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/wasm32_unknown_emscripten.rs b/tests/assembly/targets/wasm32_unknown_emscripten.rs new file mode 100644 index 0000000000000..fb809fc7d236d --- /dev/null +++ b/tests/assembly/targets/wasm32_unknown_emscripten.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target wasm32-unknown-emscripten +// needs-llvm-components: webassembly + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 2dd9844f1cc996b3af3d331cf4bbdf271367e9a7 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 10:56:18 +0100 Subject: [PATCH 087/145] target compliance: thumbv8m.main-none-eabi{,hf} Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- .../src/platform-support/thumbv8m.main.md | 29 +++++++++++++++++++ .../targets/thumbv8m_main_none_eabi.rs | 18 ++++++++++++ .../targets/thumbv8m_main_none_eabihf.rs | 18 ++++++++++++ 4 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/thumbv8m.main.md create mode 100644 tests/assembly/targets/thumbv8m_main_none_eabi.rs create mode 100644 tests/assembly/targets/thumbv8m_main_none_eabihf.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 647bc8890377b..7fddcf5160301 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -176,8 +176,8 @@ target | std | notes [`thumbv7neon-linux-androideabi`](platform-support/android.md) | ✓ | Thumb2-mode ARMv7-A Android with NEON `thumbv7neon-unknown-linux-gnueabihf` | ✓ | Thumb2-mode ARMv7-A Linux with NEON (kernel 4.4, glibc 2.23) `thumbv8m.base-none-eabi` | * | Bare ARMv8-M Baseline -`thumbv8m.main-none-eabi` | * | Bare ARMv8-M Mainline -`thumbv8m.main-none-eabihf` | * | Bare ARMv8-M Mainline, hardfloat +[`thumbv8m.main-none-eabi`](platform-support/thumbv8m.main.md) | * | Bare ARMv8-M Mainline +[`thumbv8m.main-none-eabihf`](platform-support/thumbv8m.main.md) | * | Bare ARMv8-M Mainline, hardfloat [`wasm32-unknown-emscripten`](platform-support/wasm32_unknown_emscripten.md) | ✓ | WebAssembly via Emscripten [`wasm32-unknown-unknown`](platform-support/wasm32_unknown_unknown.md) | ✓ | WebAssembly [`wasm32-wasi`](platform-support/wasm32_wasi.md) | ✓ | WebAssembly with WASI diff --git a/src/doc/rustc/src/platform-support/thumbv8m.main.md b/src/doc/rustc/src/platform-support/thumbv8m.main.md new file mode 100644 index 0000000000000..2a7ecad865495 --- /dev/null +++ b/src/doc/rustc/src/platform-support/thumbv8m.main.md @@ -0,0 +1,29 @@ +# `thumbv8m.main-none-eabi{,hf}` + +**Tier: 2** + +Bare ARMv8-M Mainline (with and without hardfloat) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/thumbv8m_main_none_eabi.rs b/tests/assembly/targets/thumbv8m_main_none_eabi.rs new file mode 100644 index 0000000000000..e7bfe5794d296 --- /dev/null +++ b/tests/assembly/targets/thumbv8m_main_none_eabi.rs @@ -0,0 +1,18 @@ +// assembly-output: emit-asm +// compile-flags: --target thumbv8m.main-none-eabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_name = "thumbv8m_main_none_eabi"] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/thumbv8m_main_none_eabihf.rs b/tests/assembly/targets/thumbv8m_main_none_eabihf.rs new file mode 100644 index 0000000000000..3cbecd1125411 --- /dev/null +++ b/tests/assembly/targets/thumbv8m_main_none_eabihf.rs @@ -0,0 +1,18 @@ +// assembly-output: emit-asm +// compile-flags: --target thumbv8m.main-none-eabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_name = "thumbv8m_main_none_eabihf"] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 7d070ae4f3ac16d3fefac8645e1bc107cb17fa35 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 10:59:03 +0100 Subject: [PATCH 088/145] target compliance: thumbv8m.base-none-eabi Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../thumbv8m.base_none_eabi.md | 29 +++++++++++++++++++ .../targets/thumbv8m_base_none_eabi.rs | 18 ++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/thumbv8m.base_none_eabi.md create mode 100644 tests/assembly/targets/thumbv8m_base_none_eabi.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 7fddcf5160301..2c33dc1f9e30f 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -175,7 +175,7 @@ target | std | notes `thumbv7m-none-eabi` | * | Bare ARMv7-M [`thumbv7neon-linux-androideabi`](platform-support/android.md) | ✓ | Thumb2-mode ARMv7-A Android with NEON `thumbv7neon-unknown-linux-gnueabihf` | ✓ | Thumb2-mode ARMv7-A Linux with NEON (kernel 4.4, glibc 2.23) -`thumbv8m.base-none-eabi` | * | Bare ARMv8-M Baseline +[`thumbv8m.base-none-eabi`](platform-support/thumbv8m.base_none_eabi.md) | * | Bare ARMv8-M Baseline [`thumbv8m.main-none-eabi`](platform-support/thumbv8m.main.md) | * | Bare ARMv8-M Mainline [`thumbv8m.main-none-eabihf`](platform-support/thumbv8m.main.md) | * | Bare ARMv8-M Mainline, hardfloat [`wasm32-unknown-emscripten`](platform-support/wasm32_unknown_emscripten.md) | ✓ | WebAssembly via Emscripten diff --git a/src/doc/rustc/src/platform-support/thumbv8m.base_none_eabi.md b/src/doc/rustc/src/platform-support/thumbv8m.base_none_eabi.md new file mode 100644 index 0000000000000..45ca4f546d5ed --- /dev/null +++ b/src/doc/rustc/src/platform-support/thumbv8m.base_none_eabi.md @@ -0,0 +1,29 @@ +# `thumbv8m.base-none-eabi` + +**Tier: 2** + +Bare ARMv8-M Baseline + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/thumbv8m_base_none_eabi.rs b/tests/assembly/targets/thumbv8m_base_none_eabi.rs new file mode 100644 index 0000000000000..05506fceb797f --- /dev/null +++ b/tests/assembly/targets/thumbv8m_base_none_eabi.rs @@ -0,0 +1,18 @@ +// assembly-output: emit-asm +// compile-flags: --target thumbv8m.base-none-eabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_name = "thumbv8m_base_none_eabi"] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 7bc7e345843436a8f4fee3ee8f054c75a465a550 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:03:17 +0100 Subject: [PATCH 089/145] target compliance: thumbv7neon-unknown-linux-gnueabihf Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../thumbv7neon_unknown_linux_gnueabihf.md | 29 +++++++++++++++++++ .../thumbv7neon_unknown_linux_gnueabihf.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/thumbv7neon_unknown_linux_gnueabihf.md create mode 100644 tests/assembly/targets/thumbv7neon_unknown_linux_gnueabihf.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 2c33dc1f9e30f..f83762902fb61 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -174,7 +174,7 @@ target | std | notes `thumbv7em-none-eabihf` | * | Bare ARMV7E-M, hardfloat `thumbv7m-none-eabi` | * | Bare ARMv7-M [`thumbv7neon-linux-androideabi`](platform-support/android.md) | ✓ | Thumb2-mode ARMv7-A Android with NEON -`thumbv7neon-unknown-linux-gnueabihf` | ✓ | Thumb2-mode ARMv7-A Linux with NEON (kernel 4.4, glibc 2.23) +[`thumbv7neon-unknown-linux-gnueabihf`](platform-support/thumbv7neon_unknown_linux_gnueabihf.md) | ✓ | Thumb2-mode ARMv7-A Linux with NEON (kernel 4.4, glibc 2.23) [`thumbv8m.base-none-eabi`](platform-support/thumbv8m.base_none_eabi.md) | * | Bare ARMv8-M Baseline [`thumbv8m.main-none-eabi`](platform-support/thumbv8m.main.md) | * | Bare ARMv8-M Mainline [`thumbv8m.main-none-eabihf`](platform-support/thumbv8m.main.md) | * | Bare ARMv8-M Mainline, hardfloat diff --git a/src/doc/rustc/src/platform-support/thumbv7neon_unknown_linux_gnueabihf.md b/src/doc/rustc/src/platform-support/thumbv7neon_unknown_linux_gnueabihf.md new file mode 100644 index 0000000000000..b654eebe4f181 --- /dev/null +++ b/src/doc/rustc/src/platform-support/thumbv7neon_unknown_linux_gnueabihf.md @@ -0,0 +1,29 @@ +# `thumbv7neon-unknown-linux-gnueabihf` + +**Tier: 2** + +Thumb2-mode ARMv7-A Linux with NEON (Kernel 4.4, glibc 2.23) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/thumbv7neon_unknown_linux_gnueabihf.rs b/tests/assembly/targets/thumbv7neon_unknown_linux_gnueabihf.rs new file mode 100644 index 0000000000000..dd9decd78b36f --- /dev/null +++ b/tests/assembly/targets/thumbv7neon_unknown_linux_gnueabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target thumbv7neon-unknown-linux-gnueabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 205d9325efaf2a9036ac1ad68e3c2fb29d9552d4 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:10:50 +0100 Subject: [PATCH 090/145] target compliance: thumbs Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 8 ++--- .../platform-support/thumbv6m_none_eabi.md | 29 ++++++++++++++++ .../src/platform-support/thumbv7_none.md | 33 +++++++++++++++++++ tests/assembly/targets/thumbv6m_none_eabi.rs | 17 ++++++++++ tests/assembly/targets/thumbv7em_none_eabi.rs | 17 ++++++++++ .../assembly/targets/thumbv7em_none_eabihf.rs | 17 ++++++++++ tests/assembly/targets/thumbv7m_none_eabi.rs | 17 ++++++++++ 7 files changed, 134 insertions(+), 4 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/thumbv6m_none_eabi.md create mode 100644 src/doc/rustc/src/platform-support/thumbv7_none.md create mode 100644 tests/assembly/targets/thumbv6m_none_eabi.rs create mode 100644 tests/assembly/targets/thumbv7em_none_eabi.rs create mode 100644 tests/assembly/targets/thumbv7em_none_eabihf.rs create mode 100644 tests/assembly/targets/thumbv7m_none_eabi.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index f83762902fb61..2b9910fc19e33 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -169,10 +169,10 @@ target | std | notes `riscv64imac-unknown-none-elf` | * | Bare RISC-V (RV64IMAC ISA) `sparc64-unknown-linux-gnu` | ✓ | SPARC Linux (kernel 4.4, glibc 2.23) `sparcv9-sun-solaris` | ✓ | SPARC Solaris 10/11, illumos -`thumbv6m-none-eabi` | * | Bare ARMv6-M -`thumbv7em-none-eabi` | * | Bare ARMv7E-M -`thumbv7em-none-eabihf` | * | Bare ARMV7E-M, hardfloat -`thumbv7m-none-eabi` | * | Bare ARMv7-M +[`thumbv6m-none-eabi`](platform-support/thumbv6m_none_eabi.md) | * | Bare ARMv6-M +[`thumbv7em-none-eabi`](platform-support/thumbv7_none.md) | * | Bare ARMv7E-M +[`thumbv7em-none-eabihf`](platform-support/thumbv7_none.md) | * | Bare ARMV7E-M, hardfloat +[`thumbv7m-none-eabi`](platform-support/thumbv7_none.md) | * | Bare ARMv7-M [`thumbv7neon-linux-androideabi`](platform-support/android.md) | ✓ | Thumb2-mode ARMv7-A Android with NEON [`thumbv7neon-unknown-linux-gnueabihf`](platform-support/thumbv7neon_unknown_linux_gnueabihf.md) | ✓ | Thumb2-mode ARMv7-A Linux with NEON (kernel 4.4, glibc 2.23) [`thumbv8m.base-none-eabi`](platform-support/thumbv8m.base_none_eabi.md) | * | Bare ARMv8-M Baseline diff --git a/src/doc/rustc/src/platform-support/thumbv6m_none_eabi.md b/src/doc/rustc/src/platform-support/thumbv6m_none_eabi.md new file mode 100644 index 0000000000000..ef66b68ecc26c --- /dev/null +++ b/src/doc/rustc/src/platform-support/thumbv6m_none_eabi.md @@ -0,0 +1,29 @@ +# `thumbv6m-none-eabi` + +**Tier: 2** + +Bare ARMv6-M + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/src/doc/rustc/src/platform-support/thumbv7_none.md b/src/doc/rustc/src/platform-support/thumbv7_none.md new file mode 100644 index 0000000000000..918cb3cdccde9 --- /dev/null +++ b/src/doc/rustc/src/platform-support/thumbv7_none.md @@ -0,0 +1,33 @@ +# `thumbv7{m,em}-none-eabi{,hf}` + +**Tier: 2** + +| Target | Description | +| ======================= | ======================== | +| `thumbv7em-none-eabi` | Bare ARMv7E-M | +| `thumbv7em-none-eabihf` | Bare ARMv7E-M, hardfloat | +| `thumbv7m-none-eabi` | Bare ARMv7-M | + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/thumbv6m_none_eabi.rs b/tests/assembly/targets/thumbv6m_none_eabi.rs new file mode 100644 index 0000000000000..7c09b1c791d4c --- /dev/null +++ b/tests/assembly/targets/thumbv6m_none_eabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target thumbv6m-none-eabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/thumbv7em_none_eabi.rs b/tests/assembly/targets/thumbv7em_none_eabi.rs new file mode 100644 index 0000000000000..e3d8a4ca8fd1b --- /dev/null +++ b/tests/assembly/targets/thumbv7em_none_eabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target thumbv7em-none-eabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/thumbv7em_none_eabihf.rs b/tests/assembly/targets/thumbv7em_none_eabihf.rs new file mode 100644 index 0000000000000..cb0cc19ad669f --- /dev/null +++ b/tests/assembly/targets/thumbv7em_none_eabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target thumbv7em-none-eabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/thumbv7m_none_eabi.rs b/tests/assembly/targets/thumbv7m_none_eabi.rs new file mode 100644 index 0000000000000..3c63bf60e3b72 --- /dev/null +++ b/tests/assembly/targets/thumbv7m_none_eabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target thumbv7m-none-eabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 3249a8bc6f71c9814011e6a67992b375f45e68e4 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:13:43 +0100 Subject: [PATCH 091/145] target compliance: thumbv7neon-linux-androideabi Signed-off-by: David Wood --- .../targets/thumbv7neon_linux_androideabi.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/thumbv7neon_linux_androideabi.rs diff --git a/tests/assembly/targets/thumbv7neon_linux_androideabi.rs b/tests/assembly/targets/thumbv7neon_linux_androideabi.rs new file mode 100644 index 0000000000000..aa65d5eaf4ba7 --- /dev/null +++ b/tests/assembly/targets/thumbv7neon_linux_androideabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target thumbv7neon-linux-androideabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 7946d7f97a255920b0dc787a8baffbb98697e632 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:16:50 +0100 Subject: [PATCH 092/145] target compliance: sparcv9-sun-solaris Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../platform-support/sparcv9_sun_solaris.md | 29 +++++++++++++++++++ tests/assembly/targets/sparcv9_sun_solaris.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/sparcv9_sun_solaris.md create mode 100644 tests/assembly/targets/sparcv9_sun_solaris.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 2b9910fc19e33..a6518b1901120 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -168,7 +168,7 @@ target | std | notes `riscv64gc-unknown-none-elf` | * | Bare RISC-V (RV64IMAFDC ISA) `riscv64imac-unknown-none-elf` | * | Bare RISC-V (RV64IMAC ISA) `sparc64-unknown-linux-gnu` | ✓ | SPARC Linux (kernel 4.4, glibc 2.23) -`sparcv9-sun-solaris` | ✓ | SPARC Solaris 10/11, illumos +[`sparcv9-sun-solaris`](platform-support/sparcv9_sun_solaris.md) | ✓ | SPARC Solaris 10/11, illumos [`thumbv6m-none-eabi`](platform-support/thumbv6m_none_eabi.md) | * | Bare ARMv6-M [`thumbv7em-none-eabi`](platform-support/thumbv7_none.md) | * | Bare ARMv7E-M [`thumbv7em-none-eabihf`](platform-support/thumbv7_none.md) | * | Bare ARMV7E-M, hardfloat diff --git a/src/doc/rustc/src/platform-support/sparcv9_sun_solaris.md b/src/doc/rustc/src/platform-support/sparcv9_sun_solaris.md new file mode 100644 index 0000000000000..14aacc7716362 --- /dev/null +++ b/src/doc/rustc/src/platform-support/sparcv9_sun_solaris.md @@ -0,0 +1,29 @@ +# `sparcv9-sun-solaris` + +**Tier: 2** + +SPARC Solaris 10/11, illumos + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/sparcv9_sun_solaris.rs b/tests/assembly/targets/sparcv9_sun_solaris.rs new file mode 100644 index 0000000000000..878394f739863 --- /dev/null +++ b/tests/assembly/targets/sparcv9_sun_solaris.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target sparcv9-sun-solaris +// needs-llvm-components: sparc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 9765867c86cb7ba6823ebd67f3a95540727b880f Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:20:05 +0100 Subject: [PATCH 093/145] target compliance: sparc64-unknown-linux-gnu Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../sparc64_unknown_linux_gnu.md | 29 +++++++++++++++++++ .../targets/sparc64_unknown_linux_gnu.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/sparc64_unknown_linux_gnu.md create mode 100644 tests/assembly/targets/sparc64_unknown_linux_gnu.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index a6518b1901120..1e8ebbf0f2ced 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -167,7 +167,7 @@ target | std | notes `riscv32imc-unknown-none-elf` | * | Bare RISC-V (RV32IMC ISA) `riscv64gc-unknown-none-elf` | * | Bare RISC-V (RV64IMAFDC ISA) `riscv64imac-unknown-none-elf` | * | Bare RISC-V (RV64IMAC ISA) -`sparc64-unknown-linux-gnu` | ✓ | SPARC Linux (kernel 4.4, glibc 2.23) +[`sparc64-unknown-linux-gnu`](platform-support/sparc64_unknown_linux_gnu.md) | ✓ | SPARC Linux (kernel 4.4, glibc 2.23) [`sparcv9-sun-solaris`](platform-support/sparcv9_sun_solaris.md) | ✓ | SPARC Solaris 10/11, illumos [`thumbv6m-none-eabi`](platform-support/thumbv6m_none_eabi.md) | * | Bare ARMv6-M [`thumbv7em-none-eabi`](platform-support/thumbv7_none.md) | * | Bare ARMv7E-M diff --git a/src/doc/rustc/src/platform-support/sparc64_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/sparc64_unknown_linux_gnu.md new file mode 100644 index 0000000000000..3430b1afe72d0 --- /dev/null +++ b/src/doc/rustc/src/platform-support/sparc64_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `sparc64-unknown-linux-gnu` + +**Tier: 2** + +SPARC Linux (Kernel 4.4, glibc 2.23) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/sparc64_unknown_linux_gnu.rs b/tests/assembly/targets/sparc64_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..59f42eb78f130 --- /dev/null +++ b/tests/assembly/targets/sparc64_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target sparc64-unknown-linux-gnu +// needs-llvm-components: sparc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From b72f27308c82ae426b08c34f61fd2b14d3d8445f Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:22:40 +0100 Subject: [PATCH 094/145] target compliance: riscv64imac-unknown-none-elf Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../riscv64imac_unknown_none_elf.md | 29 +++++++++++++++++++ .../targets/riscv64imac_unknown_none_elf.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/riscv64imac_unknown_none_elf.md create mode 100644 tests/assembly/targets/riscv64imac_unknown_none_elf.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 1e8ebbf0f2ced..25d9e413fb141 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -166,7 +166,7 @@ target | std | notes `riscv32imac-unknown-none-elf` | * | Bare RISC-V (RV32IMAC ISA) `riscv32imc-unknown-none-elf` | * | Bare RISC-V (RV32IMC ISA) `riscv64gc-unknown-none-elf` | * | Bare RISC-V (RV64IMAFDC ISA) -`riscv64imac-unknown-none-elf` | * | Bare RISC-V (RV64IMAC ISA) +[`riscv64imac-unknown-none-elf`](platform-support/riscv64imac_unknown_none_elf.md) | * | Bare RISC-V (RV64IMAC ISA) [`sparc64-unknown-linux-gnu`](platform-support/sparc64_unknown_linux_gnu.md) | ✓ | SPARC Linux (kernel 4.4, glibc 2.23) [`sparcv9-sun-solaris`](platform-support/sparcv9_sun_solaris.md) | ✓ | SPARC Solaris 10/11, illumos [`thumbv6m-none-eabi`](platform-support/thumbv6m_none_eabi.md) | * | Bare ARMv6-M diff --git a/src/doc/rustc/src/platform-support/riscv64imac_unknown_none_elf.md b/src/doc/rustc/src/platform-support/riscv64imac_unknown_none_elf.md new file mode 100644 index 0000000000000..02c73cdfe3c6f --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv64imac_unknown_none_elf.md @@ -0,0 +1,29 @@ +# `riscv64imac-unknown-none-elf` + +**Tier: 2** + +Bare RISC-V (RV64IMAC ISA) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/riscv64imac_unknown_none_elf.rs b/tests/assembly/targets/riscv64imac_unknown_none_elf.rs new file mode 100644 index 0000000000000..36c89076c1063 --- /dev/null +++ b/tests/assembly/targets/riscv64imac_unknown_none_elf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv64imac-unknown-none-elf +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 7194cecf6f0dffde40620bc111533df03e2442a6 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:28:10 +0100 Subject: [PATCH 095/145] target compliance: riscv{32,64}{i,imc,imac,gc}-unknown-none-elf Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 8 ++--- .../riscv32i_unknown_none_elf.md | 29 +++++++++++++++++++ .../riscv32imac_unknown_none_elf.md | 29 +++++++++++++++++++ .../riscv32imc_unknown_none_elf.md | 29 +++++++++++++++++++ .../riscv64gc_unknown_none_elf.md | 29 +++++++++++++++++++ .../targets/riscv32i_unknown_none_elf.rs | 17 +++++++++++ .../targets/riscv32imac_unknown_none_elf.rs | 17 +++++++++++ .../targets/riscv32imc_unknown_none_elf.rs | 17 +++++++++++ .../targets/riscv64gc_unknown_none_elf.rs | 17 +++++++++++ 9 files changed, 188 insertions(+), 4 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/riscv32i_unknown_none_elf.md create mode 100644 src/doc/rustc/src/platform-support/riscv32imac_unknown_none_elf.md create mode 100644 src/doc/rustc/src/platform-support/riscv32imc_unknown_none_elf.md create mode 100644 src/doc/rustc/src/platform-support/riscv64gc_unknown_none_elf.md create mode 100644 tests/assembly/targets/riscv32i_unknown_none_elf.rs create mode 100644 tests/assembly/targets/riscv32imac_unknown_none_elf.rs create mode 100644 tests/assembly/targets/riscv32imc_unknown_none_elf.rs create mode 100644 tests/assembly/targets/riscv64gc_unknown_none_elf.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 25d9e413fb141..d49736bce3b48 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -162,10 +162,10 @@ target | std | notes `mips64el-unknown-linux-muslabi64` | ✓ | MIPS64 (LE) Linux, n64 ABI, MUSL `mipsel-unknown-linux-musl` | ✓ | MIPS (LE) Linux with MUSL [`nvptx64-nvidia-cuda`](platform-support/nvptx64-nvidia-cuda.md) | * | --emit=asm generates PTX code that [runs on NVIDIA GPUs] -`riscv32i-unknown-none-elf` | * | Bare RISC-V (RV32I ISA) -`riscv32imac-unknown-none-elf` | * | Bare RISC-V (RV32IMAC ISA) -`riscv32imc-unknown-none-elf` | * | Bare RISC-V (RV32IMC ISA) -`riscv64gc-unknown-none-elf` | * | Bare RISC-V (RV64IMAFDC ISA) +[`riscv32i-unknown-none-elf`](platform-support/riscv32i_unknown_none_elf.md) | * | Bare RISC-V (RV32I ISA) +[`riscv32imac-unknown-none-elf`](platform-support/riscv32imac_unknown_none_elf.md) | * | Bare RISC-V (RV32IMAC ISA) +[`riscv32imc-unknown-none-elf`](platform-support/riscv32imc_unknown_none_elf.md) | * | Bare RISC-V (RV32IMC ISA) +[`riscv64gc-unknown-none-elf`](platform-support/riscv64gc_unknown_none_elf.md) | * | Bare RISC-V (RV64IMAFDC ISA) [`riscv64imac-unknown-none-elf`](platform-support/riscv64imac_unknown_none_elf.md) | * | Bare RISC-V (RV64IMAC ISA) [`sparc64-unknown-linux-gnu`](platform-support/sparc64_unknown_linux_gnu.md) | ✓ | SPARC Linux (kernel 4.4, glibc 2.23) [`sparcv9-sun-solaris`](platform-support/sparcv9_sun_solaris.md) | ✓ | SPARC Solaris 10/11, illumos diff --git a/src/doc/rustc/src/platform-support/riscv32i_unknown_none_elf.md b/src/doc/rustc/src/platform-support/riscv32i_unknown_none_elf.md new file mode 100644 index 0000000000000..2c96c3ac5c7a1 --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv32i_unknown_none_elf.md @@ -0,0 +1,29 @@ +# `riscv32i-unknown-none-elf` + +**Tier: 2** + +Bare RISC-V (RV32I ISA) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/src/doc/rustc/src/platform-support/riscv32imac_unknown_none_elf.md b/src/doc/rustc/src/platform-support/riscv32imac_unknown_none_elf.md new file mode 100644 index 0000000000000..beff28ad8b135 --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv32imac_unknown_none_elf.md @@ -0,0 +1,29 @@ +# `riscv32imac-unknown-none-elf` + +**Tier: 2** + +Bare RISC-V (RV32IMAC ISA) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/src/doc/rustc/src/platform-support/riscv32imc_unknown_none_elf.md b/src/doc/rustc/src/platform-support/riscv32imc_unknown_none_elf.md new file mode 100644 index 0000000000000..a0c1be8f27e50 --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv32imc_unknown_none_elf.md @@ -0,0 +1,29 @@ +# `riscv32imc-unknown-none-elf` + +**Tier: 2** + +Bare RISC-V (RV32IMC ISA) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/src/doc/rustc/src/platform-support/riscv64gc_unknown_none_elf.md b/src/doc/rustc/src/platform-support/riscv64gc_unknown_none_elf.md new file mode 100644 index 0000000000000..3923cf7b821e3 --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv64gc_unknown_none_elf.md @@ -0,0 +1,29 @@ +# `riscv64gc-unknown-none-elf` + +**Tier: 2** + +Bare RISC-V (RV64IMAFDC ISA) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/riscv32i_unknown_none_elf.rs b/tests/assembly/targets/riscv32i_unknown_none_elf.rs new file mode 100644 index 0000000000000..6e2d8941dcfbc --- /dev/null +++ b/tests/assembly/targets/riscv32i_unknown_none_elf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv32i-unknown-none-elf +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/riscv32imac_unknown_none_elf.rs b/tests/assembly/targets/riscv32imac_unknown_none_elf.rs new file mode 100644 index 0000000000000..da11935693f39 --- /dev/null +++ b/tests/assembly/targets/riscv32imac_unknown_none_elf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv32imac-unknown-none-elf +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/riscv32imc_unknown_none_elf.rs b/tests/assembly/targets/riscv32imc_unknown_none_elf.rs new file mode 100644 index 0000000000000..153169cf4e5e9 --- /dev/null +++ b/tests/assembly/targets/riscv32imc_unknown_none_elf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv32imc-unknown-none-elf +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/riscv64gc_unknown_none_elf.rs b/tests/assembly/targets/riscv64gc_unknown_none_elf.rs new file mode 100644 index 0000000000000..e5cdc717ff53e --- /dev/null +++ b/tests/assembly/targets/riscv64gc_unknown_none_elf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv64gc-unknown-none-elf +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 7e9c2b050757716fd75c5c90a56d00d560b89491 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:36:35 +0100 Subject: [PATCH 096/145] target compliance: nvptx64-nvidia-cuda Signed-off-by: David Wood --- tests/assembly/targets/nvptx64_nvidia_cuda.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/nvptx64_nvidia_cuda.rs diff --git a/tests/assembly/targets/nvptx64_nvidia_cuda.rs b/tests/assembly/targets/nvptx64_nvidia_cuda.rs new file mode 100644 index 0000000000000..884e5fde1e054 --- /dev/null +++ b/tests/assembly/targets/nvptx64_nvidia_cuda.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target nvptx64-nvidia-cuda +// needs-llvm-components: nvptx + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .version From 5dbfdb28ff04ae3be8347245c859b05573d43eb6 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:36:49 +0100 Subject: [PATCH 097/145] target compliance: mips{el}-unknown-linux-musl Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- .../mips_unknown_linux_musl.md | 29 +++++++++++++++++++ .../targets/mips_unknown_linux_musl.rs | 17 +++++++++++ .../targets/mipsel_unknown_linux_musl.rs | 17 +++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/mips_unknown_linux_musl.md create mode 100644 tests/assembly/targets/mips_unknown_linux_musl.rs create mode 100644 tests/assembly/targets/mipsel_unknown_linux_musl.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index d49736bce3b48..0ddc03279f4b0 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -157,10 +157,10 @@ target | std | notes [`i686-unknown-freebsd`](platform-support/freebsd.md) | ✓ | 32-bit FreeBSD `i686-unknown-linux-musl` | ✓ | 32-bit Linux with MUSL [`i686-unknown-uefi`](platform-support/unknown-uefi.md) | * | 32-bit UEFI -`mips-unknown-linux-musl` | ✓ | MIPS Linux with MUSL +[`mips-unknown-linux-musl`](platform-support/mips_unknown_linux_musl.md) | ✓ | MIPS Linux with MUSL `mips64-unknown-linux-muslabi64` | ✓ | MIPS64 Linux, n64 ABI, MUSL `mips64el-unknown-linux-muslabi64` | ✓ | MIPS64 (LE) Linux, n64 ABI, MUSL -`mipsel-unknown-linux-musl` | ✓ | MIPS (LE) Linux with MUSL +[`mipsel-unknown-linux-musl`](platform-support/mips-unknown-linux-musl.md) | ✓ | MIPS (LE) Linux with MUSL [`nvptx64-nvidia-cuda`](platform-support/nvptx64-nvidia-cuda.md) | * | --emit=asm generates PTX code that [runs on NVIDIA GPUs] [`riscv32i-unknown-none-elf`](platform-support/riscv32i_unknown_none_elf.md) | * | Bare RISC-V (RV32I ISA) [`riscv32imac-unknown-none-elf`](platform-support/riscv32imac_unknown_none_elf.md) | * | Bare RISC-V (RV32IMAC ISA) diff --git a/src/doc/rustc/src/platform-support/mips_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/mips_unknown_linux_musl.md new file mode 100644 index 0000000000000..a59f5f3e47b32 --- /dev/null +++ b/src/doc/rustc/src/platform-support/mips_unknown_linux_musl.md @@ -0,0 +1,29 @@ +# `mips{,sel}-unknown-linux-musl` + +**Tier: 2** + +MIPS (+ LE) Linux with MUSL + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/mips_unknown_linux_musl.rs b/tests/assembly/targets/mips_unknown_linux_musl.rs new file mode 100644 index 0000000000000..669a151e72627 --- /dev/null +++ b/tests/assembly/targets/mips_unknown_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mips-unknown-linux-musl +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/mipsel_unknown_linux_musl.rs b/tests/assembly/targets/mipsel_unknown_linux_musl.rs new file mode 100644 index 0000000000000..42ca3fb5d71d2 --- /dev/null +++ b/tests/assembly/targets/mipsel_unknown_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mipsel-unknown-linux-musl +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From bf1db714a8f6c9cdd75bf31cd919cdd2ceea68e0 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:41:36 +0100 Subject: [PATCH 098/145] target compliance: mips64{,el}-unknown-linux-muslabi64 Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- .../mips64_unknown_linux_musl.md | 29 +++++++++++++++++++ .../targets/mips64_unknown_linux_muslabi64.rs | 17 +++++++++++ .../mips64el_unknown_linux_muslabi64.rs | 17 +++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/mips64_unknown_linux_musl.md create mode 100644 tests/assembly/targets/mips64_unknown_linux_muslabi64.rs create mode 100644 tests/assembly/targets/mips64el_unknown_linux_muslabi64.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 0ddc03279f4b0..aaaac47be14e1 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -158,8 +158,8 @@ target | std | notes `i686-unknown-linux-musl` | ✓ | 32-bit Linux with MUSL [`i686-unknown-uefi`](platform-support/unknown-uefi.md) | * | 32-bit UEFI [`mips-unknown-linux-musl`](platform-support/mips_unknown_linux_musl.md) | ✓ | MIPS Linux with MUSL -`mips64-unknown-linux-muslabi64` | ✓ | MIPS64 Linux, n64 ABI, MUSL -`mips64el-unknown-linux-muslabi64` | ✓ | MIPS64 (LE) Linux, n64 ABI, MUSL +[`mips64-unknown-linux-muslabi64`](platform-support/mips64-unknown-linux-muslabi64.md) | ✓ | MIPS64 Linux, n64 ABI, MUSL +[`mips64el-unknown-linux-muslabi64`](platform-support/mips64el-unknown-linux-muslabi64.md) | ✓ | MIPS64 (LE) Linux, n64 ABI, MUSL [`mipsel-unknown-linux-musl`](platform-support/mips-unknown-linux-musl.md) | ✓ | MIPS (LE) Linux with MUSL [`nvptx64-nvidia-cuda`](platform-support/nvptx64-nvidia-cuda.md) | * | --emit=asm generates PTX code that [runs on NVIDIA GPUs] [`riscv32i-unknown-none-elf`](platform-support/riscv32i_unknown_none_elf.md) | * | Bare RISC-V (RV32I ISA) diff --git a/src/doc/rustc/src/platform-support/mips64_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/mips64_unknown_linux_musl.md new file mode 100644 index 0000000000000..37f18139f384b --- /dev/null +++ b/src/doc/rustc/src/platform-support/mips64_unknown_linux_musl.md @@ -0,0 +1,29 @@ +# `mips64{,el}-unknown-linux-muslabi64` + +**Tier: 2** + +MIPS64 (+ LE) Linux, n64 ABI, MUSL + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/mips64_unknown_linux_muslabi64.rs b/tests/assembly/targets/mips64_unknown_linux_muslabi64.rs new file mode 100644 index 0000000000000..86b9951b29925 --- /dev/null +++ b/tests/assembly/targets/mips64_unknown_linux_muslabi64.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mips64-unknown-linux-muslabi64 +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/mips64el_unknown_linux_muslabi64.rs b/tests/assembly/targets/mips64el_unknown_linux_muslabi64.rs new file mode 100644 index 0000000000000..f64914027c9c2 --- /dev/null +++ b/tests/assembly/targets/mips64el_unknown_linux_muslabi64.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mips64el-unknown-linux-muslabi64 +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 2be3c3df720e40a1dd2a72bf6dcbb17e8966b571 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:43:24 +0100 Subject: [PATCH 099/145] target compliance: i686-unknown-uefi Signed-off-by: David Wood --- tests/assembly/targets/i686_unknown_uefi.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/i686_unknown_uefi.rs diff --git a/tests/assembly/targets/i686_unknown_uefi.rs b/tests/assembly/targets/i686_unknown_uefi.rs new file mode 100644 index 0000000000000..4a6f1f6abc1a3 --- /dev/null +++ b/tests/assembly/targets/i686_unknown_uefi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i686-unknown-uefi +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 3ba756cf0217c15664786a13440dbc3765cd6c82 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:45:00 +0100 Subject: [PATCH 100/145] target compliance: i686-unknown-linux-musl Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../i686_unknown_linux_musl.md | 29 +++++++++++++++++++ .../targets/i686_unknown_linux_musl.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/i686_unknown_linux_musl.md create mode 100644 tests/assembly/targets/i686_unknown_linux_musl.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index aaaac47be14e1..821e7c38c0344 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -155,7 +155,7 @@ target | std | notes `i586-unknown-linux-musl` | ✓ | 32-bit Linux w/o SSE, MUSL [`i686-linux-android`](platform-support/android.md) | ✓ | 32-bit x86 Android [`i686-unknown-freebsd`](platform-support/freebsd.md) | ✓ | 32-bit FreeBSD -`i686-unknown-linux-musl` | ✓ | 32-bit Linux with MUSL +[`i686-unknown-linux-musl`](platform-support/i686_unknown_linux_musl.md) | ✓ | 32-bit Linux with MUSL [`i686-unknown-uefi`](platform-support/unknown-uefi.md) | * | 32-bit UEFI [`mips-unknown-linux-musl`](platform-support/mips_unknown_linux_musl.md) | ✓ | MIPS Linux with MUSL [`mips64-unknown-linux-muslabi64`](platform-support/mips64-unknown-linux-muslabi64.md) | ✓ | MIPS64 Linux, n64 ABI, MUSL diff --git a/src/doc/rustc/src/platform-support/i686_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/i686_unknown_linux_musl.md new file mode 100644 index 0000000000000..db3721e1475bd --- /dev/null +++ b/src/doc/rustc/src/platform-support/i686_unknown_linux_musl.md @@ -0,0 +1,29 @@ +# `i686-unknown-linux-musl` + +**Tier: 2** + +32-bit Linux with MUSL + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/i686_unknown_linux_musl.rs b/tests/assembly/targets/i686_unknown_linux_musl.rs new file mode 100644 index 0000000000000..44ca1fa24b3f0 --- /dev/null +++ b/tests/assembly/targets/i686_unknown_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i686-unknown-linux-musl +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 260530c9b73bc5a11a46e608e2af6bf23799e18e Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:47:03 +0100 Subject: [PATCH 101/145] target compliance: i686-linux-android Signed-off-by: David Wood --- tests/assembly/targets/i686_linux_android.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/i686_linux_android.rs diff --git a/tests/assembly/targets/i686_linux_android.rs b/tests/assembly/targets/i686_linux_android.rs new file mode 100644 index 0000000000000..9ab7fb0dc375e --- /dev/null +++ b/tests/assembly/targets/i686_linux_android.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i686-linux-android +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 2310d63328c02e6e81a16cb8622e1ba266aea1fe Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:51:52 +0100 Subject: [PATCH 102/145] target compliance: i586-unknown-linux-{gnu,musl} Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- .../i586_unknown_linux_gnu.md | 29 +++++++++++++++++++ .../i586_unknown_linux_musl.md | 29 +++++++++++++++++++ .../targets/i586_unknown_linux_gnu.rs | 17 +++++++++++ .../targets/i586_unknown_linux_musl.rs | 17 +++++++++++ 5 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/i586_unknown_linux_gnu.md create mode 100644 src/doc/rustc/src/platform-support/i586_unknown_linux_musl.md create mode 100644 tests/assembly/targets/i586_unknown_linux_gnu.rs create mode 100644 tests/assembly/targets/i586_unknown_linux_musl.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 821e7c38c0344..a96652ceba2e1 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -151,8 +151,8 @@ target | std | notes `armv7r-none-eabihf` | * | Bare ARMv7-R, hardfloat `asmjs-unknown-emscripten` | ✓ | asm.js via Emscripten [`i586-pc-windows-msvc`](platform-support/windows_msvc.md) | * | 32-bit Windows w/o SSE -`i586-unknown-linux-gnu` | ✓ | 32-bit Linux w/o SSE (kernel 3.2, glibc 2.17) -`i586-unknown-linux-musl` | ✓ | 32-bit Linux w/o SSE, MUSL +[`i586-unknown-linux-gnu`](platform-support/i586_unknown_linux_gnu.md) | ✓ | 32-bit Linux w/o SSE (kernel 3.2, glibc 2.17) +[`i586-unknown-linux-musl`](platform-support/i586_unknown_linux_musl.md) | ✓ | 32-bit Linux w/o SSE, MUSL [`i686-linux-android`](platform-support/android.md) | ✓ | 32-bit x86 Android [`i686-unknown-freebsd`](platform-support/freebsd.md) | ✓ | 32-bit FreeBSD [`i686-unknown-linux-musl`](platform-support/i686_unknown_linux_musl.md) | ✓ | 32-bit Linux with MUSL diff --git a/src/doc/rustc/src/platform-support/i586_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/i586_unknown_linux_gnu.md new file mode 100644 index 0000000000000..ed387d4131da9 --- /dev/null +++ b/src/doc/rustc/src/platform-support/i586_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `i586-unknown-linux-gnu` + +**Tier: 2** + +32-bit Linux w/o SSE (Kernel 3.2, glibc 2.17) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/src/doc/rustc/src/platform-support/i586_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/i586_unknown_linux_musl.md new file mode 100644 index 0000000000000..f77e0f58c5b06 --- /dev/null +++ b/src/doc/rustc/src/platform-support/i586_unknown_linux_musl.md @@ -0,0 +1,29 @@ +# `i586-unknown-linux-musl` + +**Tier: 2** + +32-bit Linux w/o SSE, MUSL + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/i586_unknown_linux_gnu.rs b/tests/assembly/targets/i586_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..1cc943f67f846 --- /dev/null +++ b/tests/assembly/targets/i586_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i586-unknown-linux-gnu +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/i586_unknown_linux_musl.rs b/tests/assembly/targets/i586_unknown_linux_musl.rs new file mode 100644 index 0000000000000..628bd748777dc --- /dev/null +++ b/tests/assembly/targets/i586_unknown_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i586-unknown-linux-musl +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 7f0c721a0e7496b2c5bf780411268c7f19d5eb52 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 11:54:38 +0100 Subject: [PATCH 103/145] target compliance: asmjs-unknown-emscripten Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../asmjs_unknown_emscripten.md | 29 +++++++++++++++++++ .../targets/asmjs_unknown_emscripten.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/asmjs_unknown_emscripten.md create mode 100644 tests/assembly/targets/asmjs_unknown_emscripten.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index a96652ceba2e1..9f3233167ff72 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -149,7 +149,7 @@ target | std | notes `armv7a-none-eabi` | * | Bare ARMv7-A `armv7r-none-eabi` | * | Bare ARMv7-R `armv7r-none-eabihf` | * | Bare ARMv7-R, hardfloat -`asmjs-unknown-emscripten` | ✓ | asm.js via Emscripten +[`asmjs-unknown-emscripten`](platform-support/asmjs_unknown_emscripten.md) | ✓ | asm.js via Emscripten [`i586-pc-windows-msvc`](platform-support/windows_msvc.md) | * | 32-bit Windows w/o SSE [`i586-unknown-linux-gnu`](platform-support/i586_unknown_linux_gnu.md) | ✓ | 32-bit Linux w/o SSE (kernel 3.2, glibc 2.17) [`i586-unknown-linux-musl`](platform-support/i586_unknown_linux_musl.md) | ✓ | 32-bit Linux w/o SSE, MUSL diff --git a/src/doc/rustc/src/platform-support/asmjs_unknown_emscripten.md b/src/doc/rustc/src/platform-support/asmjs_unknown_emscripten.md new file mode 100644 index 0000000000000..51a6218f73628 --- /dev/null +++ b/src/doc/rustc/src/platform-support/asmjs_unknown_emscripten.md @@ -0,0 +1,29 @@ +# `asmjs-unknown-emscripten` + +**Tier: 2** + +asm.js with Emscripten + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/asmjs_unknown_emscripten.rs b/tests/assembly/targets/asmjs_unknown_emscripten.rs new file mode 100644 index 0000000000000..84b8978b06e19 --- /dev/null +++ b/tests/assembly/targets/asmjs_unknown_emscripten.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target asmjs-unknown-emscripten +// needs-llvm-components: webassembly + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From eb4a72861296cc0dd6d73fb532954cadf8807d05 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 13:23:38 +0100 Subject: [PATCH 104/145] target compliance: arm{,eb}v7r-none-eabi{,hf} Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 8 ++--- src/doc/rustc/src/platform-support/armv7r.md | 34 +++++++++++++++++++ tests/assembly/targets/armebv7r_none_eabi.rs | 17 ++++++++++ .../assembly/targets/armebv7r_none_eabihf.rs | 17 ++++++++++ tests/assembly/targets/armv7r_none_eabi.rs | 17 ++++++++++ tests/assembly/targets/armv7r_none_eabihf.rs | 17 ++++++++++ 6 files changed, 106 insertions(+), 4 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/armv7r.md create mode 100644 tests/assembly/targets/armebv7r_none_eabi.rs create mode 100644 tests/assembly/targets/armebv7r_none_eabihf.rs create mode 100644 tests/assembly/targets/armv7r_none_eabi.rs create mode 100644 tests/assembly/targets/armv7r_none_eabihf.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 9f3233167ff72..39bba74eb1ae2 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -138,8 +138,8 @@ target | std | notes [`arm-linux-androideabi`](platform-support/android.md) | ✓ | ARMv6 Android `arm-unknown-linux-musleabi` | ✓ | ARMv6 Linux with MUSL `arm-unknown-linux-musleabihf` | ✓ | ARMv6 Linux with MUSL, hardfloat -`armebv7r-none-eabi` | * | Bare ARMv7-R, Big Endian -`armebv7r-none-eabihf` | * | Bare ARMv7-R, Big Endian, hardfloat +[`armebv7r-none-eabi`](platform-support/armv7r.md) | * | Bare ARMv7-R, big endian +[`armebv7r-none-eabihf`](platform-support/armv7r.md) | * | Bare ARMv7-R, big endian, hardfloat `armv5te-unknown-linux-gnueabi` | ✓ | ARMv5TE Linux (kernel 4.4, glibc 2.23) `armv5te-unknown-linux-musleabi` | ✓ | ARMv5TE Linux with MUSL [`armv7-linux-androideabi`](platform-support/android.md) | ✓ | ARMv7-A Android @@ -147,8 +147,8 @@ target | std | notes `armv7-unknown-linux-musleabi` | ✓ | ARMv7-A Linux with MUSL `armv7-unknown-linux-musleabihf` | ✓ | ARMv7-A Linux with MUSL, hardfloat `armv7a-none-eabi` | * | Bare ARMv7-A -`armv7r-none-eabi` | * | Bare ARMv7-R -`armv7r-none-eabihf` | * | Bare ARMv7-R, hardfloat +[`armv7r-none-eabi`](platform-support/armv7r.md) | * | Bare ARMv7-R +[`armv7r-none-eabihf`](platform-support/armv7r.md) | * | Bare ARMv7-R, hardfloat [`asmjs-unknown-emscripten`](platform-support/asmjs_unknown_emscripten.md) | ✓ | asm.js via Emscripten [`i586-pc-windows-msvc`](platform-support/windows_msvc.md) | * | 32-bit Windows w/o SSE [`i586-unknown-linux-gnu`](platform-support/i586_unknown_linux_gnu.md) | ✓ | 32-bit Linux w/o SSE (kernel 3.2, glibc 2.17) diff --git a/src/doc/rustc/src/platform-support/armv7r.md b/src/doc/rustc/src/platform-support/armv7r.md new file mode 100644 index 0000000000000..a7943cc857189 --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7r.md @@ -0,0 +1,34 @@ +# `arm{,eb}v7r-none-eabi{,hf}` + +**Tier: 2** + +| Target | Description | +| ====================== | =================================== | +| `armv7r-none-eabi` | Bare ARMv7-R | +| `armv7r-none-eabihf` | Bare ARMv7-R, hardfloat | +| `armebv7r-none-eabi` | Bare ARMv7-R, big endian | +| `armebv7r-none-eabihf` | Bare ARMv7-R, big endian, hardfloat | + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/armebv7r_none_eabi.rs b/tests/assembly/targets/armebv7r_none_eabi.rs new file mode 100644 index 0000000000000..c9dda05599135 --- /dev/null +++ b/tests/assembly/targets/armebv7r_none_eabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armebv7r-none-eabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/armebv7r_none_eabihf.rs b/tests/assembly/targets/armebv7r_none_eabihf.rs new file mode 100644 index 0000000000000..520076f921ac5 --- /dev/null +++ b/tests/assembly/targets/armebv7r_none_eabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armebv7r-none-eabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/armv7r_none_eabi.rs b/tests/assembly/targets/armv7r_none_eabi.rs new file mode 100644 index 0000000000000..d9a5a4583179e --- /dev/null +++ b/tests/assembly/targets/armv7r_none_eabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7r-none-eabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/armv7r_none_eabihf.rs b/tests/assembly/targets/armv7r_none_eabihf.rs new file mode 100644 index 0000000000000..41879db2bf028 --- /dev/null +++ b/tests/assembly/targets/armv7r_none_eabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7r-none-eabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 275d93237ee85f813a5aca4e4dd3e4a068729b83 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 13:26:32 +0100 Subject: [PATCH 105/145] target compliance: armv7a-none-eabi Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../src/platform-support/armv7a_none_eabi.md | 29 +++++++++++++++++++ tests/assembly/targets/armv7a_none_eabi.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/armv7a_none_eabi.md create mode 100644 tests/assembly/targets/armv7a_none_eabi.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 39bba74eb1ae2..8a5aab13f6bf6 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -146,7 +146,7 @@ target | std | notes `armv7-unknown-linux-gnueabi` | ✓ | ARMv7-A Linux (kernel 4.15, glibc 2.27) `armv7-unknown-linux-musleabi` | ✓ | ARMv7-A Linux with MUSL `armv7-unknown-linux-musleabihf` | ✓ | ARMv7-A Linux with MUSL, hardfloat -`armv7a-none-eabi` | * | Bare ARMv7-A +[`armv7a-none-eabi`](platform-support/armv7a_none_eabi.md) | * | Bare ARMv7-A [`armv7r-none-eabi`](platform-support/armv7r.md) | * | Bare ARMv7-R [`armv7r-none-eabihf`](platform-support/armv7r.md) | * | Bare ARMv7-R, hardfloat [`asmjs-unknown-emscripten`](platform-support/asmjs_unknown_emscripten.md) | ✓ | asm.js via Emscripten diff --git a/src/doc/rustc/src/platform-support/armv7a_none_eabi.md b/src/doc/rustc/src/platform-support/armv7a_none_eabi.md new file mode 100644 index 0000000000000..bc68561132554 --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7a_none_eabi.md @@ -0,0 +1,29 @@ +# `armv7a-none-eabi` + +**Tier: 2** + +Bare ARMv7-A + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/armv7a_none_eabi.rs b/tests/assembly/targets/armv7a_none_eabi.rs new file mode 100644 index 0000000000000..6712149c1e678 --- /dev/null +++ b/tests/assembly/targets/armv7a_none_eabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7a-none-eabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 04244ac7ae0c075832076b8cd560621709e4d9fd Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 13:32:25 +0100 Subject: [PATCH 106/145] target compliance: armv7-unknown-linux-* Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 6 ++-- .../platform-support/armv7_unknown_linux.md | 29 +++++++++++++++++++ .../targets/armv7_unknown_linux_gnueabi.rs | 17 +++++++++++ .../targets/armv7_unknown_linux_musleabi.rs | 17 +++++++++++ .../targets/armv7_unknown_linux_musleabihf.rs | 17 +++++++++++ 5 files changed, 83 insertions(+), 3 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/armv7_unknown_linux.md create mode 100644 tests/assembly/targets/armv7_unknown_linux_gnueabi.rs create mode 100644 tests/assembly/targets/armv7_unknown_linux_musleabi.rs create mode 100644 tests/assembly/targets/armv7_unknown_linux_musleabihf.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 8a5aab13f6bf6..32c1351df540f 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -143,9 +143,9 @@ target | std | notes `armv5te-unknown-linux-gnueabi` | ✓ | ARMv5TE Linux (kernel 4.4, glibc 2.23) `armv5te-unknown-linux-musleabi` | ✓ | ARMv5TE Linux with MUSL [`armv7-linux-androideabi`](platform-support/android.md) | ✓ | ARMv7-A Android -`armv7-unknown-linux-gnueabi` | ✓ | ARMv7-A Linux (kernel 4.15, glibc 2.27) -`armv7-unknown-linux-musleabi` | ✓ | ARMv7-A Linux with MUSL -`armv7-unknown-linux-musleabihf` | ✓ | ARMv7-A Linux with MUSL, hardfloat +[`armv7-unknown-linux-gnueabi`](platform-support/armv7_unknown_linux.md) | ✓ | ARMv7-A Linux (kernel 4.15, glibc 2.27) +[`armv7-unknown-linux-musleabi`](platform-support/armv7_unknown_linux.md) | ✓ | ARMv7-A Linux with MUSL +[`armv7-unknown-linux-musleabihf`](platform-support/armv7_unknown_linux.md) | ✓ | ARMv7-A Linux with MUSL, hardfloat [`armv7a-none-eabi`](platform-support/armv7a_none_eabi.md) | * | Bare ARMv7-A [`armv7r-none-eabi`](platform-support/armv7r.md) | * | Bare ARMv7-R [`armv7r-none-eabihf`](platform-support/armv7r.md) | * | Bare ARMv7-R, hardfloat diff --git a/src/doc/rustc/src/platform-support/armv7_unknown_linux.md b/src/doc/rustc/src/platform-support/armv7_unknown_linux.md new file mode 100644 index 0000000000000..90bf276eafdff --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7_unknown_linux.md @@ -0,0 +1,29 @@ +# `armv7-unknown-linux-{gnueabi,musleabi,musleabihf}` + +**Tier: 2** + +ARMv7-A Linux (Kernel 4.15 with glibc 2.27, or MUSL, or MUSL w/ hardfloat) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/armv7_unknown_linux_gnueabi.rs b/tests/assembly/targets/armv7_unknown_linux_gnueabi.rs new file mode 100644 index 0000000000000..0e19238295c6d --- /dev/null +++ b/tests/assembly/targets/armv7_unknown_linux_gnueabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7-unknown-linux-gnueabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/armv7_unknown_linux_musleabi.rs b/tests/assembly/targets/armv7_unknown_linux_musleabi.rs new file mode 100644 index 0000000000000..cb818b648538a --- /dev/null +++ b/tests/assembly/targets/armv7_unknown_linux_musleabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7-unknown-linux-musleabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/armv7_unknown_linux_musleabihf.rs b/tests/assembly/targets/armv7_unknown_linux_musleabihf.rs new file mode 100644 index 0000000000000..a5870d0c10af7 --- /dev/null +++ b/tests/assembly/targets/armv7_unknown_linux_musleabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7-unknown-linux-musleabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 4c27eb66b6a073bdbb31946e6910954ab2b715c3 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 13:34:39 +0100 Subject: [PATCH 107/145] target compliance: armv7-linux-androideabi Signed-off-by: David Wood --- .../assembly/targets/armv7_linux_androideabi.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/armv7_linux_androideabi.rs diff --git a/tests/assembly/targets/armv7_linux_androideabi.rs b/tests/assembly/targets/armv7_linux_androideabi.rs new file mode 100644 index 0000000000000..94ffc6b0d6259 --- /dev/null +++ b/tests/assembly/targets/armv7_linux_androideabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7-linux-androideabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 7ed2d41d695032d3d7a6fd968330baf5aa2ebcde Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 13:37:18 +0100 Subject: [PATCH 108/145] target compliance: armv5te-unknown-linux-musleabi Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../armv5te_unknown_linux_musleabi.md | 29 +++++++++++++++++++ .../targets/armv5te_unknown_linux_musleabi.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/armv5te_unknown_linux_musleabi.md create mode 100644 tests/assembly/targets/armv5te_unknown_linux_musleabi.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 32c1351df540f..a1c5f6c097522 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -141,7 +141,7 @@ target | std | notes [`armebv7r-none-eabi`](platform-support/armv7r.md) | * | Bare ARMv7-R, big endian [`armebv7r-none-eabihf`](platform-support/armv7r.md) | * | Bare ARMv7-R, big endian, hardfloat `armv5te-unknown-linux-gnueabi` | ✓ | ARMv5TE Linux (kernel 4.4, glibc 2.23) -`armv5te-unknown-linux-musleabi` | ✓ | ARMv5TE Linux with MUSL +[`armv5te-unknown-linux-musleabi`](platform-support/armv5te_unknown_linux_musleabi.md) | ✓ | ARMv5TE Linux with MUSL [`armv7-linux-androideabi`](platform-support/android.md) | ✓ | ARMv7-A Android [`armv7-unknown-linux-gnueabi`](platform-support/armv7_unknown_linux.md) | ✓ | ARMv7-A Linux (kernel 4.15, glibc 2.27) [`armv7-unknown-linux-musleabi`](platform-support/armv7_unknown_linux.md) | ✓ | ARMv7-A Linux with MUSL diff --git a/src/doc/rustc/src/platform-support/armv5te_unknown_linux_musleabi.md b/src/doc/rustc/src/platform-support/armv5te_unknown_linux_musleabi.md new file mode 100644 index 0000000000000..6ddf2994c896c --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv5te_unknown_linux_musleabi.md @@ -0,0 +1,29 @@ +# `armv5te-unknown-linux-musleabi` + +**Tier: 2** + +ARMv5TE Linux with MUSL + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/armv5te_unknown_linux_musleabi.rs b/tests/assembly/targets/armv5te_unknown_linux_musleabi.rs new file mode 100644 index 0000000000000..a351a005084a1 --- /dev/null +++ b/tests/assembly/targets/armv5te_unknown_linux_musleabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv5te-unknown-linux-musleabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 2fded6c80b97f39d6c1b679a0285e99d6a8df5e8 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 13:38:57 +0100 Subject: [PATCH 109/145] target compliance: armv5te-unknown-linux-gnueabi Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../armv5te_unknown_linux_gnueabi.md | 29 +++++++++++++++++++ .../targets/armv5te_unknown_linux_gnueabi.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/armv5te_unknown_linux_gnueabi.md create mode 100644 tests/assembly/targets/armv5te_unknown_linux_gnueabi.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index a1c5f6c097522..ec63c8957aa09 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -140,7 +140,7 @@ target | std | notes `arm-unknown-linux-musleabihf` | ✓ | ARMv6 Linux with MUSL, hardfloat [`armebv7r-none-eabi`](platform-support/armv7r.md) | * | Bare ARMv7-R, big endian [`armebv7r-none-eabihf`](platform-support/armv7r.md) | * | Bare ARMv7-R, big endian, hardfloat -`armv5te-unknown-linux-gnueabi` | ✓ | ARMv5TE Linux (kernel 4.4, glibc 2.23) +[`armv5te-unknown-linux-gnueabi`](platform-support/armv5te_unknown_linux_gnueabi.md) | ✓ | ARMv5TE Linux (kernel 4.4, glibc 2.23) [`armv5te-unknown-linux-musleabi`](platform-support/armv5te_unknown_linux_musleabi.md) | ✓ | ARMv5TE Linux with MUSL [`armv7-linux-androideabi`](platform-support/android.md) | ✓ | ARMv7-A Android [`armv7-unknown-linux-gnueabi`](platform-support/armv7_unknown_linux.md) | ✓ | ARMv7-A Linux (kernel 4.15, glibc 2.27) diff --git a/src/doc/rustc/src/platform-support/armv5te_unknown_linux_gnueabi.md b/src/doc/rustc/src/platform-support/armv5te_unknown_linux_gnueabi.md new file mode 100644 index 0000000000000..dd5298eacb9ae --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv5te_unknown_linux_gnueabi.md @@ -0,0 +1,29 @@ +# `armv5te-unknown-linux-gnueabi` + +**Tier: 2** + +ARMv5TE Linux (Kernel 4.4, glibc 2.23) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/armv5te_unknown_linux_gnueabi.rs b/tests/assembly/targets/armv5te_unknown_linux_gnueabi.rs new file mode 100644 index 0000000000000..b43cf5f3042f7 --- /dev/null +++ b/tests/assembly/targets/armv5te_unknown_linux_gnueabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv5te-unknown-linux-gnueabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From b3fcd00692cd7f41be1d4d30bd7162b3f95d321e Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 13:42:48 +0100 Subject: [PATCH 110/145] target compliance: arm-unknown-linux-musleabi{,hf} Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- .../src/platform-support/arm-unknown-linux.md | 29 +++++++++++++++++++ .../targets/arm_unknown_linux_musleabi.rs | 17 +++++++++++ .../targets/arm_unknown_linux_musleabihf.rs | 17 +++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/arm-unknown-linux.md create mode 100644 tests/assembly/targets/arm_unknown_linux_musleabi.rs create mode 100644 tests/assembly/targets/arm_unknown_linux_musleabihf.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index ec63c8957aa09..3dc244e0192c0 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -136,8 +136,8 @@ target | std | notes `aarch64-unknown-none` | * | Bare ARM64, hardfloat [`aarch64-unknown-uefi`](platform-support/unknown-uefi.md) | * | ARM64 UEFI [`arm-linux-androideabi`](platform-support/android.md) | ✓ | ARMv6 Android -`arm-unknown-linux-musleabi` | ✓ | ARMv6 Linux with MUSL -`arm-unknown-linux-musleabihf` | ✓ | ARMv6 Linux with MUSL, hardfloat +[`arm-unknown-linux-musleabi`](platform-support/arm-unknown-linux.md) | ✓ | ARMv6 Linux with MUSL +[`arm-unknown-linux-musleabihf`](platform-support/arm-unknown-linux.md) | ✓ | ARMv6 Linux with MUSL, hardfloat [`armebv7r-none-eabi`](platform-support/armv7r.md) | * | Bare ARMv7-R, big endian [`armebv7r-none-eabihf`](platform-support/armv7r.md) | * | Bare ARMv7-R, big endian, hardfloat [`armv5te-unknown-linux-gnueabi`](platform-support/armv5te_unknown_linux_gnueabi.md) | ✓ | ARMv5TE Linux (kernel 4.4, glibc 2.23) diff --git a/src/doc/rustc/src/platform-support/arm-unknown-linux.md b/src/doc/rustc/src/platform-support/arm-unknown-linux.md new file mode 100644 index 0000000000000..dcfca81332ae4 --- /dev/null +++ b/src/doc/rustc/src/platform-support/arm-unknown-linux.md @@ -0,0 +1,29 @@ +# `arm-unknown-linux-musleabi{,hf}` + +**Tier: 2** + +ARMv6 Linux with MUSL (optionally hardfloat) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/arm_unknown_linux_musleabi.rs b/tests/assembly/targets/arm_unknown_linux_musleabi.rs new file mode 100644 index 0000000000000..acc387ea0781b --- /dev/null +++ b/tests/assembly/targets/arm_unknown_linux_musleabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target arm-unknown-linux-musleabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/arm_unknown_linux_musleabihf.rs b/tests/assembly/targets/arm_unknown_linux_musleabihf.rs new file mode 100644 index 0000000000000..7147b44e5c8a0 --- /dev/null +++ b/tests/assembly/targets/arm_unknown_linux_musleabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target arm-unknown-linux-musleabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From f13291f33ae7d7703322046b754a0b77e67f2ef0 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 13:44:14 +0100 Subject: [PATCH 111/145] target compliance: arm-linux-androideabi Signed-off-by: David Wood --- tests/assembly/targets/arm_linux_androideabi.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/arm_linux_androideabi.rs diff --git a/tests/assembly/targets/arm_linux_androideabi.rs b/tests/assembly/targets/arm_linux_androideabi.rs new file mode 100644 index 0000000000000..bdca304295c27 --- /dev/null +++ b/tests/assembly/targets/arm_linux_androideabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target arm-linux-androideabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 1480abbc0d148f23caa4959a568a5bbb8360f0f7 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 13:44:57 +0100 Subject: [PATCH 112/145] target compliance: aarch64-unknown-uefi Signed-off-by: David Wood --- tests/assembly/targets/aarch64_unknown_uefi.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/aarch64_unknown_uefi.rs diff --git a/tests/assembly/targets/aarch64_unknown_uefi.rs b/tests/assembly/targets/aarch64_unknown_uefi.rs new file mode 100644 index 0000000000000..adb401e2eb218 --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_uefi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-uefi +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 48b5b924cba49d8675f4ba929b74f68464702580 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 13:46:50 +0100 Subject: [PATCH 113/145] target compliance: aarch64-unknown-none{,-softfloat} Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- .../platform-support/aarch64_unknown_none.md | 29 +++++++++++++++++++ .../assembly/targets/aarch64_unknown_none.rs | 17 +++++++++++ .../targets/aarch64_unknown_none_softfloat.rs | 17 +++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/aarch64_unknown_none.md create mode 100644 tests/assembly/targets/aarch64_unknown_none.rs create mode 100644 tests/assembly/targets/aarch64_unknown_none_softfloat.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 3dc244e0192c0..0a1574160b399 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -132,8 +132,8 @@ target | std | notes [`aarch64-fuchsia`](platform-support/fuchsia.md) | ✓ | Alias for `aarch64-unknown-fuchsia` [`aarch64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | ARM64 Fuchsia [`aarch64-linux-android`](platform-support/android.md) | ✓ | ARM64 Android -`aarch64-unknown-none-softfloat` | * | Bare ARM64, softfloat -`aarch64-unknown-none` | * | Bare ARM64, hardfloat +[`aarch64-unknown-none-softfloat`](platform-support/aarch64-unknown-none-softfloat.md) | * | Bare ARM64, softfloat +[`aarch64-unknown-none`](platform-support/aarch64_unknown_none.md) | * | Bare ARM64, hardfloat [`aarch64-unknown-uefi`](platform-support/unknown-uefi.md) | * | ARM64 UEFI [`arm-linux-androideabi`](platform-support/android.md) | ✓ | ARMv6 Android [`arm-unknown-linux-musleabi`](platform-support/arm-unknown-linux.md) | ✓ | ARMv6 Linux with MUSL diff --git a/src/doc/rustc/src/platform-support/aarch64_unknown_none.md b/src/doc/rustc/src/platform-support/aarch64_unknown_none.md new file mode 100644 index 0000000000000..ccadb817c8b1c --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_unknown_none.md @@ -0,0 +1,29 @@ +# `aarch64-unknown-none{,-softfloat}` + +**Tier: 2** + +Bare ARM64, softfloat or hardfloat + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/aarch64_unknown_none.rs b/tests/assembly/targets/aarch64_unknown_none.rs new file mode 100644 index 0000000000000..7bd5f83cdb122 --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_none.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-none +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/aarch64_unknown_none_softfloat.rs b/tests/assembly/targets/aarch64_unknown_none_softfloat.rs new file mode 100644 index 0000000000000..63e91ab794dda --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_none_softfloat.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-none-softfloat +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 53b6839af27ba374587a45accce994f8267aa731 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 13:49:25 +0100 Subject: [PATCH 114/145] target compliance: aarch64-linux-android Signed-off-by: David Wood --- tests/assembly/targets/aarch64_linux_android.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/aarch64_linux_android.rs diff --git a/tests/assembly/targets/aarch64_linux_android.rs b/tests/assembly/targets/aarch64_linux_android.rs new file mode 100644 index 0000000000000..483e8508bc010 --- /dev/null +++ b/tests/assembly/targets/aarch64_linux_android.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-linux-android +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From baaa94d0690bfb2676475951124e167778b05260 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 13:50:13 +0100 Subject: [PATCH 115/145] target compliance: aarch64-apple-ios-sim Signed-off-by: David Wood --- tests/assembly/targets/aarch64_apple_ios_sim.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/aarch64_apple_ios_sim.rs diff --git a/tests/assembly/targets/aarch64_apple_ios_sim.rs b/tests/assembly/targets/aarch64_apple_ios_sim.rs new file mode 100644 index 0000000000000..e1a052e22a89a --- /dev/null +++ b/tests/assembly/targets/aarch64_apple_ios_sim.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-apple-ios-sim +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 5c3257f70e11809771b455eed565f3e5a7123c7a Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 13:52:15 +0100 Subject: [PATCH 116/145] target compliance: aarch64-apple-ios Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../src/platform-support/aarch64_apple_ios.md | 29 +++++++++++++++++++ tests/assembly/targets/aarch64_apple_ios.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/aarch64_apple_ios.md create mode 100644 tests/assembly/targets/aarch64_apple_ios.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 0a1574160b399..b6717d0b5c0ce 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -127,7 +127,7 @@ so Rustup may install the documentation for a similar tier 1 target instead. target | std | notes -------|:---:|------- -`aarch64-apple-ios` | ✓ | ARM64 iOS +[`aarch64-apple-ios`](platform-support/aarch64_apple_ios.md) | ✓ | ARM64 iOS [`aarch64-apple-ios-sim`](platform-support/aarch64-apple-ios-sim.md) | ✓ | Apple iOS Simulator on ARM64 [`aarch64-fuchsia`](platform-support/fuchsia.md) | ✓ | Alias for `aarch64-unknown-fuchsia` [`aarch64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | ARM64 Fuchsia diff --git a/src/doc/rustc/src/platform-support/aarch64_apple_ios.md b/src/doc/rustc/src/platform-support/aarch64_apple_ios.md new file mode 100644 index 0000000000000..111aa3334deef --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_apple_ios.md @@ -0,0 +1,29 @@ +# `aarch64-apple-ios` + +**Tier: 2** + +ARM64 iOS + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/aarch64_apple_ios.rs b/tests/assembly/targets/aarch64_apple_ios.rs new file mode 100644 index 0000000000000..c2ca9908f1cd3 --- /dev/null +++ b/tests/assembly/targets/aarch64_apple_ios.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-apple-ios +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 3b31f46aedc7affe018c39bd6ad1a9b3587178c7 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 13:57:39 +0100 Subject: [PATCH 117/145] target compliance: x86_64-unknown-linux-musl Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../x86_64_unknown_linux_musl.md | 29 +++++++++++++++++++ .../targets/x86_64_unknown_linux_musl.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/x86_64_unknown_linux_musl.md create mode 100644 tests/assembly/targets/x86_64_unknown_linux_musl.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index b6717d0b5c0ce..9d86e41a7e5c5 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -101,7 +101,7 @@ target | notes `s390x-unknown-linux-gnu` | S390x Linux (kernel 3.2, glibc 2.17) [`x86_64-unknown-freebsd`](platform-support/freebsd.md) | 64-bit FreeBSD `x86_64-unknown-illumos` | illumos -`x86_64-unknown-linux-musl` | 64-bit Linux with MUSL +[`x86_64-unknown-linux-musl`](platform-support/x86_64_unknown_linux_musl.md) | 64-bit Linux with MUSL [`x86_64-unknown-netbsd`](platform-support/netbsd.md) | NetBSD/amd64 ## Tier 2 without Host Tools diff --git a/src/doc/rustc/src/platform-support/x86_64_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/x86_64_unknown_linux_musl.md new file mode 100644 index 0000000000000..ac61064a94d74 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_unknown_linux_musl.md @@ -0,0 +1,29 @@ +# `x86_64-unknown-linux-musl` + +**Tier: 2 (with Host Tools)** + +64-bit Linux with MUSL + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/x86_64_unknown_linux_musl.rs b/tests/assembly/targets/x86_64_unknown_linux_musl.rs new file mode 100644 index 0000000000000..cf78bd5cb5766 --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-linux-musl +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 1d86a04fb48fd70b327af5c9a4c1638d98bdcc24 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 14:00:16 +0100 Subject: [PATCH 118/145] target compliance: x86_64-unknown-illumos Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../x86_64_unknown_illumos.md | 29 +++++++++++++++++++ .../targets/x86_64_unknown_illumos.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/x86_64_unknown_illumos.md create mode 100644 tests/assembly/targets/x86_64_unknown_illumos.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 9d86e41a7e5c5..568d2eae76da8 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -100,7 +100,7 @@ target | notes `riscv64gc-unknown-linux-gnu` | RISC-V Linux (kernel 4.20, glibc 2.29) `s390x-unknown-linux-gnu` | S390x Linux (kernel 3.2, glibc 2.17) [`x86_64-unknown-freebsd`](platform-support/freebsd.md) | 64-bit FreeBSD -`x86_64-unknown-illumos` | illumos +[`x86_64-unknown-illumos`](platform-support/x86_64_unknown_illumos.md) | illumos [`x86_64-unknown-linux-musl`](platform-support/x86_64_unknown_linux_musl.md) | 64-bit Linux with MUSL [`x86_64-unknown-netbsd`](platform-support/netbsd.md) | NetBSD/amd64 diff --git a/src/doc/rustc/src/platform-support/x86_64_unknown_illumos.md b/src/doc/rustc/src/platform-support/x86_64_unknown_illumos.md new file mode 100644 index 0000000000000..1bcbdb35500fc --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_unknown_illumos.md @@ -0,0 +1,29 @@ +# `x86_64-unknown-illumos` + +**Tier: 2 (with Host Tools)** + +illumos + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/x86_64_unknown_illumos.rs b/tests/assembly/targets/x86_64_unknown_illumos.rs new file mode 100644 index 0000000000000..9f433b58116c8 --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_illumos.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-illumos +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 2fef4a228e80e8d7764f1a675e4faa75cdb433dd Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 14:06:18 +0100 Subject: [PATCH 119/145] target compliance: s390x-unknown-linux-gnu Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../s390x_unknown_linux_gnu.md | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/s390x_unknown_linux_gnu.md diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 568d2eae76da8..16c465862af38 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -98,7 +98,7 @@ target | notes `powerpc64-unknown-linux-gnu` | PPC64 Linux (kernel 3.2, glibc 2.17) `powerpc64le-unknown-linux-gnu` | PPC64LE Linux (kernel 3.10, glibc 2.17) `riscv64gc-unknown-linux-gnu` | RISC-V Linux (kernel 4.20, glibc 2.29) -`s390x-unknown-linux-gnu` | S390x Linux (kernel 3.2, glibc 2.17) +[`s390x-unknown-linux-gnu`](platform-support/s390x_unknown_linux_gnu.md) | S390x Linux (kernel 3.2, glibc 2.17) [`x86_64-unknown-freebsd`](platform-support/freebsd.md) | 64-bit FreeBSD [`x86_64-unknown-illumos`](platform-support/x86_64_unknown_illumos.md) | illumos [`x86_64-unknown-linux-musl`](platform-support/x86_64_unknown_linux_musl.md) | 64-bit Linux with MUSL diff --git a/src/doc/rustc/src/platform-support/s390x_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/s390x_unknown_linux_gnu.md new file mode 100644 index 0000000000000..da2262a18f5ee --- /dev/null +++ b/src/doc/rustc/src/platform-support/s390x_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `s390x-unknown-linux-gnu` + +**Tier: 2 (with Host Tools)** + +S390x Linux (kernel 3.2, glibc 2.17) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! From 0e5af926b80fb93811591fa4bb72cbfe88ac85b6 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 14:08:15 +0100 Subject: [PATCH 120/145] target compliance: riscv64gc-unknown-linux-gnu Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../riscv64gc_unknown_linux_gnu.md | 29 +++++++++++++++++++ .../targets/riscv64gc_unknown_linux_gnu.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/riscv64gc_unknown_linux_gnu.md create mode 100644 tests/assembly/targets/riscv64gc_unknown_linux_gnu.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 16c465862af38..d27c1c5dc6208 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -97,7 +97,7 @@ target | notes `powerpc-unknown-linux-gnu` | PowerPC Linux (kernel 3.2, glibc 2.17) `powerpc64-unknown-linux-gnu` | PPC64 Linux (kernel 3.2, glibc 2.17) `powerpc64le-unknown-linux-gnu` | PPC64LE Linux (kernel 3.10, glibc 2.17) -`riscv64gc-unknown-linux-gnu` | RISC-V Linux (kernel 4.20, glibc 2.29) +[`riscv64gc-unknown-linux-gnu`](platform-support/riscv64gc_unknown_linux_gnu.md) | RISC-V Linux (kernel 4.20, glibc 2.29) [`s390x-unknown-linux-gnu`](platform-support/s390x_unknown_linux_gnu.md) | S390x Linux (kernel 3.2, glibc 2.17) [`x86_64-unknown-freebsd`](platform-support/freebsd.md) | 64-bit FreeBSD [`x86_64-unknown-illumos`](platform-support/x86_64_unknown_illumos.md) | illumos diff --git a/src/doc/rustc/src/platform-support/riscv64gc_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/riscv64gc_unknown_linux_gnu.md new file mode 100644 index 0000000000000..66d54bcee5518 --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv64gc_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `riscv64gc-unknown-linux-gnu` + +**Tier: 2 (with Host Tools)** + +RISC-V Linux (kernel 4.20, glibc 2.29) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/riscv64gc_unknown_linux_gnu.rs b/tests/assembly/targets/riscv64gc_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..806fd5dcdb4a9 --- /dev/null +++ b/tests/assembly/targets/riscv64gc_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target riscv64gc-unknown-linux-gnu +// needs-llvm-components: riscv + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 18cb8af74ce607c2a72d6050f5f273a56b948819 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 14:14:55 +0100 Subject: [PATCH 121/145] target compliance: powerpc64{,le}-unknown-linux-gnu Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- .../powerpc64_unknown_linux_gnu.md | 29 +++++++++++++++++++ .../targets/powerpc64_unknown_linux_gnu.rs | 17 +++++++++++ .../targets/powerpc64le_unknown_linux_gnu.rs | 17 +++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/powerpc64_unknown_linux_gnu.md create mode 100644 tests/assembly/targets/powerpc64_unknown_linux_gnu.rs create mode 100644 tests/assembly/targets/powerpc64le_unknown_linux_gnu.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index d27c1c5dc6208..61518fade2fbd 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -95,8 +95,8 @@ target | notes `mips64el-unknown-linux-gnuabi64` | MIPS64 (LE) Linux, n64 ABI (kernel 4.4, glibc 2.23) `mipsel-unknown-linux-gnu` | MIPS (LE) Linux (kernel 4.4, glibc 2.23) `powerpc-unknown-linux-gnu` | PowerPC Linux (kernel 3.2, glibc 2.17) -`powerpc64-unknown-linux-gnu` | PPC64 Linux (kernel 3.2, glibc 2.17) -`powerpc64le-unknown-linux-gnu` | PPC64LE Linux (kernel 3.10, glibc 2.17) +[`powerpc64-unknown-linux-gnu`](platform-support/powerpc64_unknown_linux_gnu.md) | PPC64 Linux (kernel 3.2, glibc 2.17) +[`powerpc64le-unknown-linux-gnu`](platform-support/powerpc64_unknown_linux_gnu.md) | PPC64LE Linux (kernel 3.10, glibc 2.17) [`riscv64gc-unknown-linux-gnu`](platform-support/riscv64gc_unknown_linux_gnu.md) | RISC-V Linux (kernel 4.20, glibc 2.29) [`s390x-unknown-linux-gnu`](platform-support/s390x_unknown_linux_gnu.md) | S390x Linux (kernel 3.2, glibc 2.17) [`x86_64-unknown-freebsd`](platform-support/freebsd.md) | 64-bit FreeBSD diff --git a/src/doc/rustc/src/platform-support/powerpc64_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/powerpc64_unknown_linux_gnu.md new file mode 100644 index 0000000000000..f7237a623e370 --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc64_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `powerpc64{,le}-unknown-linux-gnu` + +**Tier: 2 (with Host Tools)** + +PPC64 Linux (kernel 3.2, glibc 2.17) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/powerpc64_unknown_linux_gnu.rs b/tests/assembly/targets/powerpc64_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..274d86ab08f8a --- /dev/null +++ b/tests/assembly/targets/powerpc64_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc64-unknown-linux-gnu +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/powerpc64le_unknown_linux_gnu.rs b/tests/assembly/targets/powerpc64le_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..50cf0e259f826 --- /dev/null +++ b/tests/assembly/targets/powerpc64le_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc64le-unknown-linux-gnu +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From d44c9e10fc8f76966e005239d3bcc4f4dc134b2c Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 14:21:40 +0100 Subject: [PATCH 122/145] target compliance: powerpc-unknown-linux-gnu Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../powerpc_unknown_linux_gnu.md | 29 +++++++++++++++++++ .../targets/powerpc_unknown_linux_gnu.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/powerpc_unknown_linux_gnu.md create mode 100644 tests/assembly/targets/powerpc_unknown_linux_gnu.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 61518fade2fbd..86c42ba9ee69a 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -94,7 +94,7 @@ target | notes `mips64-unknown-linux-gnuabi64` | MIPS64 Linux, n64 ABI (kernel 4.4, glibc 2.23) `mips64el-unknown-linux-gnuabi64` | MIPS64 (LE) Linux, n64 ABI (kernel 4.4, glibc 2.23) `mipsel-unknown-linux-gnu` | MIPS (LE) Linux (kernel 4.4, glibc 2.23) -`powerpc-unknown-linux-gnu` | PowerPC Linux (kernel 3.2, glibc 2.17) +[`powerpc-unknown-linux-gnu`](platform-support/powerpc_unknown_linux_gnu.md) | PowerPC Linux (kernel 3.2, glibc 2.17) [`powerpc64-unknown-linux-gnu`](platform-support/powerpc64_unknown_linux_gnu.md) | PPC64 Linux (kernel 3.2, glibc 2.17) [`powerpc64le-unknown-linux-gnu`](platform-support/powerpc64_unknown_linux_gnu.md) | PPC64LE Linux (kernel 3.10, glibc 2.17) [`riscv64gc-unknown-linux-gnu`](platform-support/riscv64gc_unknown_linux_gnu.md) | RISC-V Linux (kernel 4.20, glibc 2.29) diff --git a/src/doc/rustc/src/platform-support/powerpc_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/powerpc_unknown_linux_gnu.md new file mode 100644 index 0000000000000..4a84ae69f43b7 --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `powerpc-unknown-linux-gnu` + +**Tier: 2 (with Host Tools)** + +PowerPC Linux (kernel 3.2, glibc 2.17) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/powerpc_unknown_linux_gnu.rs b/tests/assembly/targets/powerpc_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..98c7c12bb7751 --- /dev/null +++ b/tests/assembly/targets/powerpc_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target powerpc-unknown-linux-gnu +// needs-llvm-components: powerpc + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From cf06153a07fe12e7a56e4c4b1895deebd8c86dd9 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 14:24:16 +0100 Subject: [PATCH 123/145] target compliance: misp{,el}-unknown-linux-gnu Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- .../mips_unknown_linux_gnu.md | 29 +++++++++++++++++++ .../targets/mips_unknown_linux_gnu.rs | 17 +++++++++++ .../targets/mipsel_unknown_linux_gnu.rs | 17 +++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/mips_unknown_linux_gnu.md create mode 100644 tests/assembly/targets/mips_unknown_linux_gnu.rs create mode 100644 tests/assembly/targets/mipsel_unknown_linux_gnu.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 86c42ba9ee69a..923ea251c6c0e 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -90,10 +90,10 @@ target | notes `arm-unknown-linux-gnueabihf` | ARMv6 Linux, hardfloat (kernel 3.2, glibc 2.17) `armv7-unknown-linux-gnueabihf` | ARMv7-A Linux, hardfloat (kernel 3.2, glibc 2.17) [`loongarch64-unknown-linux-gnu`](platform-support/loongarch-linux.md) | LoongArch64 Linux, LP64D ABI (kernel 5.19, glibc 2.36) -`mips-unknown-linux-gnu` | MIPS Linux (kernel 4.4, glibc 2.23) +[`mips-unknown-linux-gnu`](platform-support/mips_unknown_linux_gnu.md) | MIPS Linux (kernel 4.4, glibc 2.23) `mips64-unknown-linux-gnuabi64` | MIPS64 Linux, n64 ABI (kernel 4.4, glibc 2.23) `mips64el-unknown-linux-gnuabi64` | MIPS64 (LE) Linux, n64 ABI (kernel 4.4, glibc 2.23) -`mipsel-unknown-linux-gnu` | MIPS (LE) Linux (kernel 4.4, glibc 2.23) +[`mipsel-unknown-linux-gnu`](platform-support/mipsel-unknown-linux-gnu.md) | MIPS (LE) Linux (kernel 4.4, glibc 2.23) [`powerpc-unknown-linux-gnu`](platform-support/powerpc_unknown_linux_gnu.md) | PowerPC Linux (kernel 3.2, glibc 2.17) [`powerpc64-unknown-linux-gnu`](platform-support/powerpc64_unknown_linux_gnu.md) | PPC64 Linux (kernel 3.2, glibc 2.17) [`powerpc64le-unknown-linux-gnu`](platform-support/powerpc64_unknown_linux_gnu.md) | PPC64LE Linux (kernel 3.10, glibc 2.17) diff --git a/src/doc/rustc/src/platform-support/mips_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/mips_unknown_linux_gnu.md new file mode 100644 index 0000000000000..911006869b336 --- /dev/null +++ b/src/doc/rustc/src/platform-support/mips_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `mips{,el}-unknown-linux-gnuabi64` + +**Tier: 2 (with Host Tools)** + +MIPS Linux (optionally little endian, kernel 4.4, glibc 2.23) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/mips_unknown_linux_gnu.rs b/tests/assembly/targets/mips_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..49b305045fd01 --- /dev/null +++ b/tests/assembly/targets/mips_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mips-unknown-linux-gnu +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/mipsel_unknown_linux_gnu.rs b/tests/assembly/targets/mipsel_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..882090ba239ee --- /dev/null +++ b/tests/assembly/targets/mipsel_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mipsel-unknown-linux-gnu +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From a78c838ffde6bb268880fc97146ab2ffc7fd84e6 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 14:27:48 +0100 Subject: [PATCH 124/145] target compliance: mips64{,el}-unknown-linux-gnuabi64 Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 4 +-- .../mips64_unknown_linux_gnuabi64.md | 29 +++++++++++++++++++ .../targets/mips64_unknown_linux_gnuabi64.rs | 17 +++++++++++ .../mips64el_unknown_linux_gnuabi64.rs | 17 +++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/doc/rustc/src/platform-support/mips64_unknown_linux_gnuabi64.md create mode 100644 tests/assembly/targets/mips64_unknown_linux_gnuabi64.rs create mode 100644 tests/assembly/targets/mips64el_unknown_linux_gnuabi64.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 923ea251c6c0e..15a065206201b 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -91,8 +91,8 @@ target | notes `armv7-unknown-linux-gnueabihf` | ARMv7-A Linux, hardfloat (kernel 3.2, glibc 2.17) [`loongarch64-unknown-linux-gnu`](platform-support/loongarch-linux.md) | LoongArch64 Linux, LP64D ABI (kernel 5.19, glibc 2.36) [`mips-unknown-linux-gnu`](platform-support/mips_unknown_linux_gnu.md) | MIPS Linux (kernel 4.4, glibc 2.23) -`mips64-unknown-linux-gnuabi64` | MIPS64 Linux, n64 ABI (kernel 4.4, glibc 2.23) -`mips64el-unknown-linux-gnuabi64` | MIPS64 (LE) Linux, n64 ABI (kernel 4.4, glibc 2.23) +[`mips64-unknown-linux-gnuabi64`](platform-support/mips64-unknown-linux-gnuabi64.md) | MIPS64 Linux, n64 ABI (kernel 4.4, glibc 2.23) +[`mips64el-unknown-linux-gnuabi64`](platform-support/mips64_unknown_linux_gnuabi64.md) | MIPS64 (LE) Linux, n64 ABI (kernel 4.4, glibc 2.23) [`mipsel-unknown-linux-gnu`](platform-support/mipsel-unknown-linux-gnu.md) | MIPS (LE) Linux (kernel 4.4, glibc 2.23) [`powerpc-unknown-linux-gnu`](platform-support/powerpc_unknown_linux_gnu.md) | PowerPC Linux (kernel 3.2, glibc 2.17) [`powerpc64-unknown-linux-gnu`](platform-support/powerpc64_unknown_linux_gnu.md) | PPC64 Linux (kernel 3.2, glibc 2.17) diff --git a/src/doc/rustc/src/platform-support/mips64_unknown_linux_gnuabi64.md b/src/doc/rustc/src/platform-support/mips64_unknown_linux_gnuabi64.md new file mode 100644 index 0000000000000..35acd66499430 --- /dev/null +++ b/src/doc/rustc/src/platform-support/mips64_unknown_linux_gnuabi64.md @@ -0,0 +1,29 @@ +# `mips64{,el}-unknown-linux-gnuabi64` + +**Tier: 2 (with Host Tools)** + +MIPS64 Linux (optionally little endian), n64 ABI (kernel 4.4, glibc 2.23) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/mips64_unknown_linux_gnuabi64.rs b/tests/assembly/targets/mips64_unknown_linux_gnuabi64.rs new file mode 100644 index 0000000000000..e74d52d7316b4 --- /dev/null +++ b/tests/assembly/targets/mips64_unknown_linux_gnuabi64.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mips64-unknown-linux-gnuabi64 +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/mips64el_unknown_linux_gnuabi64.rs b/tests/assembly/targets/mips64el_unknown_linux_gnuabi64.rs new file mode 100644 index 0000000000000..ec9d3b93f2f44 --- /dev/null +++ b/tests/assembly/targets/mips64el_unknown_linux_gnuabi64.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target mips64el-unknown-linux-gnuabi64 +// needs-llvm-components: mips + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From e5e79ce38b22e9645f7aebe219425ce7ae71fea8 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 14:38:09 +0100 Subject: [PATCH 125/145] target compliance: loongarch64-unknown-linux-gnu Signed-off-by: David Wood --- .../targets/loongarch64_unknown_linux_gnu.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/loongarch64_unknown_linux_gnu.rs diff --git a/tests/assembly/targets/loongarch64_unknown_linux_gnu.rs b/tests/assembly/targets/loongarch64_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..3c27630957c5b --- /dev/null +++ b/tests/assembly/targets/loongarch64_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target loongarch64-unknown-linux-gnu +// needs-llvm-components: loongarch + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 71674ac02df007c4782797cf163a63e3306369a5 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 14:41:53 +0100 Subject: [PATCH 126/145] target compliance: armv7-unknown-linux-gnueabihf Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../armv7_unknown_linux_gnueabihf.md | 29 +++++++++++++++++++ .../targets/armv7_unknown_linux_gnueabihf.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabihf.md create mode 100644 tests/assembly/targets/armv7_unknown_linux_gnueabihf.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 15a065206201b..aa73c8de9b2da 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -88,7 +88,7 @@ target | notes `aarch64-unknown-linux-musl` | ARM64 Linux with MUSL `arm-unknown-linux-gnueabi` | ARMv6 Linux (kernel 3.2, glibc 2.17) `arm-unknown-linux-gnueabihf` | ARMv6 Linux, hardfloat (kernel 3.2, glibc 2.17) -`armv7-unknown-linux-gnueabihf` | ARMv7-A Linux, hardfloat (kernel 3.2, glibc 2.17) +[`armv7-unknown-linux-gnueabihf`](platform-support/armv7_unknown_linux_gnueabihf.md) | ARMv7-A Linux, hardfloat (kernel 3.2, glibc 2.17) [`loongarch64-unknown-linux-gnu`](platform-support/loongarch-linux.md) | LoongArch64 Linux, LP64D ABI (kernel 5.19, glibc 2.36) [`mips-unknown-linux-gnu`](platform-support/mips_unknown_linux_gnu.md) | MIPS Linux (kernel 4.4, glibc 2.23) [`mips64-unknown-linux-gnuabi64`](platform-support/mips64-unknown-linux-gnuabi64.md) | MIPS64 Linux, n64 ABI (kernel 4.4, glibc 2.23) diff --git a/src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabihf.md b/src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabihf.md new file mode 100644 index 0000000000000..c9eb4b9fb075a --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabihf.md @@ -0,0 +1,29 @@ +# `armv7-unknown-linux-gnueabihf` + +**Tier: 2 (with Host Tools)** + +ARMv7-A Linux, hardfloat (kernel 3.2, glibc 2.17) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/armv7_unknown_linux_gnueabihf.rs b/tests/assembly/targets/armv7_unknown_linux_gnueabihf.rs new file mode 100644 index 0000000000000..6eff7b66afc79 --- /dev/null +++ b/tests/assembly/targets/armv7_unknown_linux_gnueabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7-unknown-linux-gnueabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 23fdc0c50192b7291b0caa1ad467547456cfa0c9 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 14:52:10 +0100 Subject: [PATCH 127/145] target compliance: arm-unknown-linux-gnueabi{,hf} Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 8 ++--- .../src/platform-support/arm-unknown-linux.md | 29 ---------------- .../src/platform-support/arm_unknown_linux.md | 34 +++++++++++++++++++ .../targets/arm_unknown_linux_gnueabi.rs | 17 ++++++++++ .../targets/arm_unknown_linux_gnueabihf.rs | 17 ++++++++++ 5 files changed, 72 insertions(+), 33 deletions(-) delete mode 100644 src/doc/rustc/src/platform-support/arm-unknown-linux.md create mode 100644 src/doc/rustc/src/platform-support/arm_unknown_linux.md create mode 100644 tests/assembly/targets/arm_unknown_linux_gnueabi.rs create mode 100644 tests/assembly/targets/arm_unknown_linux_gnueabihf.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index aa73c8de9b2da..2d06041325164 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -86,8 +86,8 @@ target | notes `aarch64-apple-darwin` | ARM64 macOS (11.0+, Big Sur+) [`aarch64-pc-windows-msvc`](platform-support/windows_msvc.md) | ARM64 Windows MSVC `aarch64-unknown-linux-musl` | ARM64 Linux with MUSL -`arm-unknown-linux-gnueabi` | ARMv6 Linux (kernel 3.2, glibc 2.17) -`arm-unknown-linux-gnueabihf` | ARMv6 Linux, hardfloat (kernel 3.2, glibc 2.17) +[`arm-unknown-linux-gnueabi`](platform-support/arm_unknown_linux.md) | ARMv6 Linux (kernel 3.2, glibc 2.17) +[`arm-unknown-linux-gnueabihf`](platform-support/arm_unknown_linux.md) | ARMv6 Linux, hardfloat (kernel 3.2, glibc 2.17) [`armv7-unknown-linux-gnueabihf`](platform-support/armv7_unknown_linux_gnueabihf.md) | ARMv7-A Linux, hardfloat (kernel 3.2, glibc 2.17) [`loongarch64-unknown-linux-gnu`](platform-support/loongarch-linux.md) | LoongArch64 Linux, LP64D ABI (kernel 5.19, glibc 2.36) [`mips-unknown-linux-gnu`](platform-support/mips_unknown_linux_gnu.md) | MIPS Linux (kernel 4.4, glibc 2.23) @@ -136,8 +136,8 @@ target | std | notes [`aarch64-unknown-none`](platform-support/aarch64_unknown_none.md) | * | Bare ARM64, hardfloat [`aarch64-unknown-uefi`](platform-support/unknown-uefi.md) | * | ARM64 UEFI [`arm-linux-androideabi`](platform-support/android.md) | ✓ | ARMv6 Android -[`arm-unknown-linux-musleabi`](platform-support/arm-unknown-linux.md) | ✓ | ARMv6 Linux with MUSL -[`arm-unknown-linux-musleabihf`](platform-support/arm-unknown-linux.md) | ✓ | ARMv6 Linux with MUSL, hardfloat +[`arm-unknown-linux-musleabi`](platform-support/arm_unknown_linux.md) | ✓ | ARMv6 Linux with MUSL +[`arm-unknown-linux-musleabihf`](platform-support/arm_unknown_linux.md) | ✓ | ARMv6 Linux with MUSL, hardfloat [`armebv7r-none-eabi`](platform-support/armv7r.md) | * | Bare ARMv7-R, big endian [`armebv7r-none-eabihf`](platform-support/armv7r.md) | * | Bare ARMv7-R, big endian, hardfloat [`armv5te-unknown-linux-gnueabi`](platform-support/armv5te_unknown_linux_gnueabi.md) | ✓ | ARMv5TE Linux (kernel 4.4, glibc 2.23) diff --git a/src/doc/rustc/src/platform-support/arm-unknown-linux.md b/src/doc/rustc/src/platform-support/arm-unknown-linux.md deleted file mode 100644 index dcfca81332ae4..0000000000000 --- a/src/doc/rustc/src/platform-support/arm-unknown-linux.md +++ /dev/null @@ -1,29 +0,0 @@ -# `arm-unknown-linux-musleabi{,hf}` - -**Tier: 2** - -ARMv6 Linux with MUSL (optionally hardfloat) - -## Target maintainers - -- Missing! - -## Requirements - -Missing! - -## Building the target - -Missing! - -## Building Rust programs - -Missing! - -## Testing - -Missing! - -## Cross-compilation toolchains and C code - -Missing! diff --git a/src/doc/rustc/src/platform-support/arm_unknown_linux.md b/src/doc/rustc/src/platform-support/arm_unknown_linux.md new file mode 100644 index 0000000000000..aa73455d403bc --- /dev/null +++ b/src/doc/rustc/src/platform-support/arm_unknown_linux.md @@ -0,0 +1,34 @@ +# `arm-unknown-linux-{gnu,musl}eabi{,hf}` + +**Tier: 2** + +| Target | Tier | Description | +| ============================== | ====================== | =============================================== | +| `arm-unknown-linux-gnueabi` | Tier 2 with Host Tools | ARMv6 Linux (kernel 3.2, glibc 2.17) | +| `arm-unknown-linux-gnueabihf` | Tier 2 with Host Tools | ARMv6 Linux, hardfloat (kernel 3.2, glibc 2.17) | +| `arm-unknown-linux-musleabi` | Tier 2 | ARMv6 Linux with MUSL | +| `arm-unknown-linux-musleabihf` | Tier 2 | ARMv6 Linux with MUSL (hardfloat) | + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/arm_unknown_linux_gnueabi.rs b/tests/assembly/targets/arm_unknown_linux_gnueabi.rs new file mode 100644 index 0000000000000..a11d389583fcb --- /dev/null +++ b/tests/assembly/targets/arm_unknown_linux_gnueabi.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target arm-unknown-linux-gnueabi +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/arm_unknown_linux_gnueabihf.rs b/tests/assembly/targets/arm_unknown_linux_gnueabihf.rs new file mode 100644 index 0000000000000..ca9c3c02af7fa --- /dev/null +++ b/tests/assembly/targets/arm_unknown_linux_gnueabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target arm-unknown-linux-gnueabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From e6b14471e6caf91aed06bcb371916cedc9282fee Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 14:55:27 +0100 Subject: [PATCH 128/145] target compliance: aarch64-unknown-linux-musl Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../aarch64_unknown_linux_musl.md | 29 +++++++++++++++++++ .../targets/aarch64_unknown_linux_musl.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/aarch64_unknown_linux_musl.md create mode 100644 tests/assembly/targets/aarch64_unknown_linux_musl.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 2d06041325164..89da90a91d0b1 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -85,7 +85,7 @@ target | notes -------|------- `aarch64-apple-darwin` | ARM64 macOS (11.0+, Big Sur+) [`aarch64-pc-windows-msvc`](platform-support/windows_msvc.md) | ARM64 Windows MSVC -`aarch64-unknown-linux-musl` | ARM64 Linux with MUSL +[`aarch64-unknown-linux-musl`](platform-support/aarch64_unknown_linux_musl.md) | ARM64 Linux with MUSL [`arm-unknown-linux-gnueabi`](platform-support/arm_unknown_linux.md) | ARMv6 Linux (kernel 3.2, glibc 2.17) [`arm-unknown-linux-gnueabihf`](platform-support/arm_unknown_linux.md) | ARMv6 Linux, hardfloat (kernel 3.2, glibc 2.17) [`armv7-unknown-linux-gnueabihf`](platform-support/armv7_unknown_linux_gnueabihf.md) | ARMv7-A Linux, hardfloat (kernel 3.2, glibc 2.17) diff --git a/src/doc/rustc/src/platform-support/aarch64_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/aarch64_unknown_linux_musl.md new file mode 100644 index 0000000000000..f1a9062dc1a29 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_unknown_linux_musl.md @@ -0,0 +1,29 @@ +# `aarch64-unknown-linux-musl` + +**Tier: 2 (with Host Tools)** + +ARM64 Linux with MUSL + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/aarch64_unknown_linux_musl.rs b/tests/assembly/targets/aarch64_unknown_linux_musl.rs new file mode 100644 index 0000000000000..81d0562c94899 --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_linux_musl.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-linux-musl +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 654e5b5c0b462c76684fc77b31c6788ceb5f8bc0 Mon Sep 17 00:00:00 2001 From: David Wood Date: Wed, 20 Sep 2023 14:14:37 +0100 Subject: [PATCH 129/145] target compliance: aarch64-apple-darwin Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../platform-support/aarch64_apple_darwin.md | 29 +++++++++++++++++++ .../assembly/targets/aarch64_apple_darwin.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/aarch64_apple_darwin.md create mode 100644 tests/assembly/targets/aarch64_apple_darwin.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 89da90a91d0b1..9804377af8c4c 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -83,7 +83,7 @@ so Rustup may install the documentation for a similar tier 1 target instead. target | notes -------|------- -`aarch64-apple-darwin` | ARM64 macOS (11.0+, Big Sur+) +[`aarch64-apple-darwin`](platform-support/aarch64_apple_darwin.md) | ARM64 macOS (11.0+, Big Sur+) [`aarch64-pc-windows-msvc`](platform-support/windows_msvc.md) | ARM64 Windows MSVC [`aarch64-unknown-linux-musl`](platform-support/aarch64_unknown_linux_musl.md) | ARM64 Linux with MUSL [`arm-unknown-linux-gnueabi`](platform-support/arm_unknown_linux.md) | ARMv6 Linux (kernel 3.2, glibc 2.17) diff --git a/src/doc/rustc/src/platform-support/aarch64_apple_darwin.md b/src/doc/rustc/src/platform-support/aarch64_apple_darwin.md new file mode 100644 index 0000000000000..ee4f04977f90e --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_apple_darwin.md @@ -0,0 +1,29 @@ +# `aarch64-apple-darwin` + +**Tier: 2 (with Host Tools)** + +ARM64 macOS (11.0+, Big Sur+) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/aarch64_apple_darwin.rs b/tests/assembly/targets/aarch64_apple_darwin.rs new file mode 100644 index 0000000000000..b6b6a7d9d104c --- /dev/null +++ b/tests/assembly/targets/aarch64_apple_darwin.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-apple-darwin +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 0b5a849f7aaceb707264de2d4ea07749c69de3c3 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 15:01:10 +0100 Subject: [PATCH 130/145] target compliance: x86_64-unknown-linux-gnu Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../x86_64_unknown_linux_gnu.md | 29 +++++++++++++++++++ .../targets/x86_64_unknown_linux_gnu.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/x86_64_unknown_linux_gnu.md create mode 100644 tests/assembly/targets/x86_64_unknown_linux_gnu.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 9804377af8c4c..87a39889d5db0 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -39,7 +39,7 @@ target | notes `x86_64-apple-darwin` | 64-bit macOS (10.7+, Lion+) `x86_64-pc-windows-gnu` | 64-bit MinGW (Windows 7+) [^windows-support] [`x86_64-pc-windows-msvc`](platform-support/windows_msvc.md) | 64-bit MSVC (Windows 7+) [^windows-support] -`x86_64-unknown-linux-gnu` | 64-bit Linux (kernel 3.2+, glibc 2.17+) +[`x86_64-unknown-linux-gnu`](platform-support/x86_64_unknown_linux_gnu.md) | 64-bit Linux (kernel 3.2+, glibc 2.17+) [^missing-stack-probes]: Stack probes support is missing on `aarch64-unknown-linux-gnu`, but it's planned to be implemented in the near diff --git a/src/doc/rustc/src/platform-support/x86_64_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/x86_64_unknown_linux_gnu.md new file mode 100644 index 0000000000000..d48c59a2fdeec --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `x86_64-unknown-linux-gnu` + +**Tier: 1 with Host Tools** + +64-bit Linux (kernel 3.2+, glibc 2.17+) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/x86_64_unknown_linux_gnu.rs b/tests/assembly/targets/x86_64_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..4ecb63ecf0bcc --- /dev/null +++ b/tests/assembly/targets/x86_64_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-unknown-linux-gnu +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 91908f1e90d26364ef722140500cb0b27a845144 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 15:03:08 +0100 Subject: [PATCH 131/145] target compliance: x86_64-pc-windows-gnu Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../platform-support/x86_64_pc_windows_gnu.md | 29 +++++++++++++++++++ .../assembly/targets/x86_64_pc_windows_gnu.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/x86_64_pc_windows_gnu.md create mode 100644 tests/assembly/targets/x86_64_pc_windows_gnu.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 87a39889d5db0..25f34e7e9e313 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -37,7 +37,7 @@ target | notes [`i686-pc-windows-msvc`](platform-support/windows_msvc.md) | 32-bit MSVC (Windows 7+) [^windows-support] `i686-unknown-linux-gnu` | 32-bit Linux (kernel 3.2+, glibc 2.17+) `x86_64-apple-darwin` | 64-bit macOS (10.7+, Lion+) -`x86_64-pc-windows-gnu` | 64-bit MinGW (Windows 7+) [^windows-support] +[`x86_64-pc-windows-gnu`](platform-support/x86_64_pc_windows_gnu.md) | 64-bit MinGW (Windows 7+) [^windows-support] [`x86_64-pc-windows-msvc`](platform-support/windows_msvc.md) | 64-bit MSVC (Windows 7+) [^windows-support] [`x86_64-unknown-linux-gnu`](platform-support/x86_64_unknown_linux_gnu.md) | 64-bit Linux (kernel 3.2+, glibc 2.17+) diff --git a/src/doc/rustc/src/platform-support/x86_64_pc_windows_gnu.md b/src/doc/rustc/src/platform-support/x86_64_pc_windows_gnu.md new file mode 100644 index 0000000000000..e0cc939b22639 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_pc_windows_gnu.md @@ -0,0 +1,29 @@ +# `x86_64-pc-windows-gnu` + +**Tier: 1 with Host Tools** + +64-bit MinGW (Windows 7+) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/x86_64_pc_windows_gnu.rs b/tests/assembly/targets/x86_64_pc_windows_gnu.rs new file mode 100644 index 0000000000000..c0e795a1ace38 --- /dev/null +++ b/tests/assembly/targets/x86_64_pc_windows_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-pc-windows-gnu +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .text From b269571636869a21fa6a79b1710870c1373e6721 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 15:04:24 +0100 Subject: [PATCH 132/145] target compliance: x86_64-apple-darwin Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../platform-support/x86_64_apple_darwin.md | 29 +++++++++++++++++++ tests/assembly/targets/x86_64_apple_darwin.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/x86_64_apple_darwin.md create mode 100644 tests/assembly/targets/x86_64_apple_darwin.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 25f34e7e9e313..36a066dfe6965 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -36,7 +36,7 @@ target | notes `i686-pc-windows-gnu` | 32-bit MinGW (Windows 7+) [^windows-support] [`i686-pc-windows-msvc`](platform-support/windows_msvc.md) | 32-bit MSVC (Windows 7+) [^windows-support] `i686-unknown-linux-gnu` | 32-bit Linux (kernel 3.2+, glibc 2.17+) -`x86_64-apple-darwin` | 64-bit macOS (10.7+, Lion+) +[`x86_64-apple-darwin`](platform-support/x86_64_apple_darwin.md) | 64-bit macOS (10.7+, Lion+) [`x86_64-pc-windows-gnu`](platform-support/x86_64_pc_windows_gnu.md) | 64-bit MinGW (Windows 7+) [^windows-support] [`x86_64-pc-windows-msvc`](platform-support/windows_msvc.md) | 64-bit MSVC (Windows 7+) [^windows-support] [`x86_64-unknown-linux-gnu`](platform-support/x86_64_unknown_linux_gnu.md) | 64-bit Linux (kernel 3.2+, glibc 2.17+) diff --git a/src/doc/rustc/src/platform-support/x86_64_apple_darwin.md b/src/doc/rustc/src/platform-support/x86_64_apple_darwin.md new file mode 100644 index 0000000000000..cb20ea4748958 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_apple_darwin.md @@ -0,0 +1,29 @@ +# `x86_64-apple-darwin` + +**Tier: 1 with Host Tools** + +64-bit macOS (10.7+, Lion+) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/x86_64_apple_darwin.rs b/tests/assembly/targets/x86_64_apple_darwin.rs new file mode 100644 index 0000000000000..e841cb2c877f4 --- /dev/null +++ b/tests/assembly/targets/x86_64_apple_darwin.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-apple-darwin +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From f7cd6481e65f36003040e0f72628f65d6a2cfd46 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 15:05:53 +0100 Subject: [PATCH 133/145] target compliance: i686-unknown-linux-gnu Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../i686_unknown_linux_gnu.md | 29 +++++++++++++++++++ .../targets/i686_unknown_linux_gnu.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/i686_unknown_linux_gnu.md create mode 100644 tests/assembly/targets/i686_unknown_linux_gnu.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 36a066dfe6965..6a943f47c5dca 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -35,7 +35,7 @@ target | notes `aarch64-unknown-linux-gnu` | ARM64 Linux (kernel 4.1, glibc 2.17+) [^missing-stack-probes] `i686-pc-windows-gnu` | 32-bit MinGW (Windows 7+) [^windows-support] [`i686-pc-windows-msvc`](platform-support/windows_msvc.md) | 32-bit MSVC (Windows 7+) [^windows-support] -`i686-unknown-linux-gnu` | 32-bit Linux (kernel 3.2+, glibc 2.17+) +[`i686-unknown-linux-gnu`](platform-support/i686_unknown_linux_gnu.md) | 32-bit Linux (kernel 3.2+, glibc 2.17+) [`x86_64-apple-darwin`](platform-support/x86_64_apple_darwin.md) | 64-bit macOS (10.7+, Lion+) [`x86_64-pc-windows-gnu`](platform-support/x86_64_pc_windows_gnu.md) | 64-bit MinGW (Windows 7+) [^windows-support] [`x86_64-pc-windows-msvc`](platform-support/windows_msvc.md) | 64-bit MSVC (Windows 7+) [^windows-support] diff --git a/src/doc/rustc/src/platform-support/i686_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/i686_unknown_linux_gnu.md new file mode 100644 index 0000000000000..e80877efa4ee6 --- /dev/null +++ b/src/doc/rustc/src/platform-support/i686_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `i686-unknown-linux-gnu` + +**Tier: 1 with Host Tools** + +32-bit Linux (kernel 3.2+, glibc 2.17+) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/i686_unknown_linux_gnu.rs b/tests/assembly/targets/i686_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..f57eddd7e9b43 --- /dev/null +++ b/tests/assembly/targets/i686_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i686-unknown-linux-gnu +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 25ac7a07b21bf425a3b58fa6564df64184ff34d0 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 15:07:30 +0100 Subject: [PATCH 134/145] target compliance: i686-pc-windows-gnu Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../platform-support/i686_pc_windows_gnu.md | 29 +++++++++++++++++++ tests/assembly/targets/i686_pc_windows_gnu.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/i686_pc_windows_gnu.md create mode 100644 tests/assembly/targets/i686_pc_windows_gnu.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 6a943f47c5dca..bb1b9f43951dd 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -33,7 +33,7 @@ All tier 1 targets with host tools support the full standard library. target | notes -------|------- `aarch64-unknown-linux-gnu` | ARM64 Linux (kernel 4.1, glibc 2.17+) [^missing-stack-probes] -`i686-pc-windows-gnu` | 32-bit MinGW (Windows 7+) [^windows-support] +[`i686-pc-windows-gnu`](platform-support/i686_pc_windows_gnu.md) | 32-bit MinGW (Windows 7+) [^windows-support] [`i686-pc-windows-msvc`](platform-support/windows_msvc.md) | 32-bit MSVC (Windows 7+) [^windows-support] [`i686-unknown-linux-gnu`](platform-support/i686_unknown_linux_gnu.md) | 32-bit Linux (kernel 3.2+, glibc 2.17+) [`x86_64-apple-darwin`](platform-support/x86_64_apple_darwin.md) | 64-bit macOS (10.7+, Lion+) diff --git a/src/doc/rustc/src/platform-support/i686_pc_windows_gnu.md b/src/doc/rustc/src/platform-support/i686_pc_windows_gnu.md new file mode 100644 index 0000000000000..ce1efe5f3f26b --- /dev/null +++ b/src/doc/rustc/src/platform-support/i686_pc_windows_gnu.md @@ -0,0 +1,29 @@ +# `i686-pc-windows-gnu` + +**Tier: 1 with Host Tools** + +32-bit MinGW (Windows 7+) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/i686_pc_windows_gnu.rs b/tests/assembly/targets/i686_pc_windows_gnu.rs new file mode 100644 index 0000000000000..c0e795a1ace38 --- /dev/null +++ b/tests/assembly/targets/i686_pc_windows_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target x86_64-pc-windows-gnu +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .text From 668fc9da878ba7892a41853c39137691ab11b1d0 Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 15:08:40 +0100 Subject: [PATCH 135/145] target compliance: aarch64-unknown-linux-gnu Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 2 +- .../aarch64_unknown_linux_gnu.md | 29 +++++++++++++++++++ .../targets/aarch64_unknown_linux_gnu.rs | 17 +++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/doc/rustc/src/platform-support/aarch64_unknown_linux_gnu.md create mode 100644 tests/assembly/targets/aarch64_unknown_linux_gnu.rs diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index bb1b9f43951dd..77c3778f4dea7 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -32,7 +32,7 @@ All tier 1 targets with host tools support the full standard library. target | notes -------|------- -`aarch64-unknown-linux-gnu` | ARM64 Linux (kernel 4.1, glibc 2.17+) [^missing-stack-probes] +[`aarch64-unknown-linux-gnu`](platform-support/aarch64_unknown_linux_gnu.md) | ARM64 Linux (kernel 4.1, glibc 2.17+) [^missing-stack-probes] [`i686-pc-windows-gnu`](platform-support/i686_pc_windows_gnu.md) | 32-bit MinGW (Windows 7+) [^windows-support] [`i686-pc-windows-msvc`](platform-support/windows_msvc.md) | 32-bit MSVC (Windows 7+) [^windows-support] [`i686-unknown-linux-gnu`](platform-support/i686_unknown_linux_gnu.md) | 32-bit Linux (kernel 3.2+, glibc 2.17+) diff --git a/src/doc/rustc/src/platform-support/aarch64_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/aarch64_unknown_linux_gnu.md new file mode 100644 index 0000000000000..fb615ee7daf01 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `aarch64-unknown-linux-gnu` + +**Tier: 1 with Host Tools** + +ARM64 Linux (kernel 4.1, glibc 2.17+) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/aarch64_unknown_linux_gnu.rs b/tests/assembly/targets/aarch64_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..b8a32f1a2e9c4 --- /dev/null +++ b/tests/assembly/targets/aarch64_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target aarch64-unknown-linux-gnu +// needs-llvm-components: aarch64 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 93e572bb61f01082ccc1e898894c590c537a259b Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 17:26:14 +0100 Subject: [PATCH 136/145] rustc_target: move base specs into a module This will make it a bit easier to make a tidy check which checks something for each target by iterating over the `rustc_target/src/spec/` directory. Signed-off-by: David Wood --- .../src/spec/aarch64_apple_darwin.rs | 6 ++- .../src/spec/aarch64_apple_ios.rs | 6 ++- .../src/spec/aarch64_apple_ios_macabi.rs | 6 ++- .../src/spec/aarch64_apple_ios_sim.rs | 6 ++- .../src/spec/aarch64_apple_tvos.rs | 6 ++- .../src/spec/aarch64_apple_watchos_sim.rs | 6 ++- .../src/spec/aarch64_be_unknown_linux_gnu.rs | 8 +-- .../aarch64_be_unknown_linux_gnu_ilp32.rs | 8 +-- .../src/spec/aarch64_be_unknown_netbsd.rs | 8 +-- .../src/spec/aarch64_kmc_solid_asp3.rs | 4 +- .../src/spec/aarch64_linux_android.rs | 4 +- .../src/spec/aarch64_pc_windows_gnullvm.rs | 4 +- .../src/spec/aarch64_pc_windows_msvc.rs | 4 +- .../src/spec/aarch64_unknown_freebsd.rs | 4 +- .../src/spec/aarch64_unknown_fuchsia.rs | 4 +- .../src/spec/aarch64_unknown_hermit.rs | 4 +- .../src/spec/aarch64_unknown_linux_gnu.rs | 4 +- .../spec/aarch64_unknown_linux_gnu_ilp32.rs | 4 +- .../src/spec/aarch64_unknown_linux_musl.rs | 4 +- .../src/spec/aarch64_unknown_linux_ohos.rs | 6 +-- .../src/spec/aarch64_unknown_netbsd.rs | 4 +- .../src/spec/aarch64_unknown_none.rs | 2 +- .../src/spec/aarch64_unknown_nto_qnx_710.rs | 5 +- .../src/spec/aarch64_unknown_openbsd.rs | 4 +- .../src/spec/aarch64_unknown_redox.rs | 4 +- .../src/spec/aarch64_unknown_teeos.rs | 4 +- .../src/spec/aarch64_unknown_uefi.rs | 5 +- .../src/spec/aarch64_uwp_windows_msvc.rs | 4 +- .../src/spec/aarch64_wrs_vxworks.rs | 4 +- compiler/rustc_target/src/spec/abi.rs | 7 +-- .../src/spec/arm64_32_apple_watchos.rs | 6 ++- .../src/spec/arm_linux_androideabi.rs | 4 +- .../src/spec/arm_unknown_linux_gnueabi.rs | 4 +- .../src/spec/arm_unknown_linux_gnueabihf.rs | 4 +- .../src/spec/arm_unknown_linux_musleabi.rs | 4 +- .../src/spec/arm_unknown_linux_musleabihf.rs | 4 +- .../src/spec/armeb_unknown_linux_gnueabi.rs | 8 +-- .../src/spec/armebv7r_none_eabihf.rs | 6 ++- .../src/spec/armv4t_unknown_linux_gnueabi.rs | 4 +- .../src/spec/armv5te_none_eabi.rs | 4 +- .../src/spec/armv5te_unknown_linux_gnueabi.rs | 4 +- .../spec/armv5te_unknown_linux_musleabi.rs | 4 +- .../spec/armv5te_unknown_linux_uclibceabi.rs | 4 +- .../src/spec/armv6_unknown_freebsd.rs | 4 +- .../src/spec/armv6_unknown_netbsd_eabihf.rs | 4 +- .../rustc_target/src/spec/armv7_apple_ios.rs | 6 ++- .../src/spec/armv7_linux_androideabi.rs | 4 +- .../src/spec/armv7_sony_vita_newlibeabihf.rs | 6 ++- .../src/spec/armv7_unknown_freebsd.rs | 4 +- .../src/spec/armv7_unknown_linux_gnueabi.rs | 4 +- .../src/spec/armv7_unknown_linux_gnueabihf.rs | 4 +- .../src/spec/armv7_unknown_linux_musleabi.rs | 4 +- .../spec/armv7_unknown_linux_musleabihf.rs | 4 +- .../src/spec/armv7_unknown_linux_ohos.rs | 4 +- .../spec/armv7_unknown_linux_uclibceabi.rs | 4 +- .../spec/armv7_unknown_linux_uclibceabihf.rs | 4 +- .../src/spec/armv7_unknown_netbsd_eabihf.rs | 4 +- .../src/spec/armv7_wrs_vxworks_eabihf.rs | 4 +- .../src/spec/armv7a_kmc_solid_asp3_eabi.rs | 4 +- .../src/spec/armv7a_kmc_solid_asp3_eabihf.rs | 4 +- .../rustc_target/src/spec/armv7a_none_eabi.rs | 2 +- .../src/spec/armv7k_apple_watchos.rs | 6 ++- .../rustc_target/src/spec/armv7s_apple_ios.rs | 6 ++- .../src/spec/asmjs_unknown_emscripten.rs | 2 +- .../src/spec/avr_unknown_gnu_atmega328.rs | 4 +- .../src/spec/{aix_base.rs => base/aix.rs} | 6 ++- .../spec/{android_base.rs => base/android.rs} | 2 +- .../src/spec/{apple_base.rs => base/apple.rs} | 15 +++--- .../spec/{avr_gnu_base.rs => base/avr_gnu.rs} | 0 .../src/spec/{bpf_base.rs => base/bpf.rs} | 6 ++- .../{dragonfly_base.rs => base/dragonfly.rs} | 0 .../spec/{freebsd_base.rs => base/freebsd.rs} | 0 .../spec/{fuchsia_base.rs => base/fuchsia.rs} | 0 .../src/spec/{haiku_base.rs => base/haiku.rs} | 0 .../spec/{hermit_base.rs => base/hermit.rs} | 0 .../spec/{illumos_base.rs => base/illumos.rs} | 0 .../src/spec/{l4re_base.rs => base/l4re.rs} | 0 .../src/spec/{linux_base.rs => base/linux.rs} | 0 .../rustc_target/src/spec/base/linux_gnu.rs | 5 ++ .../linux_musl.rs} | 8 +-- .../linux_ohos.rs} | 2 +- .../src/spec/base/linux_uclibc.rs | 5 ++ compiler/rustc_target/src/spec/base/mod.rs | 37 ++++++++++++++ .../src/spec/{msvc_base.rs => base/msvc.rs} | 0 .../spec/{netbsd_base.rs => base/netbsd.rs} | 0 .../spec/{nto_qnx_base.rs => base/nto_qnx.rs} | 0 .../spec/{openbsd_base.rs => base/openbsd.rs} | 0 .../src/spec/{redox_base.rs => base/redox.rs} | 0 .../spec/{solaris_base.rs => base/solaris.rs} | 0 .../src/spec/{solid_base.rs => base/solid.rs} | 3 +- .../src/spec/{teeos_base.rs => base/teeos.rs} | 5 +- .../src/spec/{thumb_base.rs => base/thumb.rs} | 0 .../{uefi_msvc_base.rs => base/uefi_msvc.rs} | 2 +- .../unikraft_linux_musl.rs} | 0 .../spec/{vxworks_base.rs => base/vxworks.rs} | 0 .../src/spec/{wasm_base.rs => base/wasm.rs} | 8 +-- .../windows_gnu.rs} | 15 +++--- .../windows_gnullvm.rs} | 0 .../windows_msvc.rs} | 4 +- .../windows_uwp_gnu.rs} | 6 +-- .../windows_uwp_msvc.rs} | 4 +- .../src/spec/bpfeb_unknown_none.rs | 8 +-- .../src/spec/bpfel_unknown_none.rs | 8 +-- .../src/spec/csky_unknown_linux_gnuabiv2.rs | 4 +- .../src/spec/hexagon_unknown_linux_musl.rs | 4 +- .../rustc_target/src/spec/i386_apple_ios.rs | 6 ++- .../src/spec/i586_pc_nto_qnx700.rs | 5 +- .../src/spec/i686_apple_darwin.rs | 6 ++- .../src/spec/i686_linux_android.rs | 4 +- .../src/spec/i686_pc_windows_gnu.rs | 4 +- .../src/spec/i686_pc_windows_gnullvm.rs | 4 +- .../src/spec/i686_pc_windows_msvc.rs | 4 +- .../src/spec/i686_unknown_freebsd.rs | 4 +- .../src/spec/i686_unknown_haiku.rs | 4 +- .../src/spec/i686_unknown_linux_gnu.rs | 4 +- .../src/spec/i686_unknown_linux_musl.rs | 4 +- .../src/spec/i686_unknown_netbsd.rs | 4 +- .../src/spec/i686_unknown_openbsd.rs | 4 +- .../src/spec/i686_unknown_uefi.rs | 4 +- .../src/spec/i686_uwp_windows_gnu.rs | 4 +- .../src/spec/i686_uwp_windows_msvc.rs | 4 +- .../rustc_target/src/spec/i686_wrs_vxworks.rs | 4 +- .../rustc_target/src/spec/linux_gnu_base.rs | 5 -- .../src/spec/linux_uclibc_base.rs | 5 -- .../src/spec/loongarch64_unknown_linux_gnu.rs | 4 +- .../src/spec/loongarch64_unknown_none.rs | 3 +- .../loongarch64_unknown_none_softfloat.rs | 5 +- .../src/spec/m68k_unknown_linux_gnu.rs | 8 +-- .../src/spec/mips64_openwrt_linux_musl.rs | 9 ++-- .../src/spec/mips64_unknown_linux_gnuabi64.rs | 8 +-- .../spec/mips64_unknown_linux_muslabi64.rs | 8 +-- .../spec/mips64el_unknown_linux_gnuabi64.rs | 5 +- .../spec/mips64el_unknown_linux_muslabi64.rs | 4 +- .../src/spec/mips_unknown_linux_gnu.rs | 8 +-- .../src/spec/mips_unknown_linux_musl.rs | 8 +-- .../src/spec/mips_unknown_linux_uclibc.rs | 8 +-- .../src/spec/mipsel_unknown_linux_gnu.rs | 4 +- .../src/spec/mipsel_unknown_linux_musl.rs | 4 +- .../src/spec/mipsel_unknown_linux_uclibc.rs | 4 +- .../src/spec/mipsisa32r6_unknown_linux_gnu.rs | 9 ++-- .../spec/mipsisa32r6el_unknown_linux_gnu.rs | 5 +- .../mipsisa64r6_unknown_linux_gnuabi64.rs | 9 ++-- .../mipsisa64r6el_unknown_linux_gnuabi64.rs | 4 +- compiler/rustc_target/src/spec/mod.rs | 50 ++++--------------- .../src/spec/powerpc64_ibm_aix.rs | 4 +- .../src/spec/powerpc64_unknown_freebsd.rs | 8 +-- .../src/spec/powerpc64_unknown_linux_gnu.rs | 8 +-- .../src/spec/powerpc64_unknown_linux_musl.rs | 8 +-- .../src/spec/powerpc64_unknown_openbsd.rs | 8 +-- .../src/spec/powerpc64_wrs_vxworks.rs | 8 +-- .../src/spec/powerpc64le_unknown_freebsd.rs | 4 +- .../src/spec/powerpc64le_unknown_linux_gnu.rs | 4 +- .../spec/powerpc64le_unknown_linux_musl.rs | 4 +- .../src/spec/powerpc_unknown_freebsd.rs | 8 +-- .../src/spec/powerpc_unknown_linux_gnu.rs | 8 +-- .../src/spec/powerpc_unknown_linux_gnuspe.rs | 8 +-- .../src/spec/powerpc_unknown_linux_musl.rs | 8 +-- .../src/spec/powerpc_unknown_netbsd.rs | 8 +-- .../src/spec/powerpc_unknown_openbsd.rs | 8 +-- .../src/spec/powerpc_wrs_vxworks.rs | 8 +-- .../src/spec/powerpc_wrs_vxworks_spe.rs | 8 +-- .../src/spec/riscv32gc_unknown_linux_gnu.rs | 4 +- .../src/spec/riscv32gc_unknown_linux_musl.rs | 4 +- .../src/spec/riscv64_linux_android.rs | 4 +- .../src/spec/riscv64gc_unknown_freebsd.rs | 4 +- .../src/spec/riscv64gc_unknown_fuchsia.rs | 4 +- .../src/spec/riscv64gc_unknown_hermit.rs | 4 +- .../src/spec/riscv64gc_unknown_linux_gnu.rs | 4 +- .../src/spec/riscv64gc_unknown_linux_musl.rs | 4 +- .../src/spec/riscv64gc_unknown_netbsd.rs | 4 +- .../src/spec/riscv64gc_unknown_none_elf.rs | 5 +- .../src/spec/riscv64gc_unknown_openbsd.rs | 4 +- .../src/spec/riscv64imac_unknown_none_elf.rs | 6 ++- .../src/spec/s390x_unknown_linux_gnu.rs | 8 +-- .../src/spec/s390x_unknown_linux_musl.rs | 8 +-- .../src/spec/sparc64_unknown_linux_gnu.rs | 8 +-- .../src/spec/sparc64_unknown_netbsd.rs | 8 +-- .../src/spec/sparc64_unknown_openbsd.rs | 8 +-- .../src/spec/sparc_unknown_linux_gnu.rs | 8 +-- .../src/spec/sparc_unknown_none_elf.rs | 6 ++- .../src/spec/sparcv9_sun_solaris.rs | 8 +-- .../spec/{abi/tests.rs => tests/abi_tests.rs} | 0 .../{apple/tests.rs => tests/apple_tests.rs} | 21 +++----- .../tests/{tests_impl.rs => impl_tests.rs} | 0 .../src/spec/thumbv4t_none_eabi.rs | 7 +-- .../src/spec/thumbv5te_none_eabi.rs | 4 +- .../src/spec/thumbv6m_none_eabi.rs | 4 +- .../src/spec/thumbv7a_pc_windows_msvc.rs | 4 +- .../src/spec/thumbv7a_uwp_windows_msvc.rs | 4 +- .../src/spec/thumbv7em_none_eabi.rs | 8 +-- .../src/spec/thumbv7em_none_eabihf.rs | 4 +- .../src/spec/thumbv7m_none_eabi.rs | 8 +-- .../src/spec/thumbv7neon_linux_androideabi.rs | 4 +- .../thumbv7neon_unknown_linux_gnueabihf.rs | 4 +- .../thumbv7neon_unknown_linux_musleabihf.rs | 4 +- .../src/spec/thumbv8m_base_none_eabi.rs | 4 +- .../src/spec/thumbv8m_main_none_eabi.rs | 8 +-- .../src/spec/thumbv8m_main_none_eabihf.rs | 4 +- .../src/spec/wasm32_unknown_emscripten.rs | 7 +-- .../src/spec/wasm32_unknown_unknown.rs | 5 +- compiler/rustc_target/src/spec/wasm32_wasi.rs | 4 +- .../src/spec/wasm32_wasi_preview1_threads.rs | 9 ++-- .../src/spec/wasm64_unknown_unknown.rs | 4 +- .../src/spec/x86_64_apple_darwin.rs | 7 +-- .../rustc_target/src/spec/x86_64_apple_ios.rs | 6 ++- .../src/spec/x86_64_apple_ios_macabi.rs | 6 ++- .../src/spec/x86_64_apple_tvos.rs | 6 ++- .../src/spec/x86_64_apple_watchos_sim.rs | 6 ++- .../src/spec/x86_64_fortanix_unknown_sgx.rs | 3 +- .../src/spec/x86_64_linux_android.rs | 6 ++- .../src/spec/x86_64_pc_nto_qnx710.rs | 5 +- .../src/spec/x86_64_pc_solaris.rs | 4 +- .../src/spec/x86_64_pc_windows_gnu.rs | 4 +- .../src/spec/x86_64_pc_windows_gnullvm.rs | 4 +- .../src/spec/x86_64_pc_windows_msvc.rs | 4 +- .../src/spec/x86_64_sun_solaris.rs | 4 +- .../src/spec/x86_64_unikraft_linux_musl.rs | 6 ++- .../src/spec/x86_64_unknown_dragonfly.rs | 4 +- .../src/spec/x86_64_unknown_freebsd.rs | 4 +- .../src/spec/x86_64_unknown_fuchsia.rs | 4 +- .../src/spec/x86_64_unknown_haiku.rs | 4 +- .../src/spec/x86_64_unknown_hermit.rs | 4 +- .../src/spec/x86_64_unknown_illumos.rs | 4 +- .../src/spec/x86_64_unknown_l4re_uclibc.rs | 4 +- .../src/spec/x86_64_unknown_linux_gnu.rs | 4 +- .../src/spec/x86_64_unknown_linux_gnux32.rs | 4 +- .../src/spec/x86_64_unknown_linux_musl.rs | 4 +- .../src/spec/x86_64_unknown_linux_ohos.rs | 4 +- .../src/spec/x86_64_unknown_netbsd.rs | 6 ++- .../src/spec/x86_64_unknown_none.rs | 6 ++- .../src/spec/x86_64_unknown_openbsd.rs | 4 +- .../src/spec/x86_64_unknown_redox.rs | 4 +- .../src/spec/x86_64_unknown_uefi.rs | 4 +- .../src/spec/x86_64_uwp_windows_gnu.rs | 4 +- .../src/spec/x86_64_uwp_windows_msvc.rs | 4 +- .../src/spec/x86_64_wrs_vxworks.rs | 4 +- .../src/spec/x86_64h_apple_darwin.rs | 7 +-- 237 files changed, 666 insertions(+), 554 deletions(-) rename compiler/rustc_target/src/spec/{aix_base.rs => base/aix.rs} (89%) rename compiler/rustc_target/src/spec/{android_base.rs => base/android.rs} (92%) rename compiler/rustc_target/src/spec/{apple_base.rs => base/apple.rs} (97%) rename compiler/rustc_target/src/spec/{avr_gnu_base.rs => base/avr_gnu.rs} (100%) rename compiler/rustc_target/src/spec/{bpf_base.rs => base/bpf.rs} (90%) rename compiler/rustc_target/src/spec/{dragonfly_base.rs => base/dragonfly.rs} (100%) rename compiler/rustc_target/src/spec/{freebsd_base.rs => base/freebsd.rs} (100%) rename compiler/rustc_target/src/spec/{fuchsia_base.rs => base/fuchsia.rs} (100%) rename compiler/rustc_target/src/spec/{haiku_base.rs => base/haiku.rs} (100%) rename compiler/rustc_target/src/spec/{hermit_base.rs => base/hermit.rs} (100%) rename compiler/rustc_target/src/spec/{illumos_base.rs => base/illumos.rs} (100%) rename compiler/rustc_target/src/spec/{l4re_base.rs => base/l4re.rs} (100%) rename compiler/rustc_target/src/spec/{linux_base.rs => base/linux.rs} (100%) create mode 100644 compiler/rustc_target/src/spec/base/linux_gnu.rs rename compiler/rustc_target/src/spec/{linux_musl_base.rs => base/linux_musl.rs} (73%) rename compiler/rustc_target/src/spec/{linux_ohos_base.rs => base/linux_ohos.rs} (82%) create mode 100644 compiler/rustc_target/src/spec/base/linux_uclibc.rs create mode 100644 compiler/rustc_target/src/spec/base/mod.rs rename compiler/rustc_target/src/spec/{msvc_base.rs => base/msvc.rs} (100%) rename compiler/rustc_target/src/spec/{netbsd_base.rs => base/netbsd.rs} (100%) rename compiler/rustc_target/src/spec/{nto_qnx_base.rs => base/nto_qnx.rs} (100%) rename compiler/rustc_target/src/spec/{openbsd_base.rs => base/openbsd.rs} (100%) rename compiler/rustc_target/src/spec/{redox_base.rs => base/redox.rs} (100%) rename compiler/rustc_target/src/spec/{solaris_base.rs => base/solaris.rs} (100%) rename compiler/rustc_target/src/spec/{solid_base.rs => base/solid.rs} (83%) rename compiler/rustc_target/src/spec/{teeos_base.rs => base/teeos.rs} (84%) rename compiler/rustc_target/src/spec/{thumb_base.rs => base/thumb.rs} (100%) rename compiler/rustc_target/src/spec/{uefi_msvc_base.rs => base/uefi_msvc.rs} (98%) rename compiler/rustc_target/src/spec/{unikraft_linux_musl_base.rs => base/unikraft_linux_musl.rs} (100%) rename compiler/rustc_target/src/spec/{vxworks_base.rs => base/vxworks.rs} (100%) rename compiler/rustc_target/src/spec/{wasm_base.rs => base/wasm.rs} (96%) rename compiler/rustc_target/src/spec/{windows_gnu_base.rs => base/windows_gnu.rs} (92%) rename compiler/rustc_target/src/spec/{windows_gnullvm_base.rs => base/windows_gnullvm.rs} (100%) rename compiler/rustc_target/src/spec/{windows_msvc_base.rs => base/windows_msvc.rs} (93%) rename compiler/rustc_target/src/spec/{windows_uwp_gnu_base.rs => base/windows_uwp_gnu.rs} (81%) rename compiler/rustc_target/src/spec/{windows_uwp_msvc_base.rs => base/windows_uwp_msvc.rs} (63%) delete mode 100644 compiler/rustc_target/src/spec/linux_gnu_base.rs delete mode 100644 compiler/rustc_target/src/spec/linux_uclibc_base.rs rename compiler/rustc_target/src/spec/{abi/tests.rs => tests/abi_tests.rs} (100%) rename compiler/rustc_target/src/spec/{apple/tests.rs => tests/apple_tests.rs} (54%) rename compiler/rustc_target/src/spec/tests/{tests_impl.rs => impl_tests.rs} (100%) diff --git a/compiler/rustc_target/src/spec/aarch64_apple_darwin.rs b/compiler/rustc_target/src/spec/aarch64_apple_darwin.rs index 9ac732351411c..171b799966841 100644 --- a/compiler/rustc_target/src/spec/aarch64_apple_darwin.rs +++ b/compiler/rustc_target/src/spec/aarch64_apple_darwin.rs @@ -1,5 +1,7 @@ -use super::apple_base::{macos_llvm_target, opts, Arch}; -use crate::spec::{FramePointer, SanitizerSet, Target, TargetOptions}; +use crate::spec::{ + base::apple::{macos_llvm_target, opts, Arch}, + FramePointer, SanitizerSet, Target, TargetOptions, +}; pub fn target() -> Target { let arch = Arch::Arm64; diff --git a/compiler/rustc_target/src/spec/aarch64_apple_ios.rs b/compiler/rustc_target/src/spec/aarch64_apple_ios.rs index e9edfd2877b86..89f72b213a2fc 100644 --- a/compiler/rustc_target/src/spec/aarch64_apple_ios.rs +++ b/compiler/rustc_target/src/spec/aarch64_apple_ios.rs @@ -1,5 +1,7 @@ -use super::apple_base::{ios_llvm_target, opts, Arch}; -use crate::spec::{FramePointer, SanitizerSet, Target, TargetOptions}; +use crate::spec::{ + base::apple::{ios_llvm_target, opts, Arch}, + FramePointer, SanitizerSet, Target, TargetOptions, +}; pub fn target() -> Target { let arch = Arch::Arm64; diff --git a/compiler/rustc_target/src/spec/aarch64_apple_ios_macabi.rs b/compiler/rustc_target/src/spec/aarch64_apple_ios_macabi.rs index b29ab14e7f282..b05928dbc516c 100644 --- a/compiler/rustc_target/src/spec/aarch64_apple_ios_macabi.rs +++ b/compiler/rustc_target/src/spec/aarch64_apple_ios_macabi.rs @@ -1,5 +1,7 @@ -use super::apple_base::{opts, Arch}; -use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet, Target, TargetOptions}; +use crate::spec::{ + base::apple::{opts, Arch}, + Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet, Target, TargetOptions, +}; pub fn target() -> Target { let llvm_target = "arm64-apple-ios14.0-macabi"; diff --git a/compiler/rustc_target/src/spec/aarch64_apple_ios_sim.rs b/compiler/rustc_target/src/spec/aarch64_apple_ios_sim.rs index 6e2d62b6e0855..ed51428be95c9 100644 --- a/compiler/rustc_target/src/spec/aarch64_apple_ios_sim.rs +++ b/compiler/rustc_target/src/spec/aarch64_apple_ios_sim.rs @@ -1,5 +1,7 @@ -use super::apple_base::{ios_sim_llvm_target, opts, Arch}; -use crate::spec::{FramePointer, SanitizerSet, Target, TargetOptions}; +use crate::spec::{ + base::apple::{ios_sim_llvm_target, opts, Arch}, + FramePointer, SanitizerSet, Target, TargetOptions, +}; pub fn target() -> Target { let arch = Arch::Arm64_sim; diff --git a/compiler/rustc_target/src/spec/aarch64_apple_tvos.rs b/compiler/rustc_target/src/spec/aarch64_apple_tvos.rs index f7cdfa71c4b65..7902b8f2f58d2 100644 --- a/compiler/rustc_target/src/spec/aarch64_apple_tvos.rs +++ b/compiler/rustc_target/src/spec/aarch64_apple_tvos.rs @@ -1,5 +1,7 @@ -use super::apple_base::{opts, tvos_llvm_target, Arch}; -use crate::spec::{FramePointer, Target, TargetOptions}; +use crate::spec::{ + base::apple::{opts, tvos_llvm_target, Arch}, + FramePointer, Target, TargetOptions, +}; pub fn target() -> Target { let arch = Arch::Arm64; diff --git a/compiler/rustc_target/src/spec/aarch64_apple_watchos_sim.rs b/compiler/rustc_target/src/spec/aarch64_apple_watchos_sim.rs index e4af4127c2223..bb14122e9cb12 100644 --- a/compiler/rustc_target/src/spec/aarch64_apple_watchos_sim.rs +++ b/compiler/rustc_target/src/spec/aarch64_apple_watchos_sim.rs @@ -1,5 +1,7 @@ -use super::apple_base::{opts, watchos_sim_llvm_target, Arch}; -use crate::spec::{FramePointer, Target, TargetOptions}; +use crate::spec::{ + base::apple::{opts, watchos_sim_llvm_target, Arch}, + FramePointer, Target, TargetOptions, +}; pub fn target() -> Target { let arch = Arch::Arm64_sim; diff --git a/compiler/rustc_target/src/spec/aarch64_be_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/aarch64_be_unknown_linux_gnu.rs index b84783c0a407b..80833a1890d08 100644 --- a/compiler/rustc_target/src/spec/aarch64_be_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/aarch64_be_unknown_linux_gnu.rs @@ -1,5 +1,7 @@ -use crate::abi::Endian; -use crate::spec::{Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_gnu, Target, TargetOptions}, +}; pub fn target() -> Target { Target { @@ -12,7 +14,7 @@ pub fn target() -> Target { max_atomic_width: Some(128), mcount: "\u{1}_mcount".into(), endian: Endian::Big, - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/aarch64_be_unknown_linux_gnu_ilp32.rs b/compiler/rustc_target/src/spec/aarch64_be_unknown_linux_gnu_ilp32.rs index a24e0119f25e9..0efe15567d7b7 100644 --- a/compiler/rustc_target/src/spec/aarch64_be_unknown_linux_gnu_ilp32.rs +++ b/compiler/rustc_target/src/spec/aarch64_be_unknown_linux_gnu_ilp32.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_gnu, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = linux_gnu::opts(); base.max_atomic_width = Some(128); Target { diff --git a/compiler/rustc_target/src/spec/aarch64_be_unknown_netbsd.rs b/compiler/rustc_target/src/spec/aarch64_be_unknown_netbsd.rs index 98ae05974aa84..aace835f4e6e6 100644 --- a/compiler/rustc_target/src/spec/aarch64_be_unknown_netbsd.rs +++ b/compiler/rustc_target/src/spec/aarch64_be_unknown_netbsd.rs @@ -1,5 +1,7 @@ -use crate::abi::Endian; -use crate::spec::{Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::netbsd, Target, TargetOptions}, +}; pub fn target() -> Target { Target { @@ -11,7 +13,7 @@ pub fn target() -> Target { mcount: "__mcount".into(), max_atomic_width: Some(128), endian: Endian::Big, - ..super::netbsd_base::opts() + ..netbsd::opts() }, } } diff --git a/compiler/rustc_target/src/spec/aarch64_kmc_solid_asp3.rs b/compiler/rustc_target/src/spec/aarch64_kmc_solid_asp3.rs index 437fd60158030..9fe9bf51ce156 100644 --- a/compiler/rustc_target/src/spec/aarch64_kmc_solid_asp3.rs +++ b/compiler/rustc_target/src/spec/aarch64_kmc_solid_asp3.rs @@ -1,7 +1,7 @@ -use super::{RelocModel, Target, TargetOptions}; +use crate::spec::{base::solid, RelocModel, Target, TargetOptions}; pub fn target() -> Target { - let base = super::solid_base::opts("asp3"); + let base = solid::opts("asp3"); Target { llvm_target: "aarch64-unknown-none".into(), pointer_width: 64, diff --git a/compiler/rustc_target/src/spec/aarch64_linux_android.rs b/compiler/rustc_target/src/spec/aarch64_linux_android.rs index 071b727b35c56..75d8bd0cf9e9c 100644 --- a/compiler/rustc_target/src/spec/aarch64_linux_android.rs +++ b/compiler/rustc_target/src/spec/aarch64_linux_android.rs @@ -1,4 +1,4 @@ -use crate::spec::{SanitizerSet, Target, TargetOptions}; +use crate::spec::{base::android, SanitizerSet, Target, TargetOptions}; // See https://developer.android.com/ndk/guides/abis.html#arm64-v8a // for target ABI requirements. @@ -20,7 +20,7 @@ pub fn target() -> Target { | SanitizerSet::SHADOWCALLSTACK | SanitizerSet::ADDRESS, supports_xray: true, - ..super::android_base::opts() + ..android::opts() }, } } diff --git a/compiler/rustc_target/src/spec/aarch64_pc_windows_gnullvm.rs b/compiler/rustc_target/src/spec/aarch64_pc_windows_gnullvm.rs index cf1d7ca1158d5..49464c5caf081 100644 --- a/compiler/rustc_target/src/spec/aarch64_pc_windows_gnullvm.rs +++ b/compiler/rustc_target/src/spec/aarch64_pc_windows_gnullvm.rs @@ -1,7 +1,7 @@ -use crate::spec::Target; +use crate::spec::{base::windows_gnullvm, Target}; pub fn target() -> Target { - let mut base = super::windows_gnullvm_base::opts(); + let mut base = windows_gnullvm::opts(); base.max_atomic_width = Some(128); base.features = "+v8a,+neon,+fp-armv8".into(); base.linker = Some("aarch64-w64-mingw32-clang".into()); diff --git a/compiler/rustc_target/src/spec/aarch64_pc_windows_msvc.rs b/compiler/rustc_target/src/spec/aarch64_pc_windows_msvc.rs index 56b76bc7ada9a..daf305309cabf 100644 --- a/compiler/rustc_target/src/spec/aarch64_pc_windows_msvc.rs +++ b/compiler/rustc_target/src/spec/aarch64_pc_windows_msvc.rs @@ -1,7 +1,7 @@ -use crate::spec::Target; +use crate::spec::{base::windows_msvc, Target}; pub fn target() -> Target { - let mut base = super::windows_msvc_base::opts(); + let mut base = windows_msvc::opts(); base.max_atomic_width = Some(128); base.features = "+v8a,+neon,+fp-armv8".into(); diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_freebsd.rs b/compiler/rustc_target/src/spec/aarch64_unknown_freebsd.rs index 84fa9814bbeab..86b8d7f2241e8 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_freebsd.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_freebsd.rs @@ -1,4 +1,4 @@ -use crate::spec::{SanitizerSet, Target, TargetOptions}; +use crate::spec::{base::freebsd, SanitizerSet, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -13,7 +13,7 @@ pub fn target() -> Target { | SanitizerSet::CFI | SanitizerSet::MEMORY | SanitizerSet::THREAD, - ..super::freebsd_base::opts() + ..freebsd::opts() }, } } diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_fuchsia.rs b/compiler/rustc_target/src/spec/aarch64_unknown_fuchsia.rs index a5683fa7348a7..94efabaa398d1 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_fuchsia.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_fuchsia.rs @@ -1,4 +1,4 @@ -use crate::spec::{SanitizerSet, Target, TargetOptions}; +use crate::spec::{base::fuchsia, SanitizerSet, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -12,7 +12,7 @@ pub fn target() -> Target { supported_sanitizers: SanitizerSet::ADDRESS | SanitizerSet::CFI | SanitizerSet::SHADOWCALLSTACK, - ..super::fuchsia_base::opts() + ..fuchsia::opts() }, } } diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs b/compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs index 2414867be5526..a147333ce1a63 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::hermit, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -9,7 +9,7 @@ pub fn target() -> Target { options: TargetOptions { features: "+v8a,+strict-align,+neon,+fp-armv8".into(), max_atomic_width: Some(128), - ..super::hermit_base::opts() + ..hermit::opts() }, } } diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/aarch64_unknown_linux_gnu.rs index da246089440fc..181050972fe89 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_linux_gnu.rs @@ -1,4 +1,4 @@ -use crate::spec::{SanitizerSet, Target, TargetOptions}; +use crate::spec::{base::linux_gnu, SanitizerSet, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -18,7 +18,7 @@ pub fn target() -> Target { | SanitizerSet::THREAD | SanitizerSet::HWADDRESS, supports_xray: true, - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_linux_gnu_ilp32.rs b/compiler/rustc_target/src/spec/aarch64_unknown_linux_gnu_ilp32.rs index ad9df53c2b7fb..9a3ce5d681684 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_linux_gnu_ilp32.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_linux_gnu_ilp32.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -11,7 +11,7 @@ pub fn target() -> Target { features: "+v8a,+outline-atomics".into(), max_atomic_width: Some(128), mcount: "\u{1}_mcount".into(), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/aarch64_unknown_linux_musl.rs index 523eb6bd2fe22..81ed7a8b58d3b 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_linux_musl.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_linux_musl.rs @@ -1,7 +1,7 @@ -use crate::spec::{SanitizerSet, Target, TargetOptions}; +use crate::spec::{base::linux_musl, SanitizerSet, Target, TargetOptions}; pub fn target() -> Target { - let mut base = super::linux_musl_base::opts(); + let mut base = linux_musl::opts(); base.max_atomic_width = Some(128); base.supports_xray = true; base.features = "+v8a".into(); diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_linux_ohos.rs b/compiler/rustc_target/src/spec/aarch64_unknown_linux_ohos.rs index c8f3db00e01bf..602f1689d01fe 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_linux_ohos.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_linux_ohos.rs @@ -1,9 +1,7 @@ -use crate::spec::{Target, TargetOptions}; - -use super::SanitizerSet; +use crate::spec::{base::linux_ohos, SanitizerSet, Target, TargetOptions}; pub fn target() -> Target { - let mut base = super::linux_ohos_base::opts(); + let mut base = linux_ohos::opts(); base.max_atomic_width = Some(128); Target { diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_netbsd.rs b/compiler/rustc_target/src/spec/aarch64_unknown_netbsd.rs index a58b64d3d03a8..04ced162685e6 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_netbsd.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_netbsd.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::netbsd, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -10,7 +10,7 @@ pub fn target() -> Target { features: "+v8a".into(), mcount: "__mcount".into(), max_atomic_width: Some(128), - ..super::netbsd_base::opts() + ..netbsd::opts() }, } } diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_none.rs b/compiler/rustc_target/src/spec/aarch64_unknown_none.rs index be27302f7f52c..88fa6d5a762f0 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_none.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_none.rs @@ -6,7 +6,7 @@ // // For example, `-C target-cpu=cortex-a53`. -use super::{ +use crate::spec::{ Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, SanitizerSet, Target, TargetOptions, }; diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_nto_qnx_710.rs b/compiler/rustc_target/src/spec/aarch64_unknown_nto_qnx_710.rs index 630642dcd33a2..696b5875c27ed 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_nto_qnx_710.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_nto_qnx_710.rs @@ -1,5 +1,4 @@ -use super::nto_qnx_base; -use crate::spec::{Cc, LinkerFlavor, Lld, Target, TargetOptions}; +use crate::spec::{base::nto_qnx, Cc, LinkerFlavor, Lld, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -24,7 +23,7 @@ pub fn target() -> Target { &["-Vgcc_ntoaarch64le_cxx"], ), env: "nto71".into(), - ..nto_qnx_base::opts() + ..nto_qnx::opts() }, } } diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_openbsd.rs b/compiler/rustc_target/src/spec/aarch64_unknown_openbsd.rs index 224e31af24f7d..92592939ab939 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_openbsd.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_openbsd.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::openbsd, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -9,7 +9,7 @@ pub fn target() -> Target { options: TargetOptions { features: "+v8a".into(), max_atomic_width: Some(128), - ..super::openbsd_base::opts() + ..openbsd::opts() }, } } diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_redox.rs b/compiler/rustc_target/src/spec/aarch64_unknown_redox.rs index 5650162cdbc99..1ef65d4921424 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_redox.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_redox.rs @@ -1,7 +1,7 @@ -use crate::spec::Target; +use crate::spec::{base::redox, Target}; pub fn target() -> Target { - let mut base = super::redox_base::opts(); + let mut base = redox::opts(); base.max_atomic_width = Some(128); base.features = "+v8a".into(); diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_teeos.rs b/compiler/rustc_target/src/spec/aarch64_unknown_teeos.rs index 64a7dc681c896..a07090d046ecf 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_teeos.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_teeos.rs @@ -1,7 +1,7 @@ -use crate::spec::Target; +use crate::spec::{base::teeos, Target}; pub fn target() -> Target { - let mut base = super::teeos_base::opts(); + let mut base = teeos::opts(); base.features = "+strict-align,+neon,+fp-armv8".into(); base.max_atomic_width = Some(128); base.linker = Some("aarch64-linux-gnu-ld".into()); diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_uefi.rs b/compiler/rustc_target/src/spec/aarch64_unknown_uefi.rs index 82fb015569d63..4ce455e27a79f 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_uefi.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_uefi.rs @@ -1,11 +1,10 @@ // This defines the aarch64 target for UEFI systems as described in the UEFI specification. See the // uefi-base module for generic UEFI options. -use super::uefi_msvc_base; -use crate::spec::{LinkerFlavor, Lld, Target}; +use crate::spec::{base::uefi_msvc, LinkerFlavor, Lld, Target}; pub fn target() -> Target { - let mut base = uefi_msvc_base::opts(); + let mut base = uefi_msvc::opts(); base.max_atomic_width = Some(128); base.add_pre_link_args(LinkerFlavor::Msvc(Lld::No), &["/machine:arm64"]); diff --git a/compiler/rustc_target/src/spec/aarch64_uwp_windows_msvc.rs b/compiler/rustc_target/src/spec/aarch64_uwp_windows_msvc.rs index d39442d917760..f485391c15e11 100644 --- a/compiler/rustc_target/src/spec/aarch64_uwp_windows_msvc.rs +++ b/compiler/rustc_target/src/spec/aarch64_uwp_windows_msvc.rs @@ -1,7 +1,7 @@ -use crate::spec::Target; +use crate::spec::{base::windows_uwp_msvc, Target}; pub fn target() -> Target { - let mut base = super::windows_uwp_msvc_base::opts(); + let mut base = windows_uwp_msvc::opts(); base.max_atomic_width = Some(128); base.features = "+v8a".into(); diff --git a/compiler/rustc_target/src/spec/aarch64_wrs_vxworks.rs b/compiler/rustc_target/src/spec/aarch64_wrs_vxworks.rs index 7e2af4c7a6a49..e1dc213eb4469 100644 --- a/compiler/rustc_target/src/spec/aarch64_wrs_vxworks.rs +++ b/compiler/rustc_target/src/spec/aarch64_wrs_vxworks.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::vxworks, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -9,7 +9,7 @@ pub fn target() -> Target { options: TargetOptions { features: "+v8a".into(), max_atomic_width: Some(128), - ..super::vxworks_base::opts() + ..vxworks::opts() }, } } diff --git a/compiler/rustc_target/src/spec/abi.rs b/compiler/rustc_target/src/spec/abi.rs index a99cccd42c4f3..12e4d8743af01 100644 --- a/compiler/rustc_target/src/spec/abi.rs +++ b/compiler/rustc_target/src/spec/abi.rs @@ -4,9 +4,6 @@ use rustc_macros::HashStable_Generic; use rustc_span::symbol::sym; use rustc_span::{Span, Symbol}; -#[cfg(test)] -mod tests; - #[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, Debug)] #[derive(HashStable_Generic, Encodable, Decodable)] pub enum Abi { @@ -339,3 +336,7 @@ impl fmt::Display for Abi { write!(f, "\"{}\"", self.name()) } } + +#[cfg(test)] +#[path = "tests/abi_tests.rs"] +mod tests_api; diff --git a/compiler/rustc_target/src/spec/arm64_32_apple_watchos.rs b/compiler/rustc_target/src/spec/arm64_32_apple_watchos.rs index c757ed45e4725..151b80513c7c7 100644 --- a/compiler/rustc_target/src/spec/arm64_32_apple_watchos.rs +++ b/compiler/rustc_target/src/spec/arm64_32_apple_watchos.rs @@ -1,5 +1,7 @@ -use super::apple_base::{opts, Arch}; -use crate::spec::{Target, TargetOptions}; +use crate::spec::{ + base::apple::{opts, Arch}, + Target, TargetOptions, +}; pub fn target() -> Target { let base = opts("watchos", Arch::Arm64_32); diff --git a/compiler/rustc_target/src/spec/arm_linux_androideabi.rs b/compiler/rustc_target/src/spec/arm_linux_androideabi.rs index bbf1fa315ab4c..d4051d847ce21 100644 --- a/compiler/rustc_target/src/spec/arm_linux_androideabi.rs +++ b/compiler/rustc_target/src/spec/arm_linux_androideabi.rs @@ -1,4 +1,4 @@ -use crate::spec::{SanitizerSet, Target, TargetOptions}; +use crate::spec::{base::android, SanitizerSet, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -12,7 +12,7 @@ pub fn target() -> Target { features: "+strict-align,+v5te".into(), supported_sanitizers: SanitizerSet::ADDRESS, max_atomic_width: Some(32), - ..super::android_base::opts() + ..android::opts() }, } } diff --git a/compiler/rustc_target/src/spec/arm_unknown_linux_gnueabi.rs b/compiler/rustc_target/src/spec/arm_unknown_linux_gnueabi.rs index 400030ca0c60e..edf3bb21aa1a2 100644 --- a/compiler/rustc_target/src/spec/arm_unknown_linux_gnueabi.rs +++ b/compiler/rustc_target/src/spec/arm_unknown_linux_gnueabi.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -12,7 +12,7 @@ pub fn target() -> Target { max_atomic_width: Some(64), mcount: "\u{1}__gnu_mcount_nc".into(), llvm_mcount_intrinsic: Some("llvm.arm.gnu.eabi.mcount".into()), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/arm_unknown_linux_gnueabihf.rs b/compiler/rustc_target/src/spec/arm_unknown_linux_gnueabihf.rs index 6228fb15a83fc..d989cff408efc 100644 --- a/compiler/rustc_target/src/spec/arm_unknown_linux_gnueabihf.rs +++ b/compiler/rustc_target/src/spec/arm_unknown_linux_gnueabihf.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -12,7 +12,7 @@ pub fn target() -> Target { max_atomic_width: Some(64), mcount: "\u{1}__gnu_mcount_nc".into(), llvm_mcount_intrinsic: Some("llvm.arm.gnu.eabi.mcount".into()), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/arm_unknown_linux_musleabi.rs b/compiler/rustc_target/src/spec/arm_unknown_linux_musleabi.rs index 3ef441d6a6075..4aba87f147d0a 100644 --- a/compiler/rustc_target/src/spec/arm_unknown_linux_musleabi.rs +++ b/compiler/rustc_target/src/spec/arm_unknown_linux_musleabi.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_musl, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -16,7 +16,7 @@ pub fn target() -> Target { features: "+strict-align,+v6".into(), max_atomic_width: Some(64), mcount: "\u{1}mcount".into(), - ..super::linux_musl_base::opts() + ..linux_musl::opts() }, } } diff --git a/compiler/rustc_target/src/spec/arm_unknown_linux_musleabihf.rs b/compiler/rustc_target/src/spec/arm_unknown_linux_musleabihf.rs index eb6660d4c289b..6baeff90f6583 100644 --- a/compiler/rustc_target/src/spec/arm_unknown_linux_musleabihf.rs +++ b/compiler/rustc_target/src/spec/arm_unknown_linux_musleabihf.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_musl, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -16,7 +16,7 @@ pub fn target() -> Target { features: "+strict-align,+v6,+vfp2,-d32".into(), max_atomic_width: Some(64), mcount: "\u{1}mcount".into(), - ..super::linux_musl_base::opts() + ..linux_musl::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armeb_unknown_linux_gnueabi.rs b/compiler/rustc_target/src/spec/armeb_unknown_linux_gnueabi.rs index 1d66515a72e07..7207b164d690c 100644 --- a/compiler/rustc_target/src/spec/armeb_unknown_linux_gnueabi.rs +++ b/compiler/rustc_target/src/spec/armeb_unknown_linux_gnueabi.rs @@ -1,5 +1,7 @@ -use crate::abi::Endian; -use crate::spec::{Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_gnu, Target, TargetOptions}, +}; pub fn target() -> Target { Target { @@ -14,7 +16,7 @@ pub fn target() -> Target { max_atomic_width: Some(64), mcount: "\u{1}__gnu_mcount_nc".into(), llvm_mcount_intrinsic: Some("llvm.arm.gnu.eabi.mcount".into()), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armebv7r_none_eabihf.rs b/compiler/rustc_target/src/spec/armebv7r_none_eabihf.rs index 0c9e99ff84bfd..5fcb16f253555 100644 --- a/compiler/rustc_target/src/spec/armebv7r_none_eabihf.rs +++ b/compiler/rustc_target/src/spec/armebv7r_none_eabihf.rs @@ -1,7 +1,9 @@ // Targets the Cortex-R4F/R5F processor (ARMv7-R) -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, TargetOptions}, +}; pub fn target() -> Target { Target { diff --git a/compiler/rustc_target/src/spec/armv4t_unknown_linux_gnueabi.rs b/compiler/rustc_target/src/spec/armv4t_unknown_linux_gnueabi.rs index cffebcc9581ca..18c638354a9ac 100644 --- a/compiler/rustc_target/src/spec/armv4t_unknown_linux_gnueabi.rs +++ b/compiler/rustc_target/src/spec/armv4t_unknown_linux_gnueabi.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -14,7 +14,7 @@ pub fn target() -> Target { mcount: "\u{1}__gnu_mcount_nc".into(), llvm_mcount_intrinsic: Some("llvm.arm.gnu.eabi.mcount".into()), has_thumb_interworking: true, - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv5te_none_eabi.rs b/compiler/rustc_target/src/spec/armv5te_none_eabi.rs index dfd27b6547467..55f9f624e5ee6 100644 --- a/compiler/rustc_target/src/spec/armv5te_none_eabi.rs +++ b/compiler/rustc_target/src/spec/armv5te_none_eabi.rs @@ -1,6 +1,6 @@ //! Targets the ARMv5TE, with code as `a32` code by default. -use crate::spec::{cvs, FramePointer, Target, TargetOptions}; +use crate::spec::{base::thumb, cvs, FramePointer, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -35,7 +35,7 @@ pub fn target() -> Target { atomic_cas: false, has_thumb_interworking: true, - ..super::thumb_base::opts() + ..thumb::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv5te_unknown_linux_gnueabi.rs b/compiler/rustc_target/src/spec/armv5te_unknown_linux_gnueabi.rs index b940563102b07..fb0a8cd760116 100644 --- a/compiler/rustc_target/src/spec/armv5te_unknown_linux_gnueabi.rs +++ b/compiler/rustc_target/src/spec/armv5te_unknown_linux_gnueabi.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -13,7 +13,7 @@ pub fn target() -> Target { max_atomic_width: Some(32), mcount: "\u{1}__gnu_mcount_nc".into(), has_thumb_interworking: true, - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv5te_unknown_linux_musleabi.rs b/compiler/rustc_target/src/spec/armv5te_unknown_linux_musleabi.rs index 2530971b50217..e9de58d981dcc 100644 --- a/compiler/rustc_target/src/spec/armv5te_unknown_linux_musleabi.rs +++ b/compiler/rustc_target/src/spec/armv5te_unknown_linux_musleabi.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_musl, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -17,7 +17,7 @@ pub fn target() -> Target { max_atomic_width: Some(32), mcount: "\u{1}mcount".into(), has_thumb_interworking: true, - ..super::linux_musl_base::opts() + ..linux_musl::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv5te_unknown_linux_uclibceabi.rs b/compiler/rustc_target/src/spec/armv5te_unknown_linux_uclibceabi.rs index a51be10a3d82a..58c67d587b6ea 100644 --- a/compiler/rustc_target/src/spec/armv5te_unknown_linux_uclibceabi.rs +++ b/compiler/rustc_target/src/spec/armv5te_unknown_linux_uclibceabi.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_uclibc, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -13,7 +13,7 @@ pub fn target() -> Target { max_atomic_width: Some(32), mcount: "\u{1}__gnu_mcount_nc".into(), has_thumb_interworking: true, - ..super::linux_uclibc_base::opts() + ..linux_uclibc::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv6_unknown_freebsd.rs b/compiler/rustc_target/src/spec/armv6_unknown_freebsd.rs index 4a8aa31576fa5..58d98674c21e7 100644 --- a/compiler/rustc_target/src/spec/armv6_unknown_freebsd.rs +++ b/compiler/rustc_target/src/spec/armv6_unknown_freebsd.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::freebsd, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -14,7 +14,7 @@ pub fn target() -> Target { max_atomic_width: Some(64), mcount: "\u{1}__gnu_mcount_nc".into(), llvm_mcount_intrinsic: Some("llvm.arm.gnu.eabi.mcount".into()), - ..super::freebsd_base::opts() + ..freebsd::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv6_unknown_netbsd_eabihf.rs b/compiler/rustc_target/src/spec/armv6_unknown_netbsd_eabihf.rs index 6e26f686fcb58..cc030d8d98d2f 100644 --- a/compiler/rustc_target/src/spec/armv6_unknown_netbsd_eabihf.rs +++ b/compiler/rustc_target/src/spec/armv6_unknown_netbsd_eabihf.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::netbsd, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -13,7 +13,7 @@ pub fn target() -> Target { features: "+v6,+vfp2,-d32".into(), max_atomic_width: Some(64), mcount: "__mcount".into(), - ..super::netbsd_base::opts() + ..netbsd::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv7_apple_ios.rs b/compiler/rustc_target/src/spec/armv7_apple_ios.rs index 3259c854791ce..0850799fe006a 100644 --- a/compiler/rustc_target/src/spec/armv7_apple_ios.rs +++ b/compiler/rustc_target/src/spec/armv7_apple_ios.rs @@ -1,5 +1,7 @@ -use super::apple_base::{ios_llvm_target, opts, Arch}; -use crate::spec::{Target, TargetOptions}; +use crate::spec::{ + base::apple::{ios_llvm_target, opts, Arch}, + Target, TargetOptions, +}; pub fn target() -> Target { let arch = Arch::Armv7; diff --git a/compiler/rustc_target/src/spec/armv7_linux_androideabi.rs b/compiler/rustc_target/src/spec/armv7_linux_androideabi.rs index 402e0fd92363e..19bfcef47d65d 100644 --- a/compiler/rustc_target/src/spec/armv7_linux_androideabi.rs +++ b/compiler/rustc_target/src/spec/armv7_linux_androideabi.rs @@ -1,4 +1,4 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, SanitizerSet, Target, TargetOptions}; +use crate::spec::{base::android, Cc, LinkerFlavor, Lld, SanitizerSet, Target, TargetOptions}; // This target if is for the baseline of the Android v7a ABI // in thumb mode. It's named armv7-* instead of thumbv7-* @@ -9,7 +9,7 @@ use crate::spec::{Cc, LinkerFlavor, Lld, SanitizerSet, Target, TargetOptions}; // for target ABI requirements. pub fn target() -> Target { - let mut base = super::android_base::opts(); + let mut base = android::opts(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-march=armv7-a"]); Target { llvm_target: "armv7-none-linux-android".into(), diff --git a/compiler/rustc_target/src/spec/armv7_sony_vita_newlibeabihf.rs b/compiler/rustc_target/src/spec/armv7_sony_vita_newlibeabihf.rs index 62c93603621ab..2b31650dc52f7 100644 --- a/compiler/rustc_target/src/spec/armv7_sony_vita_newlibeabihf.rs +++ b/compiler/rustc_target/src/spec/armv7_sony_vita_newlibeabihf.rs @@ -1,5 +1,7 @@ -use crate::abi::Endian; -use crate::spec::{cvs, Cc, LinkerFlavor, Lld, RelocModel, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{cvs, Cc, LinkerFlavor, Lld, RelocModel, Target, TargetOptions}, +}; /// A base target for PlayStation Vita devices using the VITASDK toolchain (using newlib). /// diff --git a/compiler/rustc_target/src/spec/armv7_unknown_freebsd.rs b/compiler/rustc_target/src/spec/armv7_unknown_freebsd.rs index bc37b62de8e22..d255fb5c4dadc 100644 --- a/compiler/rustc_target/src/spec/armv7_unknown_freebsd.rs +++ b/compiler/rustc_target/src/spec/armv7_unknown_freebsd.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::freebsd, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -13,7 +13,7 @@ pub fn target() -> Target { features: "+v7,+vfp3,-d32,+thumb2,-neon".into(), max_atomic_width: Some(64), mcount: "\u{1}__gnu_mcount_nc".into(), - ..super::freebsd_base::opts() + ..freebsd::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv7_unknown_linux_gnueabi.rs b/compiler/rustc_target/src/spec/armv7_unknown_linux_gnueabi.rs index 73ae212a7a6eb..1a6df77e1a7c1 100644 --- a/compiler/rustc_target/src/spec/armv7_unknown_linux_gnueabi.rs +++ b/compiler/rustc_target/src/spec/armv7_unknown_linux_gnueabi.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Target, TargetOptions}; // This target is for glibc Linux on ARMv7 without thumb-mode, NEON or // hardfloat. @@ -15,7 +15,7 @@ pub fn target() -> Target { max_atomic_width: Some(64), mcount: "\u{1}__gnu_mcount_nc".into(), llvm_mcount_intrinsic: Some("llvm.arm.gnu.eabi.mcount".into()), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv7_unknown_linux_gnueabihf.rs b/compiler/rustc_target/src/spec/armv7_unknown_linux_gnueabihf.rs index e39ea49a0032b..b9ed97fe410bd 100644 --- a/compiler/rustc_target/src/spec/armv7_unknown_linux_gnueabihf.rs +++ b/compiler/rustc_target/src/spec/armv7_unknown_linux_gnueabihf.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Target, TargetOptions}; // This target is for glibc Linux on ARMv7 without NEON or // thumb-mode. See the thumbv7neon variant for enabling both. @@ -15,7 +15,7 @@ pub fn target() -> Target { features: "+v7,+vfp3,-d32,+thumb2,-neon".into(), max_atomic_width: Some(64), mcount: "\u{1}__gnu_mcount_nc".into(), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv7_unknown_linux_musleabi.rs b/compiler/rustc_target/src/spec/armv7_unknown_linux_musleabi.rs index 7dae8577396e5..ba0cf973b11fc 100644 --- a/compiler/rustc_target/src/spec/armv7_unknown_linux_musleabi.rs +++ b/compiler/rustc_target/src/spec/armv7_unknown_linux_musleabi.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_musl, Target, TargetOptions}; // This target is for musl Linux on ARMv7 without thumb-mode, NEON or // hardfloat. @@ -20,7 +20,7 @@ pub fn target() -> Target { features: "+v7,+thumb2,+soft-float,-neon".into(), max_atomic_width: Some(64), mcount: "\u{1}mcount".into(), - ..super::linux_musl_base::opts() + ..linux_musl::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv7_unknown_linux_musleabihf.rs b/compiler/rustc_target/src/spec/armv7_unknown_linux_musleabihf.rs index ba83964bf5851..eeab7f64664d8 100644 --- a/compiler/rustc_target/src/spec/armv7_unknown_linux_musleabihf.rs +++ b/compiler/rustc_target/src/spec/armv7_unknown_linux_musleabihf.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_musl, Target, TargetOptions}; // This target is for musl Linux on ARMv7 without thumb-mode or NEON. @@ -19,7 +19,7 @@ pub fn target() -> Target { features: "+v7,+vfp3,-d32,+thumb2,-neon".into(), max_atomic_width: Some(64), mcount: "\u{1}mcount".into(), - ..super::linux_musl_base::opts() + ..linux_musl::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv7_unknown_linux_ohos.rs b/compiler/rustc_target/src/spec/armv7_unknown_linux_ohos.rs index e9b0bda68ef14..23b4e75d21df3 100644 --- a/compiler/rustc_target/src/spec/armv7_unknown_linux_ohos.rs +++ b/compiler/rustc_target/src/spec/armv7_unknown_linux_ohos.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_ohos, Target, TargetOptions}; // This target is for OpenHarmony on ARMv7 Linux with thumb-mode, but no NEON or // hardfloat. @@ -18,7 +18,7 @@ pub fn target() -> Target { features: "+v7,+thumb2,+soft-float,-neon".into(), max_atomic_width: Some(64), mcount: "\u{1}mcount".into(), - ..super::linux_ohos_base::opts() + ..linux_ohos::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv7_unknown_linux_uclibceabi.rs b/compiler/rustc_target/src/spec/armv7_unknown_linux_uclibceabi.rs index 171f67070d549..fe200d6f4c3aa 100644 --- a/compiler/rustc_target/src/spec/armv7_unknown_linux_uclibceabi.rs +++ b/compiler/rustc_target/src/spec/armv7_unknown_linux_uclibceabi.rs @@ -1,10 +1,10 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_uclibc, Target, TargetOptions}; // This target is for uclibc Linux on ARMv7 without NEON, // thumb-mode or hardfloat. pub fn target() -> Target { - let base = super::linux_uclibc_base::opts(); + let base = linux_uclibc::opts(); Target { llvm_target: "armv7-unknown-linux-gnueabi".into(), pointer_width: 32, diff --git a/compiler/rustc_target/src/spec/armv7_unknown_linux_uclibceabihf.rs b/compiler/rustc_target/src/spec/armv7_unknown_linux_uclibceabihf.rs index d3e95a6573d82..ac07d50f5bf15 100644 --- a/compiler/rustc_target/src/spec/armv7_unknown_linux_uclibceabihf.rs +++ b/compiler/rustc_target/src/spec/armv7_unknown_linux_uclibceabihf.rs @@ -1,10 +1,10 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_uclibc, Target, TargetOptions}; // This target is for uclibc Linux on ARMv7 without NEON or // thumb-mode. See the thumbv7neon variant for enabling both. pub fn target() -> Target { - let base = super::linux_uclibc_base::opts(); + let base = linux_uclibc::opts(); Target { llvm_target: "armv7-unknown-linux-gnueabihf".into(), pointer_width: 32, diff --git a/compiler/rustc_target/src/spec/armv7_unknown_netbsd_eabihf.rs b/compiler/rustc_target/src/spec/armv7_unknown_netbsd_eabihf.rs index c89ae24839884..d78b9b36ea1da 100644 --- a/compiler/rustc_target/src/spec/armv7_unknown_netbsd_eabihf.rs +++ b/compiler/rustc_target/src/spec/armv7_unknown_netbsd_eabihf.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::netbsd, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -13,7 +13,7 @@ pub fn target() -> Target { features: "+v7,+vfp3,-d32,+thumb2,-neon".into(), max_atomic_width: Some(64), mcount: "__mcount".into(), - ..super::netbsd_base::opts() + ..netbsd::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv7_wrs_vxworks_eabihf.rs b/compiler/rustc_target/src/spec/armv7_wrs_vxworks_eabihf.rs index c1ab90172e276..78c5c47f457b5 100644 --- a/compiler/rustc_target/src/spec/armv7_wrs_vxworks_eabihf.rs +++ b/compiler/rustc_target/src/spec/armv7_wrs_vxworks_eabihf.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::vxworks, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -11,7 +11,7 @@ pub fn target() -> Target { // Info about features at https://wiki.debian.org/ArmHardFloatPort features: "+v7,+vfp3,-d32,+thumb2,-neon".into(), max_atomic_width: Some(64), - ..super::vxworks_base::opts() + ..vxworks::opts() }, } } diff --git a/compiler/rustc_target/src/spec/armv7a_kmc_solid_asp3_eabi.rs b/compiler/rustc_target/src/spec/armv7a_kmc_solid_asp3_eabi.rs index b49dc650bd00f..73dc4aa4c7955 100644 --- a/compiler/rustc_target/src/spec/armv7a_kmc_solid_asp3_eabi.rs +++ b/compiler/rustc_target/src/spec/armv7a_kmc_solid_asp3_eabi.rs @@ -1,7 +1,7 @@ -use super::{RelocModel, Target, TargetOptions}; +use super::{base::solid, RelocModel, Target, TargetOptions}; pub fn target() -> Target { - let base = super::solid_base::opts("asp3"); + let base = solid::opts("asp3"); Target { llvm_target: "armv7a-none-eabi".into(), pointer_width: 32, diff --git a/compiler/rustc_target/src/spec/armv7a_kmc_solid_asp3_eabihf.rs b/compiler/rustc_target/src/spec/armv7a_kmc_solid_asp3_eabihf.rs index 7d30238e8ab29..5968bbfdc6afd 100644 --- a/compiler/rustc_target/src/spec/armv7a_kmc_solid_asp3_eabihf.rs +++ b/compiler/rustc_target/src/spec/armv7a_kmc_solid_asp3_eabihf.rs @@ -1,7 +1,7 @@ -use super::{RelocModel, Target, TargetOptions}; +use super::{base::solid, RelocModel, Target, TargetOptions}; pub fn target() -> Target { - let base = super::solid_base::opts("asp3"); + let base = solid::opts("asp3"); Target { llvm_target: "armv7a-none-eabihf".into(), pointer_width: 32, diff --git a/compiler/rustc_target/src/spec/armv7a_none_eabi.rs b/compiler/rustc_target/src/spec/armv7a_none_eabi.rs index d59de86a23012..c5b61427e6982 100644 --- a/compiler/rustc_target/src/spec/armv7a_none_eabi.rs +++ b/compiler/rustc_target/src/spec/armv7a_none_eabi.rs @@ -14,7 +14,7 @@ // - `relocation-model` set to `static`; also no PIE, no relro and no dynamic // linking. rationale: matches `thumb` targets -use super::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, TargetOptions}; +use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, TargetOptions}; pub fn target() -> Target { let opts = TargetOptions { diff --git a/compiler/rustc_target/src/spec/armv7k_apple_watchos.rs b/compiler/rustc_target/src/spec/armv7k_apple_watchos.rs index 6e1d00d1f6ca5..f662fe14593e3 100644 --- a/compiler/rustc_target/src/spec/armv7k_apple_watchos.rs +++ b/compiler/rustc_target/src/spec/armv7k_apple_watchos.rs @@ -1,5 +1,7 @@ -use super::apple_base::{opts, Arch}; -use crate::spec::{Target, TargetOptions}; +use crate::spec::{ + base::apple::{opts, Arch}, + Target, TargetOptions, +}; pub fn target() -> Target { let arch = Arch::Armv7k; diff --git a/compiler/rustc_target/src/spec/armv7s_apple_ios.rs b/compiler/rustc_target/src/spec/armv7s_apple_ios.rs index be4bc6758443e..8cf3bea81c91a 100644 --- a/compiler/rustc_target/src/spec/armv7s_apple_ios.rs +++ b/compiler/rustc_target/src/spec/armv7s_apple_ios.rs @@ -1,5 +1,7 @@ -use super::apple_base::{opts, Arch}; -use crate::spec::{Target, TargetOptions}; +use crate::spec::{ + base::apple::{opts, Arch}, + Target, TargetOptions, +}; pub fn target() -> Target { let arch = Arch::Armv7s; diff --git a/compiler/rustc_target/src/spec/asmjs_unknown_emscripten.rs b/compiler/rustc_target/src/spec/asmjs_unknown_emscripten.rs index f492c3451a418..aa68d1039554c 100644 --- a/compiler/rustc_target/src/spec/asmjs_unknown_emscripten.rs +++ b/compiler/rustc_target/src/spec/asmjs_unknown_emscripten.rs @@ -1,4 +1,4 @@ -use super::{wasm32_unknown_emscripten, LinkerFlavor, Target}; +use crate::spec::{wasm32_unknown_emscripten, LinkerFlavor, Target}; pub fn target() -> Target { let mut target = wasm32_unknown_emscripten::target(); diff --git a/compiler/rustc_target/src/spec/avr_unknown_gnu_atmega328.rs b/compiler/rustc_target/src/spec/avr_unknown_gnu_atmega328.rs index 6c16b03cc283d..5efeab2302fde 100644 --- a/compiler/rustc_target/src/spec/avr_unknown_gnu_atmega328.rs +++ b/compiler/rustc_target/src/spec/avr_unknown_gnu_atmega328.rs @@ -1,5 +1,5 @@ -use crate::spec::Target; +use crate::spec::{base::avr_gnu, Target}; pub fn target() -> Target { - super::avr_gnu_base::target("atmega328", "-mmcu=atmega328") + avr_gnu::target("atmega328", "-mmcu=atmega328") } diff --git a/compiler/rustc_target/src/spec/aix_base.rs b/compiler/rustc_target/src/spec/base/aix.rs similarity index 89% rename from compiler/rustc_target/src/spec/aix_base.rs rename to compiler/rustc_target/src/spec/base/aix.rs index c71c4ba2cc902..917a7802e48c5 100644 --- a/compiler/rustc_target/src/spec/aix_base.rs +++ b/compiler/rustc_target/src/spec/base/aix.rs @@ -1,5 +1,7 @@ -use crate::abi::Endian; -use crate::spec::{crt_objects, cvs, Cc, CodeModel, LinkOutputKind, LinkerFlavor, TargetOptions}; +use crate::{ + abi::Endian, + spec::{crt_objects, cvs, Cc, CodeModel, LinkOutputKind, LinkerFlavor, TargetOptions}, +}; pub fn opts() -> TargetOptions { TargetOptions { diff --git a/compiler/rustc_target/src/spec/android_base.rs b/compiler/rustc_target/src/spec/base/android.rs similarity index 92% rename from compiler/rustc_target/src/spec/android_base.rs rename to compiler/rustc_target/src/spec/base/android.rs index 9c1df1a06778e..dca698e47963b 100644 --- a/compiler/rustc_target/src/spec/android_base.rs +++ b/compiler/rustc_target/src/spec/base/android.rs @@ -1,7 +1,7 @@ use crate::spec::{SanitizerSet, TargetOptions}; pub fn opts() -> TargetOptions { - let mut base = super::linux_base::opts(); + let mut base = super::linux::opts(); base.os = "android".into(); base.is_like_android = true; base.default_dwarf_version = 2; diff --git a/compiler/rustc_target/src/spec/apple_base.rs b/compiler/rustc_target/src/spec/base/apple.rs similarity index 97% rename from compiler/rustc_target/src/spec/apple_base.rs rename to compiler/rustc_target/src/spec/base/apple.rs index f7dcec307ddd0..00869da0d619f 100644 --- a/compiler/rustc_target/src/spec/apple_base.rs +++ b/compiler/rustc_target/src/spec/base/apple.rs @@ -1,12 +1,9 @@ +use crate::spec::{ + add_link_args, add_link_args_iter, cvs, Cc, DebuginfoKind, FramePointer, LinkArgs, + LinkerFlavor, Lld, SplitDebuginfo, StaticCow, Target, TargetOptions, +}; use std::{borrow::Cow, env}; -use crate::spec::{cvs, Cc, DebuginfoKind, FramePointer, LinkArgs}; -use crate::spec::{LinkerFlavor, Lld, SplitDebuginfo, StaticCow, Target, TargetOptions}; - -#[cfg(test)] -#[path = "apple/tests.rs"] -mod tests; - use Arch::*; #[allow(non_camel_case_types)] #[derive(Copy, Clone)] @@ -102,13 +99,13 @@ fn pre_link_args(os: &'static str, arch: Arch, abi: &'static str) -> LinkArgs { LinkerFlavor::Darwin(Cc::No, Lld::No), &["-arch", arch, "-platform_version"], ); - super::add_link_args_iter( + add_link_args_iter( &mut args, LinkerFlavor::Darwin(Cc::No, Lld::No), [platform_name, platform_version.clone(), platform_version].into_iter(), ); if abi != "macabi" { - super::add_link_args(&mut args, LinkerFlavor::Darwin(Cc::Yes, Lld::No), &["-arch", arch]); + add_link_args(&mut args, LinkerFlavor::Darwin(Cc::Yes, Lld::No), &["-arch", arch]); } args diff --git a/compiler/rustc_target/src/spec/avr_gnu_base.rs b/compiler/rustc_target/src/spec/base/avr_gnu.rs similarity index 100% rename from compiler/rustc_target/src/spec/avr_gnu_base.rs rename to compiler/rustc_target/src/spec/base/avr_gnu.rs diff --git a/compiler/rustc_target/src/spec/bpf_base.rs b/compiler/rustc_target/src/spec/base/bpf.rs similarity index 90% rename from compiler/rustc_target/src/spec/bpf_base.rs rename to compiler/rustc_target/src/spec/base/bpf.rs index 4d03747d0165f..b663732636eca 100644 --- a/compiler/rustc_target/src/spec/bpf_base.rs +++ b/compiler/rustc_target/src/spec/base/bpf.rs @@ -1,5 +1,7 @@ -use crate::abi::Endian; -use crate::spec::{LinkerFlavor, MergeFunctions, PanicStrategy, TargetOptions}; +use crate::{ + abi::Endian, + spec::{LinkerFlavor, MergeFunctions, PanicStrategy, TargetOptions}, +}; pub fn opts(endian: Endian) -> TargetOptions { TargetOptions { diff --git a/compiler/rustc_target/src/spec/dragonfly_base.rs b/compiler/rustc_target/src/spec/base/dragonfly.rs similarity index 100% rename from compiler/rustc_target/src/spec/dragonfly_base.rs rename to compiler/rustc_target/src/spec/base/dragonfly.rs diff --git a/compiler/rustc_target/src/spec/freebsd_base.rs b/compiler/rustc_target/src/spec/base/freebsd.rs similarity index 100% rename from compiler/rustc_target/src/spec/freebsd_base.rs rename to compiler/rustc_target/src/spec/base/freebsd.rs diff --git a/compiler/rustc_target/src/spec/fuchsia_base.rs b/compiler/rustc_target/src/spec/base/fuchsia.rs similarity index 100% rename from compiler/rustc_target/src/spec/fuchsia_base.rs rename to compiler/rustc_target/src/spec/base/fuchsia.rs diff --git a/compiler/rustc_target/src/spec/haiku_base.rs b/compiler/rustc_target/src/spec/base/haiku.rs similarity index 100% rename from compiler/rustc_target/src/spec/haiku_base.rs rename to compiler/rustc_target/src/spec/base/haiku.rs diff --git a/compiler/rustc_target/src/spec/hermit_base.rs b/compiler/rustc_target/src/spec/base/hermit.rs similarity index 100% rename from compiler/rustc_target/src/spec/hermit_base.rs rename to compiler/rustc_target/src/spec/base/hermit.rs diff --git a/compiler/rustc_target/src/spec/illumos_base.rs b/compiler/rustc_target/src/spec/base/illumos.rs similarity index 100% rename from compiler/rustc_target/src/spec/illumos_base.rs rename to compiler/rustc_target/src/spec/base/illumos.rs diff --git a/compiler/rustc_target/src/spec/l4re_base.rs b/compiler/rustc_target/src/spec/base/l4re.rs similarity index 100% rename from compiler/rustc_target/src/spec/l4re_base.rs rename to compiler/rustc_target/src/spec/base/l4re.rs diff --git a/compiler/rustc_target/src/spec/linux_base.rs b/compiler/rustc_target/src/spec/base/linux.rs similarity index 100% rename from compiler/rustc_target/src/spec/linux_base.rs rename to compiler/rustc_target/src/spec/base/linux.rs diff --git a/compiler/rustc_target/src/spec/base/linux_gnu.rs b/compiler/rustc_target/src/spec/base/linux_gnu.rs new file mode 100644 index 0000000000000..9e4828dddb8fc --- /dev/null +++ b/compiler/rustc_target/src/spec/base/linux_gnu.rs @@ -0,0 +1,5 @@ +use crate::spec::TargetOptions; + +pub fn opts() -> TargetOptions { + TargetOptions { env: "gnu".into(), ..super::linux::opts() } +} diff --git a/compiler/rustc_target/src/spec/linux_musl_base.rs b/compiler/rustc_target/src/spec/base/linux_musl.rs similarity index 73% rename from compiler/rustc_target/src/spec/linux_musl_base.rs rename to compiler/rustc_target/src/spec/base/linux_musl.rs index 61553e71b4500..ea013034f081f 100644 --- a/compiler/rustc_target/src/spec/linux_musl_base.rs +++ b/compiler/rustc_target/src/spec/base/linux_musl.rs @@ -1,8 +1,10 @@ -use crate::spec::crt_objects::{self, LinkSelfContainedDefault}; -use crate::spec::TargetOptions; +use crate::spec::{ + crt_objects::{self, LinkSelfContainedDefault}, + TargetOptions, +}; pub fn opts() -> TargetOptions { - let mut base = super::linux_base::opts(); + let mut base = super::linux::opts(); base.env = "musl".into(); base.pre_link_objects_self_contained = crt_objects::pre_musl_self_contained(); diff --git a/compiler/rustc_target/src/spec/linux_ohos_base.rs b/compiler/rustc_target/src/spec/base/linux_ohos.rs similarity index 82% rename from compiler/rustc_target/src/spec/linux_ohos_base.rs rename to compiler/rustc_target/src/spec/base/linux_ohos.rs index 4ad4c837336f8..52da81f340514 100644 --- a/compiler/rustc_target/src/spec/linux_ohos_base.rs +++ b/compiler/rustc_target/src/spec/base/linux_ohos.rs @@ -1,7 +1,7 @@ use crate::spec::TargetOptions; pub fn opts() -> TargetOptions { - let mut base = super::linux_base::opts(); + let mut base = super::linux::opts(); base.env = "ohos".into(); base.crt_static_default = false; diff --git a/compiler/rustc_target/src/spec/base/linux_uclibc.rs b/compiler/rustc_target/src/spec/base/linux_uclibc.rs new file mode 100644 index 0000000000000..8f1c55ca92a32 --- /dev/null +++ b/compiler/rustc_target/src/spec/base/linux_uclibc.rs @@ -0,0 +1,5 @@ +use crate::spec::{base::linux, TargetOptions}; + +pub fn opts() -> TargetOptions { + TargetOptions { env: "uclibc".into(), ..linux::opts() } +} diff --git a/compiler/rustc_target/src/spec/base/mod.rs b/compiler/rustc_target/src/spec/base/mod.rs new file mode 100644 index 0000000000000..65d3057aaa00d --- /dev/null +++ b/compiler/rustc_target/src/spec/base/mod.rs @@ -0,0 +1,37 @@ +//! Partial target definitions on which full target definitions are based. + +pub(crate) mod aix; +pub(crate) mod android; +pub(crate) mod apple; +pub(crate) mod avr_gnu; +pub(crate) mod bpf; +pub(crate) mod dragonfly; +pub(crate) mod freebsd; +pub(crate) mod fuchsia; +pub(crate) mod haiku; +pub(crate) mod hermit; +pub(crate) mod illumos; +pub(crate) mod l4re; +pub(crate) mod linux; +pub(crate) mod linux_gnu; +pub(crate) mod linux_musl; +pub(crate) mod linux_ohos; +pub(crate) mod linux_uclibc; +pub(crate) mod msvc; +pub(crate) mod netbsd; +pub(crate) mod nto_qnx; +pub(crate) mod openbsd; +pub(crate) mod redox; +pub(crate) mod solaris; +pub(crate) mod solid; +pub(crate) mod teeos; +pub(crate) mod thumb; +pub(crate) mod uefi_msvc; +pub(crate) mod unikraft_linux_musl; +pub(crate) mod vxworks; +pub(crate) mod wasm; +pub(crate) mod windows_gnu; +pub(crate) mod windows_gnullvm; +pub(crate) mod windows_msvc; +pub(crate) mod windows_uwp_gnu; +pub(crate) mod windows_uwp_msvc; diff --git a/compiler/rustc_target/src/spec/msvc_base.rs b/compiler/rustc_target/src/spec/base/msvc.rs similarity index 100% rename from compiler/rustc_target/src/spec/msvc_base.rs rename to compiler/rustc_target/src/spec/base/msvc.rs diff --git a/compiler/rustc_target/src/spec/netbsd_base.rs b/compiler/rustc_target/src/spec/base/netbsd.rs similarity index 100% rename from compiler/rustc_target/src/spec/netbsd_base.rs rename to compiler/rustc_target/src/spec/base/netbsd.rs diff --git a/compiler/rustc_target/src/spec/nto_qnx_base.rs b/compiler/rustc_target/src/spec/base/nto_qnx.rs similarity index 100% rename from compiler/rustc_target/src/spec/nto_qnx_base.rs rename to compiler/rustc_target/src/spec/base/nto_qnx.rs diff --git a/compiler/rustc_target/src/spec/openbsd_base.rs b/compiler/rustc_target/src/spec/base/openbsd.rs similarity index 100% rename from compiler/rustc_target/src/spec/openbsd_base.rs rename to compiler/rustc_target/src/spec/base/openbsd.rs diff --git a/compiler/rustc_target/src/spec/redox_base.rs b/compiler/rustc_target/src/spec/base/redox.rs similarity index 100% rename from compiler/rustc_target/src/spec/redox_base.rs rename to compiler/rustc_target/src/spec/base/redox.rs diff --git a/compiler/rustc_target/src/spec/solaris_base.rs b/compiler/rustc_target/src/spec/base/solaris.rs similarity index 100% rename from compiler/rustc_target/src/spec/solaris_base.rs rename to compiler/rustc_target/src/spec/base/solaris.rs diff --git a/compiler/rustc_target/src/spec/solid_base.rs b/compiler/rustc_target/src/spec/base/solid.rs similarity index 83% rename from compiler/rustc_target/src/spec/solid_base.rs rename to compiler/rustc_target/src/spec/base/solid.rs index eaf72b7616c71..ce4a8869001bc 100644 --- a/compiler/rustc_target/src/spec/solid_base.rs +++ b/compiler/rustc_target/src/spec/base/solid.rs @@ -1,5 +1,4 @@ -use super::FramePointer; -use crate::spec::TargetOptions; +use crate::spec::{FramePointer, TargetOptions}; pub fn opts(kernel: &str) -> TargetOptions { TargetOptions { diff --git a/compiler/rustc_target/src/spec/teeos_base.rs b/compiler/rustc_target/src/spec/base/teeos.rs similarity index 84% rename from compiler/rustc_target/src/spec/teeos_base.rs rename to compiler/rustc_target/src/spec/base/teeos.rs index 1bc71bab01605..38d0a6d73140a 100644 --- a/compiler/rustc_target/src/spec/teeos_base.rs +++ b/compiler/rustc_target/src/spec/base/teeos.rs @@ -1,12 +1,11 @@ -use super::{Cc, LinkerFlavor, Lld, PanicStrategy}; -use crate::spec::{RelroLevel, TargetOptions}; +use crate::spec::{add_link_args, Cc, LinkerFlavor, Lld, PanicStrategy, RelroLevel, TargetOptions}; pub fn opts() -> TargetOptions { let lld_args = &["-zmax-page-size=4096", "-znow", "-ztext", "--execute-only"]; let cc_args = &["-Wl,-zmax-page-size=4096", "-Wl,-znow", "-Wl,-ztext", "-mexecute-only"]; let mut pre_link_args = TargetOptions::link_args(LinkerFlavor::Gnu(Cc::No, Lld::No), lld_args); - super::add_link_args(&mut pre_link_args, LinkerFlavor::Gnu(Cc::Yes, Lld::No), cc_args); + add_link_args(&mut pre_link_args, LinkerFlavor::Gnu(Cc::Yes, Lld::No), cc_args); TargetOptions { os: "teeos".into(), diff --git a/compiler/rustc_target/src/spec/thumb_base.rs b/compiler/rustc_target/src/spec/base/thumb.rs similarity index 100% rename from compiler/rustc_target/src/spec/thumb_base.rs rename to compiler/rustc_target/src/spec/base/thumb.rs diff --git a/compiler/rustc_target/src/spec/uefi_msvc_base.rs b/compiler/rustc_target/src/spec/base/uefi_msvc.rs similarity index 98% rename from compiler/rustc_target/src/spec/uefi_msvc_base.rs rename to compiler/rustc_target/src/spec/base/uefi_msvc.rs index 8968d3c8fc100..b6b2162bb57fa 100644 --- a/compiler/rustc_target/src/spec/uefi_msvc_base.rs +++ b/compiler/rustc_target/src/spec/base/uefi_msvc.rs @@ -12,7 +12,7 @@ use crate::spec::{LinkerFlavor, Lld, PanicStrategy, StackProbeType, TargetOptions}; pub fn opts() -> TargetOptions { - let mut base = super::msvc_base::opts(); + let mut base = super::msvc::opts(); base.add_pre_link_args( LinkerFlavor::Msvc(Lld::No), diff --git a/compiler/rustc_target/src/spec/unikraft_linux_musl_base.rs b/compiler/rustc_target/src/spec/base/unikraft_linux_musl.rs similarity index 100% rename from compiler/rustc_target/src/spec/unikraft_linux_musl_base.rs rename to compiler/rustc_target/src/spec/base/unikraft_linux_musl.rs diff --git a/compiler/rustc_target/src/spec/vxworks_base.rs b/compiler/rustc_target/src/spec/base/vxworks.rs similarity index 100% rename from compiler/rustc_target/src/spec/vxworks_base.rs rename to compiler/rustc_target/src/spec/base/vxworks.rs diff --git a/compiler/rustc_target/src/spec/wasm_base.rs b/compiler/rustc_target/src/spec/base/wasm.rs similarity index 96% rename from compiler/rustc_target/src/spec/wasm_base.rs rename to compiler/rustc_target/src/spec/base/wasm.rs index 341763aadbaf1..43b2b9aed931d 100644 --- a/compiler/rustc_target/src/spec/wasm_base.rs +++ b/compiler/rustc_target/src/spec/base/wasm.rs @@ -1,5 +1,7 @@ -use super::crt_objects::LinkSelfContainedDefault; -use super::{cvs, Cc, LinkerFlavor, PanicStrategy, RelocModel, TargetOptions, TlsModel}; +use crate::spec::{ + add_link_args, crt_objects::LinkSelfContainedDefault, cvs, Cc, LinkerFlavor, PanicStrategy, + RelocModel, TargetOptions, TlsModel, +}; pub fn options() -> TargetOptions { macro_rules! args { @@ -50,7 +52,7 @@ pub fn options() -> TargetOptions { } let mut pre_link_args = TargetOptions::link_args(LinkerFlavor::WasmLld(Cc::No), args!("")); - super::add_link_args(&mut pre_link_args, LinkerFlavor::WasmLld(Cc::Yes), args!("-Wl,")); + add_link_args(&mut pre_link_args, LinkerFlavor::WasmLld(Cc::Yes), args!("-Wl,")); TargetOptions { is_like_wasm: true, diff --git a/compiler/rustc_target/src/spec/windows_gnu_base.rs b/compiler/rustc_target/src/spec/base/windows_gnu.rs similarity index 92% rename from compiler/rustc_target/src/spec/windows_gnu_base.rs rename to compiler/rustc_target/src/spec/base/windows_gnu.rs index 2231983f07126..0c314cbf63d04 100644 --- a/compiler/rustc_target/src/spec/windows_gnu_base.rs +++ b/compiler/rustc_target/src/spec/base/windows_gnu.rs @@ -1,5 +1,8 @@ -use crate::spec::crt_objects::{self, LinkSelfContainedDefault}; -use crate::spec::{cvs, Cc, DebuginfoKind, LinkerFlavor, Lld, SplitDebuginfo, TargetOptions}; +use crate::spec::{ + add_link_args, + crt_objects::{self, LinkSelfContainedDefault}, + cvs, Cc, DebuginfoKind, LinkerFlavor, Lld, SplitDebuginfo, TargetOptions, +}; use std::borrow::Cow; pub fn opts() -> TargetOptions { @@ -12,7 +15,7 @@ pub fn opts() -> TargetOptions { "--disable-auto-image-base", ], ); - super::add_link_args( + add_link_args( &mut pre_link_args, LinkerFlavor::Gnu(Cc::Yes, Lld::No), &[ @@ -44,14 +47,14 @@ pub fn opts() -> TargetOptions { ]; let mut late_link_args = TargetOptions::link_args(LinkerFlavor::Gnu(Cc::No, Lld::No), mingw_libs); - super::add_link_args(&mut late_link_args, LinkerFlavor::Gnu(Cc::Yes, Lld::No), mingw_libs); + add_link_args(&mut late_link_args, LinkerFlavor::Gnu(Cc::Yes, Lld::No), mingw_libs); // If any of our crates are dynamically linked then we need to use // the shared libgcc_s-dw2-1.dll. This is required to support // unwinding across DLL boundaries. let dynamic_unwind_libs = &["-lgcc_s"]; let mut late_link_args_dynamic = TargetOptions::link_args(LinkerFlavor::Gnu(Cc::No, Lld::No), dynamic_unwind_libs); - super::add_link_args( + add_link_args( &mut late_link_args_dynamic, LinkerFlavor::Gnu(Cc::Yes, Lld::No), dynamic_unwind_libs, @@ -64,7 +67,7 @@ pub fn opts() -> TargetOptions { let static_unwind_libs = &["-lgcc_eh", "-l:libpthread.a"]; let mut late_link_args_static = TargetOptions::link_args(LinkerFlavor::Gnu(Cc::No, Lld::No), static_unwind_libs); - super::add_link_args( + add_link_args( &mut late_link_args_static, LinkerFlavor::Gnu(Cc::Yes, Lld::No), static_unwind_libs, diff --git a/compiler/rustc_target/src/spec/windows_gnullvm_base.rs b/compiler/rustc_target/src/spec/base/windows_gnullvm.rs similarity index 100% rename from compiler/rustc_target/src/spec/windows_gnullvm_base.rs rename to compiler/rustc_target/src/spec/base/windows_gnullvm.rs diff --git a/compiler/rustc_target/src/spec/windows_msvc_base.rs b/compiler/rustc_target/src/spec/base/windows_msvc.rs similarity index 93% rename from compiler/rustc_target/src/spec/windows_msvc_base.rs rename to compiler/rustc_target/src/spec/base/windows_msvc.rs index 21062c337d825..70a6cfb1232a1 100644 --- a/compiler/rustc_target/src/spec/windows_msvc_base.rs +++ b/compiler/rustc_target/src/spec/base/windows_msvc.rs @@ -1,7 +1,7 @@ -use crate::spec::{cvs, TargetOptions}; +use crate::spec::{base::msvc, cvs, TargetOptions}; pub fn opts() -> TargetOptions { - let base = super::msvc_base::opts(); + let base = msvc::opts(); TargetOptions { os: "windows".into(), diff --git a/compiler/rustc_target/src/spec/windows_uwp_gnu_base.rs b/compiler/rustc_target/src/spec/base/windows_uwp_gnu.rs similarity index 81% rename from compiler/rustc_target/src/spec/windows_uwp_gnu_base.rs rename to compiler/rustc_target/src/spec/base/windows_uwp_gnu.rs index f30c33d997e33..de5213635d4a8 100644 --- a/compiler/rustc_target/src/spec/windows_uwp_gnu_base.rs +++ b/compiler/rustc_target/src/spec/base/windows_uwp_gnu.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkArgs, LinkerFlavor, Lld, TargetOptions}; +use crate::spec::{add_link_args, Cc, LinkArgs, LinkerFlavor, Lld, TargetOptions}; pub fn opts() -> TargetOptions { - let base = super::windows_gnu_base::opts(); + let base = super::windows_gnu::opts(); // FIXME: This should be updated for the exception machinery changes from #67502 // and inherit from `windows_gnu_base`, at least partially. @@ -17,7 +17,7 @@ pub fn opts() -> TargetOptions { ]; let mut late_link_args = TargetOptions::link_args(LinkerFlavor::Gnu(Cc::No, Lld::No), mingw_libs); - super::add_link_args(&mut late_link_args, LinkerFlavor::Gnu(Cc::Yes, Lld::No), mingw_libs); + add_link_args(&mut late_link_args, LinkerFlavor::Gnu(Cc::Yes, Lld::No), mingw_libs); // Reset the flags back to empty until the FIXME above is addressed. let late_link_args_dynamic = LinkArgs::new(); let late_link_args_static = LinkArgs::new(); diff --git a/compiler/rustc_target/src/spec/windows_uwp_msvc_base.rs b/compiler/rustc_target/src/spec/base/windows_uwp_msvc.rs similarity index 63% rename from compiler/rustc_target/src/spec/windows_uwp_msvc_base.rs rename to compiler/rustc_target/src/spec/base/windows_uwp_msvc.rs index 8c942c59dd035..0fbf96c16d285 100644 --- a/compiler/rustc_target/src/spec/windows_uwp_msvc_base.rs +++ b/compiler/rustc_target/src/spec/base/windows_uwp_msvc.rs @@ -1,7 +1,7 @@ -use crate::spec::{LinkerFlavor, Lld, TargetOptions}; +use crate::spec::{base::windows_msvc, LinkerFlavor, Lld, TargetOptions}; pub fn opts() -> TargetOptions { - let mut opts = super::windows_msvc_base::opts(); + let mut opts = windows_msvc::opts(); opts.abi = "uwp".into(); opts.vendor = "uwp".into(); diff --git a/compiler/rustc_target/src/spec/bpfeb_unknown_none.rs b/compiler/rustc_target/src/spec/bpfeb_unknown_none.rs index 174ddfa50bfc9..65b8fb39e2cb8 100644 --- a/compiler/rustc_target/src/spec/bpfeb_unknown_none.rs +++ b/compiler/rustc_target/src/spec/bpfeb_unknown_none.rs @@ -1,5 +1,7 @@ -use crate::spec::Target; -use crate::{abi::Endian, spec::bpf_base}; +use crate::{ + abi::Endian, + spec::{base::bpf, Target}, +}; pub fn target() -> Target { Target { @@ -7,6 +9,6 @@ pub fn target() -> Target { data_layout: "E-m:e-p:64:64-i64:64-i128:128-n32:64-S128".into(), pointer_width: 64, arch: "bpf".into(), - options: bpf_base::opts(Endian::Big), + options: bpf::opts(Endian::Big), } } diff --git a/compiler/rustc_target/src/spec/bpfel_unknown_none.rs b/compiler/rustc_target/src/spec/bpfel_unknown_none.rs index 7625e7b0e48ea..7a405d566f6e6 100644 --- a/compiler/rustc_target/src/spec/bpfel_unknown_none.rs +++ b/compiler/rustc_target/src/spec/bpfel_unknown_none.rs @@ -1,5 +1,7 @@ -use crate::spec::Target; -use crate::{abi::Endian, spec::bpf_base}; +use crate::{ + abi::Endian, + spec::{base::bpf, Target}, +}; pub fn target() -> Target { Target { @@ -7,6 +9,6 @@ pub fn target() -> Target { data_layout: "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128".into(), pointer_width: 64, arch: "bpf".into(), - options: bpf_base::opts(Endian::Little), + options: bpf::opts(Endian::Little), } } diff --git a/compiler/rustc_target/src/spec/csky_unknown_linux_gnuabiv2.rs b/compiler/rustc_target/src/spec/csky_unknown_linux_gnuabiv2.rs index 7d03dd26f5ded..28561cbc03ca2 100644 --- a/compiler/rustc_target/src/spec/csky_unknown_linux_gnuabiv2.rs +++ b/compiler/rustc_target/src/spec/csky_unknown_linux_gnuabiv2.rs @@ -1,4 +1,4 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Cc, LinkerFlavor, Lld, Target, TargetOptions}; // This target is for glibc Linux on Csky @@ -14,7 +14,7 @@ pub fn target() -> Target { features: "+2e3,+3e7,+7e10,+cache,+dsp1e2,+dspe60,+e1,+e2,+edsp,+elrw,+hard-tp,+high-registers,+hwdiv,+mp,+mp1e2,+nvic,+trust".into(), late_link_args_static: TargetOptions::link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-l:libatomic.a"]), max_atomic_width: Some(32), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/hexagon_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/hexagon_unknown_linux_musl.rs index 4c6ab5f5ae454..1265f035eb87e 100644 --- a/compiler/rustc_target/src/spec/hexagon_unknown_linux_musl.rs +++ b/compiler/rustc_target/src/spec/hexagon_unknown_linux_musl.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Target}; +use crate::spec::{base::linux_musl, Cc, LinkerFlavor, Target}; pub fn target() -> Target { - let mut base = super::linux_musl_base::opts(); + let mut base = linux_musl::opts(); base.cpu = "hexagonv60".into(); base.max_atomic_width = Some(32); // FIXME: HVX length defaults are per-CPU diff --git a/compiler/rustc_target/src/spec/i386_apple_ios.rs b/compiler/rustc_target/src/spec/i386_apple_ios.rs index 5819981612e84..f46e6f8e7fead 100644 --- a/compiler/rustc_target/src/spec/i386_apple_ios.rs +++ b/compiler/rustc_target/src/spec/i386_apple_ios.rs @@ -1,5 +1,7 @@ -use super::apple_base::{ios_sim_llvm_target, opts, Arch}; -use crate::spec::{StackProbeType, Target, TargetOptions}; +use crate::spec::{ + base::apple::{ios_sim_llvm_target, opts, Arch}, + StackProbeType, Target, TargetOptions, +}; pub fn target() -> Target { let arch = Arch::I386; diff --git a/compiler/rustc_target/src/spec/i586_pc_nto_qnx700.rs b/compiler/rustc_target/src/spec/i586_pc_nto_qnx700.rs index 68afa7fe40127..497a1baa2bc1b 100644 --- a/compiler/rustc_target/src/spec/i586_pc_nto_qnx700.rs +++ b/compiler/rustc_target/src/spec/i586_pc_nto_qnx700.rs @@ -1,5 +1,4 @@ -use super::nto_qnx_base; -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::spec::{base::nto_qnx, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -18,7 +17,7 @@ pub fn target() -> Target { ), env: "nto70".into(), stack_probes: StackProbeType::X86, - ..nto_qnx_base::opts() + ..nto_qnx::opts() }, } } diff --git a/compiler/rustc_target/src/spec/i686_apple_darwin.rs b/compiler/rustc_target/src/spec/i686_apple_darwin.rs index b5103d15db695..c92196000942c 100644 --- a/compiler/rustc_target/src/spec/i686_apple_darwin.rs +++ b/compiler/rustc_target/src/spec/i686_apple_darwin.rs @@ -1,5 +1,7 @@ -use super::apple_base::{macos_llvm_target, opts, Arch}; -use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::spec::{ + base::apple::{macos_llvm_target, opts, Arch}, + Cc, FramePointer, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions, +}; pub fn target() -> Target { // ld64 only understands i386 and not i686 diff --git a/compiler/rustc_target/src/spec/i686_linux_android.rs b/compiler/rustc_target/src/spec/i686_linux_android.rs index c7c30c23901d3..0860d099cc178 100644 --- a/compiler/rustc_target/src/spec/i686_linux_android.rs +++ b/compiler/rustc_target/src/spec/i686_linux_android.rs @@ -1,10 +1,10 @@ -use crate::spec::{SanitizerSet, StackProbeType, Target, TargetOptions}; +use crate::spec::{base::android, SanitizerSet, StackProbeType, Target, TargetOptions}; // See https://developer.android.com/ndk/guides/abis.html#x86 // for target ABI requirements. pub fn target() -> Target { - let mut base = super::android_base::opts(); + let mut base = android::opts(); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/i686_pc_windows_gnu.rs b/compiler/rustc_target/src/spec/i686_pc_windows_gnu.rs index 7a11138754fa8..ad5b26f97c414 100644 --- a/compiler/rustc_target/src/spec/i686_pc_windows_gnu.rs +++ b/compiler/rustc_target/src/spec/i686_pc_windows_gnu.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, Target}; +use crate::spec::{base::windows_gnu, Cc, FramePointer, LinkerFlavor, Lld, Target}; pub fn target() -> Target { - let mut base = super::windows_gnu_base::opts(); + let mut base = windows_gnu::opts(); base.cpu = "pentium4".into(); base.max_atomic_width = Some(64); base.frame_pointer = FramePointer::Always; // Required for backtraces diff --git a/compiler/rustc_target/src/spec/i686_pc_windows_gnullvm.rs b/compiler/rustc_target/src/spec/i686_pc_windows_gnullvm.rs index 3154b512a5202..96b4665260595 100644 --- a/compiler/rustc_target/src/spec/i686_pc_windows_gnullvm.rs +++ b/compiler/rustc_target/src/spec/i686_pc_windows_gnullvm.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, Target}; +use crate::spec::{base::windows_gnullvm, Cc, FramePointer, LinkerFlavor, Lld, Target}; pub fn target() -> Target { - let mut base = super::windows_gnullvm_base::opts(); + let mut base = windows_gnullvm::opts(); base.cpu = "pentium4".into(); base.max_atomic_width = Some(64); base.frame_pointer = FramePointer::Always; // Required for backtraces diff --git a/compiler/rustc_target/src/spec/i686_pc_windows_msvc.rs b/compiler/rustc_target/src/spec/i686_pc_windows_msvc.rs index db4c00dc697d7..93155677290a9 100644 --- a/compiler/rustc_target/src/spec/i686_pc_windows_msvc.rs +++ b/compiler/rustc_target/src/spec/i686_pc_windows_msvc.rs @@ -1,7 +1,7 @@ -use crate::spec::{LinkerFlavor, Lld, Target}; +use crate::spec::{base::windows_msvc, LinkerFlavor, Lld, Target}; pub fn target() -> Target { - let mut base = super::windows_msvc_base::opts(); + let mut base = windows_msvc::opts(); base.cpu = "pentium4".into(); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/i686_unknown_freebsd.rs b/compiler/rustc_target/src/spec/i686_unknown_freebsd.rs index 35ca78034f170..b30fa71c7993d 100644 --- a/compiler/rustc_target/src/spec/i686_unknown_freebsd.rs +++ b/compiler/rustc_target/src/spec/i686_unknown_freebsd.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target}; +use crate::spec::{base::freebsd, Cc, LinkerFlavor, Lld, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::freebsd_base::opts(); + let mut base = freebsd::opts(); base.cpu = "pentium4".into(); base.max_atomic_width = Some(64); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32", "-Wl,-znotext"]); diff --git a/compiler/rustc_target/src/spec/i686_unknown_haiku.rs b/compiler/rustc_target/src/spec/i686_unknown_haiku.rs index e6b72336c5cf5..406508dd7f9ef 100644 --- a/compiler/rustc_target/src/spec/i686_unknown_haiku.rs +++ b/compiler/rustc_target/src/spec/i686_unknown_haiku.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target}; +use crate::spec::{base::haiku, Cc, LinkerFlavor, Lld, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::haiku_base::opts(); + let mut base = haiku::opts(); base.cpu = "pentium4".into(); base.max_atomic_width = Some(64); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32"]); diff --git a/compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs index 73e536a7e4d93..6ca678354fde8 100644 --- a/compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target}; +use crate::spec::{base::linux_gnu, Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = linux_gnu::opts(); base.cpu = "pentium4".into(); base.max_atomic_width = Some(64); base.supported_sanitizers = SanitizerSet::ADDRESS; diff --git a/compiler/rustc_target/src/spec/i686_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/i686_unknown_linux_musl.rs index 3825082ba25e4..be2ea3e0ce293 100644 --- a/compiler/rustc_target/src/spec/i686_unknown_linux_musl.rs +++ b/compiler/rustc_target/src/spec/i686_unknown_linux_musl.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, StackProbeType, Target}; +use crate::spec::{base::linux_musl, Cc, FramePointer, LinkerFlavor, Lld, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::linux_musl_base::opts(); + let mut base = linux_musl::opts(); base.cpu = "pentium4".into(); base.max_atomic_width = Some(64); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32", "-Wl,-melf_i386"]); diff --git a/compiler/rustc_target/src/spec/i686_unknown_netbsd.rs b/compiler/rustc_target/src/spec/i686_unknown_netbsd.rs index b191996c7de0d..a838d7f6e0c00 100644 --- a/compiler/rustc_target/src/spec/i686_unknown_netbsd.rs +++ b/compiler/rustc_target/src/spec/i686_unknown_netbsd.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::spec::{base::netbsd, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; pub fn target() -> Target { - let mut base = super::netbsd_base::opts(); + let mut base = netbsd::opts(); base.cpu = "pentium4".into(); base.max_atomic_width = Some(64); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32"]); diff --git a/compiler/rustc_target/src/spec/i686_unknown_openbsd.rs b/compiler/rustc_target/src/spec/i686_unknown_openbsd.rs index 8babe55971280..92aecfbdaec84 100644 --- a/compiler/rustc_target/src/spec/i686_unknown_openbsd.rs +++ b/compiler/rustc_target/src/spec/i686_unknown_openbsd.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target}; +use crate::spec::{base::openbsd, Cc, LinkerFlavor, Lld, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::openbsd_base::opts(); + let mut base = openbsd::opts(); base.cpu = "pentium4".into(); base.max_atomic_width = Some(64); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32", "-fuse-ld=lld"]); diff --git a/compiler/rustc_target/src/spec/i686_unknown_uefi.rs b/compiler/rustc_target/src/spec/i686_unknown_uefi.rs index a2e42c5e61d54..7acceb6871e77 100644 --- a/compiler/rustc_target/src/spec/i686_unknown_uefi.rs +++ b/compiler/rustc_target/src/spec/i686_unknown_uefi.rs @@ -5,10 +5,10 @@ // The cdecl ABI is used. It differs from the stdcall or fastcall ABI. // "i686-unknown-windows" is used to get the minimal subset of windows-specific features. -use crate::spec::Target; +use crate::spec::{base::uefi_msvc, Target}; pub fn target() -> Target { - let mut base = super::uefi_msvc_base::opts(); + let mut base = uefi_msvc::opts(); base.cpu = "pentium4".into(); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/i686_uwp_windows_gnu.rs b/compiler/rustc_target/src/spec/i686_uwp_windows_gnu.rs index a3e32569827fb..adbccf032e8d4 100644 --- a/compiler/rustc_target/src/spec/i686_uwp_windows_gnu.rs +++ b/compiler/rustc_target/src/spec/i686_uwp_windows_gnu.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, Target}; +use crate::spec::{base::windows_uwp_gnu, Cc, FramePointer, LinkerFlavor, Lld, Target}; pub fn target() -> Target { - let mut base = super::windows_uwp_gnu_base::opts(); + let mut base = windows_uwp_gnu::opts(); base.cpu = "pentium4".into(); base.max_atomic_width = Some(64); base.frame_pointer = FramePointer::Always; // Required for backtraces diff --git a/compiler/rustc_target/src/spec/i686_uwp_windows_msvc.rs b/compiler/rustc_target/src/spec/i686_uwp_windows_msvc.rs index 4c657fe908ac4..4b3705c9955e5 100644 --- a/compiler/rustc_target/src/spec/i686_uwp_windows_msvc.rs +++ b/compiler/rustc_target/src/spec/i686_uwp_windows_msvc.rs @@ -1,7 +1,7 @@ -use crate::spec::Target; +use crate::spec::{base::windows_uwp_msvc, Target}; pub fn target() -> Target { - let mut base = super::windows_uwp_msvc_base::opts(); + let mut base = windows_uwp_msvc::opts(); base.cpu = "pentium4".into(); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/i686_wrs_vxworks.rs b/compiler/rustc_target/src/spec/i686_wrs_vxworks.rs index b5cfdfcebea90..c1a7c0e5e06fa 100644 --- a/compiler/rustc_target/src/spec/i686_wrs_vxworks.rs +++ b/compiler/rustc_target/src/spec/i686_wrs_vxworks.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target}; +use crate::spec::{base::vxworks, Cc, LinkerFlavor, Lld, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::vxworks_base::opts(); + let mut base = vxworks::opts(); base.cpu = "pentium4".into(); base.max_atomic_width = Some(64); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32"]); diff --git a/compiler/rustc_target/src/spec/linux_gnu_base.rs b/compiler/rustc_target/src/spec/linux_gnu_base.rs deleted file mode 100644 index 8d6b3f185122c..0000000000000 --- a/compiler/rustc_target/src/spec/linux_gnu_base.rs +++ /dev/null @@ -1,5 +0,0 @@ -use crate::spec::TargetOptions; - -pub fn opts() -> TargetOptions { - TargetOptions { env: "gnu".into(), ..super::linux_base::opts() } -} diff --git a/compiler/rustc_target/src/spec/linux_uclibc_base.rs b/compiler/rustc_target/src/spec/linux_uclibc_base.rs deleted file mode 100644 index 4ba480ffecffd..0000000000000 --- a/compiler/rustc_target/src/spec/linux_uclibc_base.rs +++ /dev/null @@ -1,5 +0,0 @@ -use crate::spec::TargetOptions; - -pub fn opts() -> TargetOptions { - TargetOptions { env: "uclibc".into(), ..super::linux_base::opts() } -} diff --git a/compiler/rustc_target/src/spec/loongarch64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/loongarch64_unknown_linux_gnu.rs index db8b9c70e6702..68c90bea7f347 100644 --- a/compiler/rustc_target/src/spec/loongarch64_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/loongarch64_unknown_linux_gnu.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -11,7 +11,7 @@ pub fn target() -> Target { features: "+f,+d".into(), llvm_abiname: "lp64d".into(), max_atomic_width: Some(64), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/loongarch64_unknown_none.rs b/compiler/rustc_target/src/spec/loongarch64_unknown_none.rs index dbc96d68eae17..1ad429a8b9bf8 100644 --- a/compiler/rustc_target/src/spec/loongarch64_unknown_none.rs +++ b/compiler/rustc_target/src/spec/loongarch64_unknown_none.rs @@ -1,5 +1,4 @@ -use super::{Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelocModel}; -use super::{Target, TargetOptions}; +use super::{Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, TargetOptions}; pub fn target() -> Target { Target { diff --git a/compiler/rustc_target/src/spec/loongarch64_unknown_none_softfloat.rs b/compiler/rustc_target/src/spec/loongarch64_unknown_none_softfloat.rs index c4d5c7bc44ccd..1499426909297 100644 --- a/compiler/rustc_target/src/spec/loongarch64_unknown_none_softfloat.rs +++ b/compiler/rustc_target/src/spec/loongarch64_unknown_none_softfloat.rs @@ -1,5 +1,6 @@ -use super::{Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelocModel}; -use super::{Target, TargetOptions}; +use crate::spec::{ + Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, TargetOptions, +}; pub fn target() -> Target { Target { diff --git a/compiler/rustc_target/src/spec/m68k_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/m68k_unknown_linux_gnu.rs index 9bcd56bed0025..806ffb3572a80 100644 --- a/compiler/rustc_target/src/spec/m68k_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/m68k_unknown_linux_gnu.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_gnu, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = linux_gnu::opts(); base.cpu = "M68020".into(); base.max_atomic_width = Some(32); diff --git a/compiler/rustc_target/src/spec/mips64_openwrt_linux_musl.rs b/compiler/rustc_target/src/spec/mips64_openwrt_linux_musl.rs index 3c6ef52c6cd70..1aa7cd19add93 100644 --- a/compiler/rustc_target/src/spec/mips64_openwrt_linux_musl.rs +++ b/compiler/rustc_target/src/spec/mips64_openwrt_linux_musl.rs @@ -1,10 +1,11 @@ /// A target tuple for OpenWrt MIPS64 targets -/// -use crate::abi::Endian; -use crate::spec::{Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_musl, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::linux_musl_base::opts(); + let mut base = linux_musl::opts(); base.cpu = "mips64r2".into(); base.features = "+mips64r2,+soft-float".into(); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/mips64_unknown_linux_gnuabi64.rs b/compiler/rustc_target/src/spec/mips64_unknown_linux_gnuabi64.rs index b9df0046b12ba..0bc447d3bdd5f 100644 --- a/compiler/rustc_target/src/spec/mips64_unknown_linux_gnuabi64.rs +++ b/compiler/rustc_target/src/spec/mips64_unknown_linux_gnuabi64.rs @@ -1,5 +1,7 @@ -use crate::abi::Endian; -use crate::spec::{Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_gnu, Target, TargetOptions}, +}; pub fn target() -> Target { Target { @@ -16,7 +18,7 @@ pub fn target() -> Target { max_atomic_width: Some(64), mcount: "_mcount".into(), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/mips64_unknown_linux_muslabi64.rs b/compiler/rustc_target/src/spec/mips64_unknown_linux_muslabi64.rs index 465e97a026c58..d0a60603a6016 100644 --- a/compiler/rustc_target/src/spec/mips64_unknown_linux_muslabi64.rs +++ b/compiler/rustc_target/src/spec/mips64_unknown_linux_muslabi64.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_musl, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::linux_musl_base::opts(); + let mut base = linux_musl::opts(); base.cpu = "mips64r2".into(); base.features = "+mips64r2".into(); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/mips64el_unknown_linux_gnuabi64.rs b/compiler/rustc_target/src/spec/mips64el_unknown_linux_gnuabi64.rs index 57ad8c47399b3..cc0e735e159d9 100644 --- a/compiler/rustc_target/src/spec/mips64el_unknown_linux_gnuabi64.rs +++ b/compiler/rustc_target/src/spec/mips64el_unknown_linux_gnuabi64.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -13,8 +13,7 @@ pub fn target() -> Target { features: "+mips64r2,+xgot".into(), max_atomic_width: Some(64), mcount: "_mcount".into(), - - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/mips64el_unknown_linux_muslabi64.rs b/compiler/rustc_target/src/spec/mips64el_unknown_linux_muslabi64.rs index 75575eb7eebde..c0a3f77a50185 100644 --- a/compiler/rustc_target/src/spec/mips64el_unknown_linux_muslabi64.rs +++ b/compiler/rustc_target/src/spec/mips64el_unknown_linux_muslabi64.rs @@ -1,7 +1,7 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_musl, Target, TargetOptions}; pub fn target() -> Target { - let mut base = super::linux_musl_base::opts(); + let mut base = linux_musl::opts(); base.cpu = "mips64r2".into(); base.features = "+mips64r2".into(); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/mips_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/mips_unknown_linux_gnu.rs index 8df8b0b4c2c7a..e2b669810dfce 100644 --- a/compiler/rustc_target/src/spec/mips_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/mips_unknown_linux_gnu.rs @@ -1,5 +1,7 @@ -use crate::abi::Endian; -use crate::spec::{Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_gnu, Target, TargetOptions}, +}; pub fn target() -> Target { Target { @@ -14,7 +16,7 @@ pub fn target() -> Target { max_atomic_width: Some(32), mcount: "_mcount".into(), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/mips_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/mips_unknown_linux_musl.rs index c2846313a9eb1..6d357600844c0 100644 --- a/compiler/rustc_target/src/spec/mips_unknown_linux_musl.rs +++ b/compiler/rustc_target/src/spec/mips_unknown_linux_musl.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_musl, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::linux_musl_base::opts(); + let mut base = linux_musl::opts(); base.cpu = "mips32r2".into(); base.features = "+mips32r2,+soft-float".into(); base.max_atomic_width = Some(32); diff --git a/compiler/rustc_target/src/spec/mips_unknown_linux_uclibc.rs b/compiler/rustc_target/src/spec/mips_unknown_linux_uclibc.rs index c59bb5fdd223d..89d0219dc0986 100644 --- a/compiler/rustc_target/src/spec/mips_unknown_linux_uclibc.rs +++ b/compiler/rustc_target/src/spec/mips_unknown_linux_uclibc.rs @@ -1,5 +1,7 @@ -use crate::abi::Endian; -use crate::spec::{Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_uclibc, Target, TargetOptions}, +}; pub fn target() -> Target { Target { @@ -14,7 +16,7 @@ pub fn target() -> Target { max_atomic_width: Some(32), mcount: "_mcount".into(), - ..super::linux_uclibc_base::opts() + ..linux_uclibc::opts() }, } } diff --git a/compiler/rustc_target/src/spec/mipsel_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/mipsel_unknown_linux_gnu.rs index 01346e71a92ff..4be7b9fc4289f 100644 --- a/compiler/rustc_target/src/spec/mipsel_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/mipsel_unknown_linux_gnu.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -13,7 +13,7 @@ pub fn target() -> Target { max_atomic_width: Some(32), mcount: "_mcount".into(), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/mipsel_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/mipsel_unknown_linux_musl.rs index 0e8f1a2c8e0ea..a99cb90100363 100644 --- a/compiler/rustc_target/src/spec/mipsel_unknown_linux_musl.rs +++ b/compiler/rustc_target/src/spec/mipsel_unknown_linux_musl.rs @@ -1,7 +1,7 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_musl, Target, TargetOptions}; pub fn target() -> Target { - let mut base = super::linux_musl_base::opts(); + let mut base = linux_musl::opts(); base.cpu = "mips32r2".into(); base.features = "+mips32r2,+soft-float".into(); base.max_atomic_width = Some(32); diff --git a/compiler/rustc_target/src/spec/mipsel_unknown_linux_uclibc.rs b/compiler/rustc_target/src/spec/mipsel_unknown_linux_uclibc.rs index 8342074586bc7..81ce477c34ea1 100644 --- a/compiler/rustc_target/src/spec/mipsel_unknown_linux_uclibc.rs +++ b/compiler/rustc_target/src/spec/mipsel_unknown_linux_uclibc.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_uclibc, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -13,7 +13,7 @@ pub fn target() -> Target { max_atomic_width: Some(32), mcount: "_mcount".into(), - ..super::linux_uclibc_base::opts() + ..linux_uclibc::opts() }, } } diff --git a/compiler/rustc_target/src/spec/mipsisa32r6_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/mipsisa32r6_unknown_linux_gnu.rs index 983a449b006a9..bd5d44d791fe9 100644 --- a/compiler/rustc_target/src/spec/mipsisa32r6_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/mipsisa32r6_unknown_linux_gnu.rs @@ -1,5 +1,7 @@ -use crate::abi::Endian; -use crate::spec::{Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_gnu, Target, TargetOptions}, +}; pub fn target() -> Target { Target { @@ -13,8 +15,7 @@ pub fn target() -> Target { features: "+mips32r6".into(), max_atomic_width: Some(32), mcount: "_mcount".into(), - - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/mipsisa32r6el_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/mipsisa32r6el_unknown_linux_gnu.rs index ec0facdfb7bfe..4b60d6ccd617a 100644 --- a/compiler/rustc_target/src/spec/mipsisa32r6el_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/mipsisa32r6el_unknown_linux_gnu.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -12,8 +12,7 @@ pub fn target() -> Target { features: "+mips32r6".into(), max_atomic_width: Some(32), mcount: "_mcount".into(), - - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/mipsisa64r6_unknown_linux_gnuabi64.rs b/compiler/rustc_target/src/spec/mipsisa64r6_unknown_linux_gnuabi64.rs index 16dd1c416f4f2..908296f25cc35 100644 --- a/compiler/rustc_target/src/spec/mipsisa64r6_unknown_linux_gnuabi64.rs +++ b/compiler/rustc_target/src/spec/mipsisa64r6_unknown_linux_gnuabi64.rs @@ -1,5 +1,7 @@ -use crate::abi::Endian; -use crate::spec::{Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_gnu, Target, TargetOptions}, +}; pub fn target() -> Target { Target { @@ -15,8 +17,7 @@ pub fn target() -> Target { features: "+mips64r6".into(), max_atomic_width: Some(64), mcount: "_mcount".into(), - - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/mipsisa64r6el_unknown_linux_gnuabi64.rs b/compiler/rustc_target/src/spec/mipsisa64r6el_unknown_linux_gnuabi64.rs index 8d0a6aa8f5145..188a5a34fe258 100644 --- a/compiler/rustc_target/src/spec/mipsisa64r6el_unknown_linux_gnuabi64.rs +++ b/compiler/rustc_target/src/spec/mipsisa64r6el_unknown_linux_gnuabi64.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -14,7 +14,7 @@ pub fn target() -> Target { max_atomic_width: Some(64), mcount: "_mcount".into(), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs index 8aa72797a0d25..278710ce8d70a 100644 --- a/compiler/rustc_target/src/spec/mod.rs +++ b/compiler/rustc_target/src/spec/mod.rs @@ -54,48 +54,15 @@ use std::{fmt, io}; use rustc_macros::HashStable_Generic; +mod base; + pub mod abi; pub mod crt_objects; -mod aix_base; -mod android_base; -mod apple_base; -pub use apple_base::deployment_target as current_apple_deployment_target; -pub use apple_base::platform as current_apple_platform; -pub use apple_base::sdk_version as current_apple_sdk_version; -mod avr_gnu_base; -pub use avr_gnu_base::ef_avr_arch; -mod bpf_base; -mod dragonfly_base; -mod freebsd_base; -mod fuchsia_base; -mod haiku_base; -mod hermit_base; -mod illumos_base; -mod l4re_base; -mod linux_base; -mod linux_gnu_base; -mod linux_musl_base; -mod linux_ohos_base; -mod linux_uclibc_base; -mod msvc_base; -mod netbsd_base; -mod nto_qnx_base; -mod openbsd_base; -mod redox_base; -mod solaris_base; -mod solid_base; -mod teeos_base; -mod thumb_base; -mod uefi_msvc_base; -mod unikraft_linux_musl_base; -mod vxworks_base; -mod wasm_base; -mod windows_gnu_base; -mod windows_gnullvm_base; -mod windows_msvc_base; -mod windows_uwp_gnu_base; -mod windows_uwp_msvc_base; +pub use base::apple::deployment_target as current_apple_deployment_target; +pub use base::apple::platform as current_apple_platform; +pub use base::apple::sdk_version as current_apple_sdk_version; +pub use base::avr_gnu::ef_avr_arch; /// Linker is called through a C/C++ compiler. #[derive(Clone, Copy, Debug, Eq, Ord, PartialEq, PartialOrd)] @@ -1256,6 +1223,7 @@ macro_rules! supported_targets { #[cfg(test)] mod tests { + #[path = "impl_tests.rs"] mod tests_impl; // Cannot put this into a separate file without duplication, make an exception. @@ -3298,3 +3266,7 @@ impl fmt::Display for TargetTriple { write!(f, "{}", self.debug_triple()) } } + +#[cfg(test)] +#[path = "tests/apple_tests.rs"] +mod tests_apple {} diff --git a/compiler/rustc_target/src/spec/powerpc64_ibm_aix.rs b/compiler/rustc_target/src/spec/powerpc64_ibm_aix.rs index 4e105a03e2871..642154d6bebf9 100644 --- a/compiler/rustc_target/src/spec/powerpc64_ibm_aix.rs +++ b/compiler/rustc_target/src/spec/powerpc64_ibm_aix.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Target}; +use crate::spec::{base::aix, Cc, LinkerFlavor, Target}; pub fn target() -> Target { - let mut base = super::aix_base::opts(); + let mut base = aix::opts(); base.max_atomic_width = Some(64); base.add_pre_link_args( LinkerFlavor::Unix(Cc::No), diff --git a/compiler/rustc_target/src/spec/powerpc64_unknown_freebsd.rs b/compiler/rustc_target/src/spec/powerpc64_unknown_freebsd.rs index e8fe55a00db07..797a3c8cd20cf 100644 --- a/compiler/rustc_target/src/spec/powerpc64_unknown_freebsd.rs +++ b/compiler/rustc_target/src/spec/powerpc64_unknown_freebsd.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::freebsd, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::freebsd_base::opts(); + let mut base = freebsd::opts(); base.cpu = "ppc64".into(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/powerpc64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/powerpc64_unknown_linux_gnu.rs index 7a0cc539f1a81..75a354cd68516 100644 --- a/compiler/rustc_target/src/spec/powerpc64_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/powerpc64_unknown_linux_gnu.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_gnu, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = linux_gnu::opts(); base.cpu = "ppc64".into(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/powerpc64_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/powerpc64_unknown_linux_musl.rs index f80b22828c1d9..a006f219c3164 100644 --- a/compiler/rustc_target/src/spec/powerpc64_unknown_linux_musl.rs +++ b/compiler/rustc_target/src/spec/powerpc64_unknown_linux_musl.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_musl, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::linux_musl_base::opts(); + let mut base = linux_musl::opts(); base.cpu = "ppc64".into(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/powerpc64_unknown_openbsd.rs b/compiler/rustc_target/src/spec/powerpc64_unknown_openbsd.rs index 3643f7b0c3746..4e278bbaea8f6 100644 --- a/compiler/rustc_target/src/spec/powerpc64_unknown_openbsd.rs +++ b/compiler/rustc_target/src/spec/powerpc64_unknown_openbsd.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::openbsd, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::openbsd_base::opts(); + let mut base = openbsd::opts(); base.cpu = "ppc64".into(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/powerpc64_wrs_vxworks.rs b/compiler/rustc_target/src/spec/powerpc64_wrs_vxworks.rs index b0472e64e134d..6c7446bdf27de 100644 --- a/compiler/rustc_target/src/spec/powerpc64_wrs_vxworks.rs +++ b/compiler/rustc_target/src/spec/powerpc64_wrs_vxworks.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::vxworks, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::vxworks_base::opts(); + let mut base = vxworks::opts(); base.cpu = "ppc64".into(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/powerpc64le_unknown_freebsd.rs b/compiler/rustc_target/src/spec/powerpc64le_unknown_freebsd.rs index 342b1cf4f4ca8..1fe3b0e20c810 100644 --- a/compiler/rustc_target/src/spec/powerpc64le_unknown_freebsd.rs +++ b/compiler/rustc_target/src/spec/powerpc64le_unknown_freebsd.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::spec::{base::freebsd, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; pub fn target() -> Target { - let mut base = super::freebsd_base::opts(); + let mut base = freebsd::opts(); base.cpu = "ppc64le".into(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/powerpc64le_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/powerpc64le_unknown_linux_gnu.rs index 815e3d2781ca2..8b5bbfed2329a 100644 --- a/compiler/rustc_target/src/spec/powerpc64le_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/powerpc64le_unknown_linux_gnu.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = linux_gnu::opts(); base.cpu = "ppc64le".into(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/powerpc64le_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/powerpc64le_unknown_linux_musl.rs index 0b9b78bcec898..bb618d6dc9d82 100644 --- a/compiler/rustc_target/src/spec/powerpc64le_unknown_linux_musl.rs +++ b/compiler/rustc_target/src/spec/powerpc64le_unknown_linux_musl.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::spec::{base::linux_musl, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; pub fn target() -> Target { - let mut base = super::linux_musl_base::opts(); + let mut base = linux_musl::opts(); base.cpu = "ppc64le".into(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/powerpc_unknown_freebsd.rs b/compiler/rustc_target/src/spec/powerpc_unknown_freebsd.rs index e036f5bdbada7..dbec346af94c0 100644 --- a/compiler/rustc_target/src/spec/powerpc_unknown_freebsd.rs +++ b/compiler/rustc_target/src/spec/powerpc_unknown_freebsd.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::freebsd, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::freebsd_base::opts(); + let mut base = freebsd::opts(); // Extra hint to linker that we are generating secure-PLT code. base.add_pre_link_args( LinkerFlavor::Gnu(Cc::Yes, Lld::No), diff --git a/compiler/rustc_target/src/spec/powerpc_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/powerpc_unknown_linux_gnu.rs index c8d6f8b9c676c..72b2df83048de 100644 --- a/compiler/rustc_target/src/spec/powerpc_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/powerpc_unknown_linux_gnu.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_gnu, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = linux_gnu::opts(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32"]); base.max_atomic_width = Some(32); base.stack_probes = StackProbeType::Inline; diff --git a/compiler/rustc_target/src/spec/powerpc_unknown_linux_gnuspe.rs b/compiler/rustc_target/src/spec/powerpc_unknown_linux_gnuspe.rs index fdaa9d366d92a..741839eb1a62d 100644 --- a/compiler/rustc_target/src/spec/powerpc_unknown_linux_gnuspe.rs +++ b/compiler/rustc_target/src/spec/powerpc_unknown_linux_gnuspe.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_gnu, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = linux_gnu::opts(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-mspe"]); base.max_atomic_width = Some(32); base.stack_probes = StackProbeType::Inline; diff --git a/compiler/rustc_target/src/spec/powerpc_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/powerpc_unknown_linux_musl.rs index 7fe708cf5304a..0b702cbdbbe5a 100644 --- a/compiler/rustc_target/src/spec/powerpc_unknown_linux_musl.rs +++ b/compiler/rustc_target/src/spec/powerpc_unknown_linux_musl.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::linux_musl, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::linux_musl_base::opts(); + let mut base = linux_musl::opts(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32"]); base.max_atomic_width = Some(32); base.stack_probes = StackProbeType::Inline; diff --git a/compiler/rustc_target/src/spec/powerpc_unknown_netbsd.rs b/compiler/rustc_target/src/spec/powerpc_unknown_netbsd.rs index 6f8875ba7b402..76e2fbe3a9b4d 100644 --- a/compiler/rustc_target/src/spec/powerpc_unknown_netbsd.rs +++ b/compiler/rustc_target/src/spec/powerpc_unknown_netbsd.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::netbsd, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::netbsd_base::opts(); + let mut base = netbsd::opts(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32"]); base.max_atomic_width = Some(32); base.stack_probes = StackProbeType::Inline; diff --git a/compiler/rustc_target/src/spec/powerpc_unknown_openbsd.rs b/compiler/rustc_target/src/spec/powerpc_unknown_openbsd.rs index 280d36698b488..94b815af6d537 100644 --- a/compiler/rustc_target/src/spec/powerpc_unknown_openbsd.rs +++ b/compiler/rustc_target/src/spec/powerpc_unknown_openbsd.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{StackProbeType, Target}; +use crate::{ + abi::Endian, + spec::{base::openbsd, StackProbeType, Target}, +}; pub fn target() -> Target { - let mut base = super::openbsd_base::opts(); + let mut base = openbsd::opts(); base.endian = Endian::Big; base.max_atomic_width = Some(32); base.stack_probes = StackProbeType::Inline; diff --git a/compiler/rustc_target/src/spec/powerpc_wrs_vxworks.rs b/compiler/rustc_target/src/spec/powerpc_wrs_vxworks.rs index 6f245e6ab62a1..3bb2b907c8248 100644 --- a/compiler/rustc_target/src/spec/powerpc_wrs_vxworks.rs +++ b/compiler/rustc_target/src/spec/powerpc_wrs_vxworks.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::vxworks, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::vxworks_base::opts(); + let mut base = vxworks::opts(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32", "--secure-plt"]); base.max_atomic_width = Some(32); base.stack_probes = StackProbeType::Inline; diff --git a/compiler/rustc_target/src/spec/powerpc_wrs_vxworks_spe.rs b/compiler/rustc_target/src/spec/powerpc_wrs_vxworks_spe.rs index 1d5a5e5c6ac6c..afb54fdf1e9d9 100644 --- a/compiler/rustc_target/src/spec/powerpc_wrs_vxworks_spe.rs +++ b/compiler/rustc_target/src/spec/powerpc_wrs_vxworks_spe.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::vxworks, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::vxworks_base::opts(); + let mut base = vxworks::opts(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-mspe", "--secure-plt"]); base.max_atomic_width = Some(32); base.stack_probes = StackProbeType::Inline; diff --git a/compiler/rustc_target/src/spec/riscv32gc_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/riscv32gc_unknown_linux_gnu.rs index bffd377bc4a19..4aa309e98f8af 100644 --- a/compiler/rustc_target/src/spec/riscv32gc_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/riscv32gc_unknown_linux_gnu.rs @@ -1,4 +1,4 @@ -use crate::spec::{CodeModel, Target, TargetOptions}; +use crate::spec::{base::linux_gnu, CodeModel, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -12,7 +12,7 @@ pub fn target() -> Target { features: "+m,+a,+f,+d,+c".into(), llvm_abiname: "ilp32d".into(), max_atomic_width: Some(32), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/riscv32gc_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/riscv32gc_unknown_linux_musl.rs index c9f3acffb77b1..69d48cfbe6ba9 100644 --- a/compiler/rustc_target/src/spec/riscv32gc_unknown_linux_musl.rs +++ b/compiler/rustc_target/src/spec/riscv32gc_unknown_linux_musl.rs @@ -1,4 +1,4 @@ -use crate::spec::{CodeModel, Target, TargetOptions}; +use crate::spec::{base::linux_musl, CodeModel, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -12,7 +12,7 @@ pub fn target() -> Target { features: "+m,+a,+f,+d,+c".into(), llvm_abiname: "ilp32d".into(), max_atomic_width: Some(32), - ..super::linux_musl_base::opts() + ..linux_musl::opts() }, } } diff --git a/compiler/rustc_target/src/spec/riscv64_linux_android.rs b/compiler/rustc_target/src/spec/riscv64_linux_android.rs index af0d685549414..8b78920171a45 100644 --- a/compiler/rustc_target/src/spec/riscv64_linux_android.rs +++ b/compiler/rustc_target/src/spec/riscv64_linux_android.rs @@ -1,4 +1,4 @@ -use crate::spec::{CodeModel, SanitizerSet, Target, TargetOptions}; +use crate::spec::{base::android, CodeModel, SanitizerSet, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -13,7 +13,7 @@ pub fn target() -> Target { llvm_abiname: "lp64d".into(), supported_sanitizers: SanitizerSet::ADDRESS, max_atomic_width: Some(64), - ..super::android_base::opts() + ..android::opts() }, } } diff --git a/compiler/rustc_target/src/spec/riscv64gc_unknown_freebsd.rs b/compiler/rustc_target/src/spec/riscv64gc_unknown_freebsd.rs index 8281bac10f88f..796916293cd65 100644 --- a/compiler/rustc_target/src/spec/riscv64gc_unknown_freebsd.rs +++ b/compiler/rustc_target/src/spec/riscv64gc_unknown_freebsd.rs @@ -1,4 +1,4 @@ -use crate::spec::{CodeModel, Target, TargetOptions}; +use crate::spec::{base::freebsd, CodeModel, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -12,7 +12,7 @@ pub fn target() -> Target { features: "+m,+a,+f,+d,+c".into(), llvm_abiname: "lp64d".into(), max_atomic_width: Some(64), - ..super::freebsd_base::opts() + ..freebsd::opts() }, } } diff --git a/compiler/rustc_target/src/spec/riscv64gc_unknown_fuchsia.rs b/compiler/rustc_target/src/spec/riscv64gc_unknown_fuchsia.rs index 0585ed76fe815..e37269f3625b6 100644 --- a/compiler/rustc_target/src/spec/riscv64gc_unknown_fuchsia.rs +++ b/compiler/rustc_target/src/spec/riscv64gc_unknown_fuchsia.rs @@ -1,4 +1,4 @@ -use crate::spec::{CodeModel, SanitizerSet, Target, TargetOptions}; +use crate::spec::{base::fuchsia, CodeModel, SanitizerSet, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -13,7 +13,7 @@ pub fn target() -> Target { llvm_abiname: "lp64d".into(), max_atomic_width: Some(64), supported_sanitizers: SanitizerSet::SHADOWCALLSTACK, - ..super::fuchsia_base::opts() + ..fuchsia::opts() }, } } diff --git a/compiler/rustc_target/src/spec/riscv64gc_unknown_hermit.rs b/compiler/rustc_target/src/spec/riscv64gc_unknown_hermit.rs index 1f6a34c0cacc8..1ea26edb6d36e 100644 --- a/compiler/rustc_target/src/spec/riscv64gc_unknown_hermit.rs +++ b/compiler/rustc_target/src/spec/riscv64gc_unknown_hermit.rs @@ -1,4 +1,4 @@ -use crate::spec::{CodeModel, RelocModel, Target, TargetOptions, TlsModel}; +use crate::spec::{base::hermit, CodeModel, RelocModel, Target, TargetOptions, TlsModel}; pub fn target() -> Target { Target { @@ -14,7 +14,7 @@ pub fn target() -> Target { tls_model: TlsModel::LocalExec, max_atomic_width: Some(64), llvm_abiname: "lp64d".into(), - ..super::hermit_base::opts() + ..hermit::opts() }, } } diff --git a/compiler/rustc_target/src/spec/riscv64gc_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/riscv64gc_unknown_linux_gnu.rs index 90dccb28063dc..bf3db9f950fb3 100644 --- a/compiler/rustc_target/src/spec/riscv64gc_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/riscv64gc_unknown_linux_gnu.rs @@ -1,4 +1,4 @@ -use crate::spec::{CodeModel, Target, TargetOptions}; +use crate::spec::{base::linux_gnu, CodeModel, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -12,7 +12,7 @@ pub fn target() -> Target { features: "+m,+a,+f,+d,+c".into(), llvm_abiname: "lp64d".into(), max_atomic_width: Some(64), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/riscv64gc_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/riscv64gc_unknown_linux_musl.rs index 1a56c78e68524..bfe567a9e08ce 100644 --- a/compiler/rustc_target/src/spec/riscv64gc_unknown_linux_musl.rs +++ b/compiler/rustc_target/src/spec/riscv64gc_unknown_linux_musl.rs @@ -1,4 +1,4 @@ -use crate::spec::{CodeModel, Target, TargetOptions}; +use crate::spec::{base::linux_musl, CodeModel, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -12,7 +12,7 @@ pub fn target() -> Target { features: "+m,+a,+f,+d,+c".into(), llvm_abiname: "lp64d".into(), max_atomic_width: Some(64), - ..super::linux_musl_base::opts() + ..linux_musl::opts() }, } } diff --git a/compiler/rustc_target/src/spec/riscv64gc_unknown_netbsd.rs b/compiler/rustc_target/src/spec/riscv64gc_unknown_netbsd.rs index a89bd363a47eb..6fba3b06f7a41 100644 --- a/compiler/rustc_target/src/spec/riscv64gc_unknown_netbsd.rs +++ b/compiler/rustc_target/src/spec/riscv64gc_unknown_netbsd.rs @@ -1,4 +1,4 @@ -use crate::spec::{CodeModel, Target, TargetOptions}; +use crate::spec::{base::netbsd, CodeModel, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -13,7 +13,7 @@ pub fn target() -> Target { llvm_abiname: "lp64d".into(), max_atomic_width: Some(64), mcount: "__mcount".into(), - ..super::netbsd_base::opts() + ..netbsd::opts() }, } } diff --git a/compiler/rustc_target/src/spec/riscv64gc_unknown_none_elf.rs b/compiler/rustc_target/src/spec/riscv64gc_unknown_none_elf.rs index ab3c14e3fe73d..a1265cdb7bf70 100644 --- a/compiler/rustc_target/src/spec/riscv64gc_unknown_none_elf.rs +++ b/compiler/rustc_target/src/spec/riscv64gc_unknown_none_elf.rs @@ -1,5 +1,6 @@ -use crate::spec::{Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy}; -use crate::spec::{RelocModel, Target, TargetOptions}; +use crate::spec::{ + Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, TargetOptions, +}; use super::SanitizerSet; diff --git a/compiler/rustc_target/src/spec/riscv64gc_unknown_openbsd.rs b/compiler/rustc_target/src/spec/riscv64gc_unknown_openbsd.rs index ade9d77624bdb..098409505185f 100644 --- a/compiler/rustc_target/src/spec/riscv64gc_unknown_openbsd.rs +++ b/compiler/rustc_target/src/spec/riscv64gc_unknown_openbsd.rs @@ -1,4 +1,4 @@ -use crate::spec::{CodeModel, Target, TargetOptions}; +use crate::spec::{base::openbsd, CodeModel, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -12,7 +12,7 @@ pub fn target() -> Target { features: "+m,+a,+f,+d,+c".into(), llvm_abiname: "lp64d".into(), max_atomic_width: Some(64), - ..super::openbsd_base::opts() + ..openbsd::opts() }, } } diff --git a/compiler/rustc_target/src/spec/riscv64imac_unknown_none_elf.rs b/compiler/rustc_target/src/spec/riscv64imac_unknown_none_elf.rs index 0f1821c9985b0..977210e34fbbc 100644 --- a/compiler/rustc_target/src/spec/riscv64imac_unknown_none_elf.rs +++ b/compiler/rustc_target/src/spec/riscv64imac_unknown_none_elf.rs @@ -1,5 +1,7 @@ -use crate::spec::{Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy}; -use crate::spec::{RelocModel, SanitizerSet, Target, TargetOptions}; +use crate::spec::{ + Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelocModel, SanitizerSet, Target, + TargetOptions, +}; pub fn target() -> Target { Target { diff --git a/compiler/rustc_target/src/spec/s390x_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/s390x_unknown_linux_gnu.rs index f2c722b9a89da..491f525077cec 100644 --- a/compiler/rustc_target/src/spec/s390x_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/s390x_unknown_linux_gnu.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{SanitizerSet, StackProbeType, Target}; +use crate::{ + abi::Endian, + spec::{base::linux_gnu, SanitizerSet, StackProbeType, Target}, +}; pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = linux_gnu::opts(); base.endian = Endian::Big; // z10 is the oldest CPU supported by LLVM base.cpu = "z10".into(); diff --git a/compiler/rustc_target/src/spec/s390x_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/s390x_unknown_linux_musl.rs index 8fe9d023c527e..e54fe03e181f6 100644 --- a/compiler/rustc_target/src/spec/s390x_unknown_linux_musl.rs +++ b/compiler/rustc_target/src/spec/s390x_unknown_linux_musl.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{SanitizerSet, StackProbeType, Target}; +use crate::{ + abi::Endian, + spec::{base::linux_musl, SanitizerSet, StackProbeType, Target}, +}; pub fn target() -> Target { - let mut base = super::linux_musl_base::opts(); + let mut base = linux_musl::opts(); base.endian = Endian::Big; // z10 is the oldest CPU supported by LLVM base.cpu = "z10".into(); diff --git a/compiler/rustc_target/src/spec/sparc64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/sparc64_unknown_linux_gnu.rs index 39efd8f305cdd..0665a5a2fdf8a 100644 --- a/compiler/rustc_target/src/spec/sparc64_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/sparc64_unknown_linux_gnu.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::Target; +use crate::{ + abi::Endian, + spec::{base::linux_gnu, Target}, +}; pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = linux_gnu::opts(); base.endian = Endian::Big; base.cpu = "v9".into(); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/sparc64_unknown_netbsd.rs b/compiler/rustc_target/src/spec/sparc64_unknown_netbsd.rs index 38ab066b0879f..d3c2b43edae13 100644 --- a/compiler/rustc_target/src/spec/sparc64_unknown_netbsd.rs +++ b/compiler/rustc_target/src/spec/sparc64_unknown_netbsd.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{base::netbsd, Cc, LinkerFlavor, Lld, Target, TargetOptions}, +}; pub fn target() -> Target { - let mut base = super::netbsd_base::opts(); + let mut base = netbsd::opts(); base.cpu = "v9".into(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/sparc64_unknown_openbsd.rs b/compiler/rustc_target/src/spec/sparc64_unknown_openbsd.rs index 06a5f782a6dfb..4dce0aa5f2b6b 100644 --- a/compiler/rustc_target/src/spec/sparc64_unknown_openbsd.rs +++ b/compiler/rustc_target/src/spec/sparc64_unknown_openbsd.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, Target}; +use crate::{ + abi::Endian, + spec::{base::openbsd, Cc, LinkerFlavor, Lld, Target}, +}; pub fn target() -> Target { - let mut base = super::openbsd_base::opts(); + let mut base = openbsd::opts(); base.endian = Endian::Big; base.cpu = "v9".into(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); diff --git a/compiler/rustc_target/src/spec/sparc_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/sparc_unknown_linux_gnu.rs index b10e6264b73c3..dffe69e31a840 100644 --- a/compiler/rustc_target/src/spec/sparc_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/sparc_unknown_linux_gnu.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, Target}; +use crate::{ + abi::Endian, + spec::{base::linux_gnu, Cc, LinkerFlavor, Lld, Target}, +}; pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = linux_gnu::opts(); base.endian = Endian::Big; base.cpu = "v9".into(); base.max_atomic_width = Some(32); diff --git a/compiler/rustc_target/src/spec/sparc_unknown_none_elf.rs b/compiler/rustc_target/src/spec/sparc_unknown_none_elf.rs index 7e908a0f36552..adbce9725a8ef 100644 --- a/compiler/rustc_target/src/spec/sparc_unknown_none_elf.rs +++ b/compiler/rustc_target/src/spec/sparc_unknown_none_elf.rs @@ -1,5 +1,7 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, TargetOptions}; +use crate::{ + abi::Endian, + spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, Target, TargetOptions}, +}; pub fn target() -> Target { let options = TargetOptions { diff --git a/compiler/rustc_target/src/spec/sparcv9_sun_solaris.rs b/compiler/rustc_target/src/spec/sparcv9_sun_solaris.rs index 4d2bc98ab7831..5c932e9c04d75 100644 --- a/compiler/rustc_target/src/spec/sparcv9_sun_solaris.rs +++ b/compiler/rustc_target/src/spec/sparcv9_sun_solaris.rs @@ -1,8 +1,10 @@ -use crate::abi::Endian; -use crate::spec::{Cc, LinkerFlavor, Target}; +use crate::{ + abi::Endian, + spec::{base::solaris, Cc, LinkerFlavor, Target}, +}; pub fn target() -> Target { - let mut base = super::solaris_base::opts(); + let mut base = solaris::opts(); base.endian = Endian::Big; base.add_pre_link_args(LinkerFlavor::Unix(Cc::Yes), &["-m64"]); // llvm calls this "v9" diff --git a/compiler/rustc_target/src/spec/abi/tests.rs b/compiler/rustc_target/src/spec/tests/abi_tests.rs similarity index 100% rename from compiler/rustc_target/src/spec/abi/tests.rs rename to compiler/rustc_target/src/spec/tests/abi_tests.rs diff --git a/compiler/rustc_target/src/spec/apple/tests.rs b/compiler/rustc_target/src/spec/tests/apple_tests.rs similarity index 54% rename from compiler/rustc_target/src/spec/apple/tests.rs rename to compiler/rustc_target/src/spec/tests/apple_tests.rs index 3b23ddadcc47c..4f66b8e856ff8 100644 --- a/compiler/rustc_target/src/spec/apple/tests.rs +++ b/compiler/rustc_target/src/spec/tests/apple_tests.rs @@ -1,17 +1,12 @@ -use crate::spec::{ - aarch64_apple_darwin, aarch64_apple_ios_sim, aarch64_apple_watchos_sim, i686_apple_darwin, - x86_64_apple_darwin, x86_64_apple_ios, x86_64_apple_tvos, x86_64_apple_watchos_sim, -}; - #[test] fn simulator_targets_set_abi() { let all_sim_targets = [ - x86_64_apple_ios::target(), - x86_64_apple_tvos::target(), - x86_64_apple_watchos_sim::target(), - aarch64_apple_ios_sim::target(), + super::x86_64_apple_ios::target(), + super::x86_64_apple_tvos::target(), + super::x86_64_apple_watchos_sim::target(), + super::aarch64_apple_ios_sim::target(), // Note: There is currently no ARM64 tvOS simulator target - aarch64_apple_watchos_sim::target(), + super::aarch64_apple_watchos_sim::target(), ]; for target in all_sim_targets { @@ -22,9 +17,9 @@ fn simulator_targets_set_abi() { #[test] fn macos_link_environment_unmodified() { let all_macos_targets = [ - aarch64_apple_darwin::target(), - i686_apple_darwin::target(), - x86_64_apple_darwin::target(), + super::aarch64_apple_darwin::target(), + super::i686_apple_darwin::target(), + super::x86_64_apple_darwin::target(), ]; for target in all_macos_targets { diff --git a/compiler/rustc_target/src/spec/tests/tests_impl.rs b/compiler/rustc_target/src/spec/tests/impl_tests.rs similarity index 100% rename from compiler/rustc_target/src/spec/tests/tests_impl.rs rename to compiler/rustc_target/src/spec/tests/impl_tests.rs diff --git a/compiler/rustc_target/src/spec/thumbv4t_none_eabi.rs b/compiler/rustc_target/src/spec/thumbv4t_none_eabi.rs index 88a76f49acd6c..198b145b7a384 100644 --- a/compiler/rustc_target/src/spec/thumbv4t_none_eabi.rs +++ b/compiler/rustc_target/src/spec/thumbv4t_none_eabi.rs @@ -9,8 +9,9 @@ //! The default link script is very likely wrong, so you should use //! `-Clink-arg=-Tmy_script.ld` to override that with a correct linker script. -use crate::spec::{cvs, FramePointer}; -use crate::spec::{PanicStrategy, RelocModel, Target, TargetOptions}; +use crate::spec::{ + base::thumb, cvs, FramePointer, PanicStrategy, RelocModel, Target, TargetOptions, +}; pub fn target() -> Target { Target { @@ -53,7 +54,7 @@ pub fn target() -> Target { atomic_cas: false, has_thumb_interworking: true, - ..super::thumb_base::opts() + ..thumb::opts() }, } } diff --git a/compiler/rustc_target/src/spec/thumbv5te_none_eabi.rs b/compiler/rustc_target/src/spec/thumbv5te_none_eabi.rs index 021b0e0eb6228..0edc6552b1c6c 100644 --- a/compiler/rustc_target/src/spec/thumbv5te_none_eabi.rs +++ b/compiler/rustc_target/src/spec/thumbv5te_none_eabi.rs @@ -1,6 +1,6 @@ //! Targets the ARMv5TE, with code as `t32` code by default. -use crate::spec::{cvs, FramePointer, Target, TargetOptions}; +use crate::spec::{base::thumb, cvs, FramePointer, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -35,7 +35,7 @@ pub fn target() -> Target { atomic_cas: false, has_thumb_interworking: true, - ..super::thumb_base::opts() + ..thumb::opts() }, } } diff --git a/compiler/rustc_target/src/spec/thumbv6m_none_eabi.rs b/compiler/rustc_target/src/spec/thumbv6m_none_eabi.rs index c9bb0112f0e3d..b0395e591bbc5 100644 --- a/compiler/rustc_target/src/spec/thumbv6m_none_eabi.rs +++ b/compiler/rustc_target/src/spec/thumbv6m_none_eabi.rs @@ -1,6 +1,6 @@ // Targets the Cortex-M0, Cortex-M0+ and Cortex-M1 processors (ARMv6-M architecture) -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::thumb, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -19,7 +19,7 @@ pub fn target() -> Target { // There are no atomic CAS instructions available in the instruction set of the ARMv6-M // architecture atomic_cas: false, - ..super::thumb_base::opts() + ..thumb::opts() }, } } diff --git a/compiler/rustc_target/src/spec/thumbv7a_pc_windows_msvc.rs b/compiler/rustc_target/src/spec/thumbv7a_pc_windows_msvc.rs index f1be274f067c2..ebf0455e6d19d 100644 --- a/compiler/rustc_target/src/spec/thumbv7a_pc_windows_msvc.rs +++ b/compiler/rustc_target/src/spec/thumbv7a_pc_windows_msvc.rs @@ -1,7 +1,7 @@ -use crate::spec::{LinkerFlavor, Lld, PanicStrategy, Target, TargetOptions}; +use crate::spec::{base::windows_msvc, LinkerFlavor, Lld, PanicStrategy, Target, TargetOptions}; pub fn target() -> Target { - let mut base = super::windows_msvc_base::opts(); + let mut base = windows_msvc::opts(); // Prevent error LNK2013: BRANCH24(T) fixup overflow // The LBR optimization tries to eliminate branch islands, // but if the displacement is larger than can fit diff --git a/compiler/rustc_target/src/spec/thumbv7a_uwp_windows_msvc.rs b/compiler/rustc_target/src/spec/thumbv7a_uwp_windows_msvc.rs index 65c2f5a704b76..4765fbc91796f 100644 --- a/compiler/rustc_target/src/spec/thumbv7a_uwp_windows_msvc.rs +++ b/compiler/rustc_target/src/spec/thumbv7a_uwp_windows_msvc.rs @@ -1,4 +1,4 @@ -use crate::spec::{PanicStrategy, Target, TargetOptions}; +use crate::spec::{base::windows_uwp_msvc, PanicStrategy, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -12,7 +12,7 @@ pub fn target() -> Target { // FIXME(jordanrh): use PanicStrategy::Unwind when SEH is // implemented for windows/arm in LLVM panic_strategy: PanicStrategy::Abort, - ..super::windows_uwp_msvc_base::opts() + ..windows_uwp_msvc::opts() }, } } diff --git a/compiler/rustc_target/src/spec/thumbv7em_none_eabi.rs b/compiler/rustc_target/src/spec/thumbv7em_none_eabi.rs index 000e5f2d3c6ba..d94fa4db292a4 100644 --- a/compiler/rustc_target/src/spec/thumbv7em_none_eabi.rs +++ b/compiler/rustc_target/src/spec/thumbv7em_none_eabi.rs @@ -9,7 +9,7 @@ // To opt-in to hardware accelerated floating point operations, you can use, for example, // `-C target-feature=+vfp4` or `-C target-cpu=cortex-m4`. -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::thumb, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -18,10 +18,6 @@ pub fn target() -> Target { data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), arch: "arm".into(), - options: TargetOptions { - abi: "eabi".into(), - max_atomic_width: Some(32), - ..super::thumb_base::opts() - }, + options: TargetOptions { abi: "eabi".into(), max_atomic_width: Some(32), ..thumb::opts() }, } } diff --git a/compiler/rustc_target/src/spec/thumbv7em_none_eabihf.rs b/compiler/rustc_target/src/spec/thumbv7em_none_eabihf.rs index 39a72564e49a2..5b824fcad1576 100644 --- a/compiler/rustc_target/src/spec/thumbv7em_none_eabihf.rs +++ b/compiler/rustc_target/src/spec/thumbv7em_none_eabihf.rs @@ -8,7 +8,7 @@ // // To opt into double precision hardware support, use the `-C target-feature=+fp64` flag. -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::thumb, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -30,7 +30,7 @@ pub fn target() -> Target { // ARMv7-M Architecture Reference Manual - A2.5 The optional floating-point extension features: "+vfp4,-d32,-fp64".into(), max_atomic_width: Some(32), - ..super::thumb_base::opts() + ..thumb::opts() }, } } diff --git a/compiler/rustc_target/src/spec/thumbv7m_none_eabi.rs b/compiler/rustc_target/src/spec/thumbv7m_none_eabi.rs index ab25cde66c7c4..246caf931074e 100644 --- a/compiler/rustc_target/src/spec/thumbv7m_none_eabi.rs +++ b/compiler/rustc_target/src/spec/thumbv7m_none_eabi.rs @@ -1,6 +1,6 @@ // Targets the Cortex-M3 processor (ARMv7-M) -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::thumb, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -9,10 +9,6 @@ pub fn target() -> Target { data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), arch: "arm".into(), - options: TargetOptions { - abi: "eabi".into(), - max_atomic_width: Some(32), - ..super::thumb_base::opts() - }, + options: TargetOptions { abi: "eabi".into(), max_atomic_width: Some(32), ..thumb::opts() }, } } diff --git a/compiler/rustc_target/src/spec/thumbv7neon_linux_androideabi.rs b/compiler/rustc_target/src/spec/thumbv7neon_linux_androideabi.rs index 8d80fcd5fe579..9540d78532cc4 100644 --- a/compiler/rustc_target/src/spec/thumbv7neon_linux_androideabi.rs +++ b/compiler/rustc_target/src/spec/thumbv7neon_linux_androideabi.rs @@ -1,4 +1,4 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, Target, TargetOptions}; +use crate::spec::{base::android, Cc, LinkerFlavor, Lld, Target, TargetOptions}; // This target if is for the Android v7a ABI in thumb mode with // NEON unconditionally enabled and, therefore, with 32 FPU registers @@ -9,7 +9,7 @@ use crate::spec::{Cc, LinkerFlavor, Lld, Target, TargetOptions}; // for target ABI requirements. pub fn target() -> Target { - let mut base = super::android_base::opts(); + let mut base = android::opts(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-march=armv7-a"]); Target { llvm_target: "armv7-none-linux-android".into(), diff --git a/compiler/rustc_target/src/spec/thumbv7neon_unknown_linux_gnueabihf.rs b/compiler/rustc_target/src/spec/thumbv7neon_unknown_linux_gnueabihf.rs index 28c81340ad899..4747ab5c1b299 100644 --- a/compiler/rustc_target/src/spec/thumbv7neon_unknown_linux_gnueabihf.rs +++ b/compiler/rustc_target/src/spec/thumbv7neon_unknown_linux_gnueabihf.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_gnu, Target, TargetOptions}; // This target is for glibc Linux on ARMv7 with thumb mode enabled // (for consistency with Android and Debian-based distributions) @@ -17,7 +17,7 @@ pub fn target() -> Target { // Info about features at https://wiki.debian.org/ArmHardFloatPort features: "+v7,+thumb-mode,+thumb2,+vfp3,+neon".into(), max_atomic_width: Some(64), - ..super::linux_gnu_base::opts() + ..linux_gnu::opts() }, } } diff --git a/compiler/rustc_target/src/spec/thumbv7neon_unknown_linux_musleabihf.rs b/compiler/rustc_target/src/spec/thumbv7neon_unknown_linux_musleabihf.rs index 2c375ab22d795..a68c79a2c52d1 100644 --- a/compiler/rustc_target/src/spec/thumbv7neon_unknown_linux_musleabihf.rs +++ b/compiler/rustc_target/src/spec/thumbv7neon_unknown_linux_musleabihf.rs @@ -1,4 +1,4 @@ -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::linux_musl, Target, TargetOptions}; // This target is for musl Linux on ARMv7 with thumb mode enabled // (for consistency with Android and Debian-based distributions) @@ -23,7 +23,7 @@ pub fn target() -> Target { features: "+v7,+thumb-mode,+thumb2,+vfp3,+neon".into(), max_atomic_width: Some(64), mcount: "\u{1}mcount".into(), - ..super::linux_musl_base::opts() + ..linux_musl::opts() }, } } diff --git a/compiler/rustc_target/src/spec/thumbv8m_base_none_eabi.rs b/compiler/rustc_target/src/spec/thumbv8m_base_none_eabi.rs index 756b1834c827b..3fd0ba4dede11 100644 --- a/compiler/rustc_target/src/spec/thumbv8m_base_none_eabi.rs +++ b/compiler/rustc_target/src/spec/thumbv8m_base_none_eabi.rs @@ -1,6 +1,6 @@ // Targets the Cortex-M23 processor (Baseline ARMv8-M) -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::thumb, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -15,7 +15,7 @@ pub fn target() -> Target { // with +strict-align. features: "+strict-align".into(), max_atomic_width: Some(32), - ..super::thumb_base::opts() + ..thumb::opts() }, } } diff --git a/compiler/rustc_target/src/spec/thumbv8m_main_none_eabi.rs b/compiler/rustc_target/src/spec/thumbv8m_main_none_eabi.rs index 4b62685465497..f0235053e89de 100644 --- a/compiler/rustc_target/src/spec/thumbv8m_main_none_eabi.rs +++ b/compiler/rustc_target/src/spec/thumbv8m_main_none_eabi.rs @@ -1,7 +1,7 @@ // Targets the Cortex-M33 processor (Armv8-M Mainline architecture profile), // without the Floating Point extension. -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::thumb, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -10,10 +10,6 @@ pub fn target() -> Target { data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".into(), arch: "arm".into(), - options: TargetOptions { - abi: "eabi".into(), - max_atomic_width: Some(32), - ..super::thumb_base::opts() - }, + options: TargetOptions { abi: "eabi".into(), max_atomic_width: Some(32), ..thumb::opts() }, } } diff --git a/compiler/rustc_target/src/spec/thumbv8m_main_none_eabihf.rs b/compiler/rustc_target/src/spec/thumbv8m_main_none_eabihf.rs index 86c25f9e4b993..0eaa836892f31 100644 --- a/compiler/rustc_target/src/spec/thumbv8m_main_none_eabihf.rs +++ b/compiler/rustc_target/src/spec/thumbv8m_main_none_eabihf.rs @@ -1,7 +1,7 @@ // Targets the Cortex-M33 processor (Armv8-M Mainline architecture profile), // with the Floating Point extension. -use crate::spec::{Target, TargetOptions}; +use crate::spec::{base::thumb, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -19,7 +19,7 @@ pub fn target() -> Target { // These parameters map to the following LLVM features. features: "+fp-armv8,-fp64,-d32".into(), max_atomic_width: Some(32), - ..super::thumb_base::opts() + ..thumb::opts() }, } } diff --git a/compiler/rustc_target/src/spec/wasm32_unknown_emscripten.rs b/compiler/rustc_target/src/spec/wasm32_unknown_emscripten.rs index 6f77ef98c015d..f78c78c97fb2e 100644 --- a/compiler/rustc_target/src/spec/wasm32_unknown_emscripten.rs +++ b/compiler/rustc_target/src/spec/wasm32_unknown_emscripten.rs @@ -1,5 +1,6 @@ -use super::{cvs, wasm_base}; -use super::{LinkArgs, LinkerFlavor, PanicStrategy, RelocModel, Target, TargetOptions}; +use crate::spec::{ + base::wasm, cvs, LinkArgs, LinkerFlavor, PanicStrategy, RelocModel, Target, TargetOptions, +}; pub fn target() -> Target { // Reset flags for non-Em flavors back to empty to satisfy sanity checking tests. @@ -22,7 +23,7 @@ pub fn target() -> Target { panic_strategy: PanicStrategy::Unwind, no_default_libraries: false, families: cvs!["unix", "wasm"], - ..wasm_base::options() + ..wasm::options() }; Target { llvm_target: "wasm32-unknown-emscripten".into(), diff --git a/compiler/rustc_target/src/spec/wasm32_unknown_unknown.rs b/compiler/rustc_target/src/spec/wasm32_unknown_unknown.rs index 06529c2e4039d..4c54a51fb5040 100644 --- a/compiler/rustc_target/src/spec/wasm32_unknown_unknown.rs +++ b/compiler/rustc_target/src/spec/wasm32_unknown_unknown.rs @@ -10,11 +10,10 @@ //! This target is more or less managed by the Rust and WebAssembly Working //! Group nowadays at . -use super::{wasm_base, Cc, LinkerFlavor, Target}; -use crate::spec::abi::Abi; +use crate::spec::{abi::Abi, base::wasm, Cc, LinkerFlavor, Target}; pub fn target() -> Target { - let mut options = wasm_base::options(); + let mut options = wasm::options(); options.os = "unknown".into(); // This is a default for backwards-compatibility with the original diff --git a/compiler/rustc_target/src/spec/wasm32_wasi.rs b/compiler/rustc_target/src/spec/wasm32_wasi.rs index a0476d542e642..2fa61385fa747 100644 --- a/compiler/rustc_target/src/spec/wasm32_wasi.rs +++ b/compiler/rustc_target/src/spec/wasm32_wasi.rs @@ -73,10 +73,10 @@ //! you know what you're getting in to! use super::crt_objects::{self, LinkSelfContainedDefault}; -use super::{wasm_base, Cc, LinkerFlavor, Target}; +use super::{base::wasm, Cc, LinkerFlavor, Target}; pub fn target() -> Target { - let mut options = wasm_base::options(); + let mut options = wasm::options(); options.os = "wasi".into(); options.add_pre_link_args(LinkerFlavor::WasmLld(Cc::Yes), &["--target=wasm32-wasi"]); diff --git a/compiler/rustc_target/src/spec/wasm32_wasi_preview1_threads.rs b/compiler/rustc_target/src/spec/wasm32_wasi_preview1_threads.rs index c567155fee653..2e7e628032615 100644 --- a/compiler/rustc_target/src/spec/wasm32_wasi_preview1_threads.rs +++ b/compiler/rustc_target/src/spec/wasm32_wasi_preview1_threads.rs @@ -72,11 +72,14 @@ //! best we can with this target. Don't start relying on too much here unless //! you know what you're getting in to! -use super::crt_objects::{self, LinkSelfContainedDefault}; -use super::{wasm_base, Cc, LinkerFlavor, Target}; +use super::{ + base::wasm, + crt_objects::{self, LinkSelfContainedDefault}, + Cc, LinkerFlavor, Target, +}; pub fn target() -> Target { - let mut options = wasm_base::options(); + let mut options = wasm::options(); options.os = "wasi".into(); diff --git a/compiler/rustc_target/src/spec/wasm64_unknown_unknown.rs b/compiler/rustc_target/src/spec/wasm64_unknown_unknown.rs index 3fda398d24c85..8c7405934ef64 100644 --- a/compiler/rustc_target/src/spec/wasm64_unknown_unknown.rs +++ b/compiler/rustc_target/src/spec/wasm64_unknown_unknown.rs @@ -7,10 +7,10 @@ //! the standard library is available, most of it returns an error immediately //! (e.g. trying to create a TCP stream or something like that). -use super::{wasm_base, Cc, LinkerFlavor, Target}; +use super::{base::wasm, Cc, LinkerFlavor, Target}; pub fn target() -> Target { - let mut options = wasm_base::options(); + let mut options = wasm::options(); options.os = "unknown".into(); options.add_pre_link_args( diff --git a/compiler/rustc_target/src/spec/x86_64_apple_darwin.rs b/compiler/rustc_target/src/spec/x86_64_apple_darwin.rs index e90bda9c9a871..5ae2b53145608 100644 --- a/compiler/rustc_target/src/spec/x86_64_apple_darwin.rs +++ b/compiler/rustc_target/src/spec/x86_64_apple_darwin.rs @@ -1,6 +1,7 @@ -use super::apple_base::{macos_llvm_target, opts, Arch}; -use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet}; -use crate::spec::{StackProbeType, Target, TargetOptions}; +use crate::spec::{ + base::apple::{macos_llvm_target, opts, Arch}, + Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target, TargetOptions, +}; pub fn target() -> Target { let arch = Arch::X86_64; diff --git a/compiler/rustc_target/src/spec/x86_64_apple_ios.rs b/compiler/rustc_target/src/spec/x86_64_apple_ios.rs index 061b6a96fc888..4e04deaaac0e2 100644 --- a/compiler/rustc_target/src/spec/x86_64_apple_ios.rs +++ b/compiler/rustc_target/src/spec/x86_64_apple_ios.rs @@ -1,5 +1,7 @@ -use super::apple_base::{ios_sim_llvm_target, opts, Arch}; -use crate::spec::{SanitizerSet, StackProbeType, Target, TargetOptions}; +use crate::spec::{ + base::apple::{ios_sim_llvm_target, opts, Arch}, + SanitizerSet, StackProbeType, Target, TargetOptions, +}; pub fn target() -> Target { let arch = Arch::X86_64_sim; diff --git a/compiler/rustc_target/src/spec/x86_64_apple_ios_macabi.rs b/compiler/rustc_target/src/spec/x86_64_apple_ios_macabi.rs index fd1926f29456b..18eda042e8388 100644 --- a/compiler/rustc_target/src/spec/x86_64_apple_ios_macabi.rs +++ b/compiler/rustc_target/src/spec/x86_64_apple_ios_macabi.rs @@ -1,5 +1,7 @@ -use super::apple_base::{opts, Arch}; -use crate::spec::{Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target, TargetOptions}; +use crate::spec::{ + base::apple::{opts, Arch}, + Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target, TargetOptions, +}; pub fn target() -> Target { let llvm_target = "x86_64-apple-ios14.0-macabi"; diff --git a/compiler/rustc_target/src/spec/x86_64_apple_tvos.rs b/compiler/rustc_target/src/spec/x86_64_apple_tvos.rs index 2ec4d9569e3ea..7696ff655dc32 100644 --- a/compiler/rustc_target/src/spec/x86_64_apple_tvos.rs +++ b/compiler/rustc_target/src/spec/x86_64_apple_tvos.rs @@ -1,5 +1,7 @@ -use super::apple_base::{opts, tvos_sim_llvm_target, Arch}; -use crate::spec::{StackProbeType, Target, TargetOptions}; +use crate::spec::{ + base::apple::{opts, tvos_sim_llvm_target, Arch}, + StackProbeType, Target, TargetOptions, +}; pub fn target() -> Target { let arch = Arch::X86_64_sim; diff --git a/compiler/rustc_target/src/spec/x86_64_apple_watchos_sim.rs b/compiler/rustc_target/src/spec/x86_64_apple_watchos_sim.rs index 5fcc00a86ff95..c0eb928021e61 100644 --- a/compiler/rustc_target/src/spec/x86_64_apple_watchos_sim.rs +++ b/compiler/rustc_target/src/spec/x86_64_apple_watchos_sim.rs @@ -1,5 +1,7 @@ -use super::apple_base::{opts, watchos_sim_llvm_target, Arch}; -use crate::spec::{StackProbeType, Target, TargetOptions}; +use crate::spec::{ + base::apple::{opts, watchos_sim_llvm_target, Arch}, + StackProbeType, Target, TargetOptions, +}; pub fn target() -> Target { let arch = Arch::X86_64_sim; diff --git a/compiler/rustc_target/src/spec/x86_64_fortanix_unknown_sgx.rs b/compiler/rustc_target/src/spec/x86_64_fortanix_unknown_sgx.rs index a7ed74f47212f..de58ef3538793 100644 --- a/compiler/rustc_target/src/spec/x86_64_fortanix_unknown_sgx.rs +++ b/compiler/rustc_target/src/spec/x86_64_fortanix_unknown_sgx.rs @@ -1,7 +1,6 @@ +use crate::spec::{cvs, Cc, LinkerFlavor, Lld, Target, TargetOptions}; use std::borrow::Cow; -use super::{cvs, Cc, LinkerFlavor, Lld, Target, TargetOptions}; - pub fn target() -> Target { let pre_link_args = TargetOptions::link_args( LinkerFlavor::Gnu(Cc::No, Lld::No), diff --git a/compiler/rustc_target/src/spec/x86_64_linux_android.rs b/compiler/rustc_target/src/spec/x86_64_linux_android.rs index c110674fd870f..2d7726a031c20 100644 --- a/compiler/rustc_target/src/spec/x86_64_linux_android.rs +++ b/compiler/rustc_target/src/spec/x86_64_linux_android.rs @@ -1,7 +1,9 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target, TargetOptions}; +use crate::spec::{ + base::android, Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target, TargetOptions, +}; pub fn target() -> Target { - let mut base = super::android_base::opts(); + let mut base = android::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; // https://developer.android.com/ndk/guides/abis.html#86-64 diff --git a/compiler/rustc_target/src/spec/x86_64_pc_nto_qnx710.rs b/compiler/rustc_target/src/spec/x86_64_pc_nto_qnx710.rs index 8424757df076c..54ba673f43697 100644 --- a/compiler/rustc_target/src/spec/x86_64_pc_nto_qnx710.rs +++ b/compiler/rustc_target/src/spec/x86_64_pc_nto_qnx710.rs @@ -1,5 +1,4 @@ -use super::nto_qnx_base; -use crate::spec::{Cc, LinkerFlavor, Lld, Target, TargetOptions}; +use crate::spec::{base::nto_qnx, Cc, LinkerFlavor, Lld, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -17,7 +16,7 @@ pub fn target() -> Target { &["-Vgcc_ntox86_64_cxx"], ), env: "nto71".into(), - ..nto_qnx_base::opts() + ..nto_qnx::opts() }, } } diff --git a/compiler/rustc_target/src/spec/x86_64_pc_solaris.rs b/compiler/rustc_target/src/spec/x86_64_pc_solaris.rs index e2c59d2938e69..cc2ce04a4d890 100644 --- a/compiler/rustc_target/src/spec/x86_64_pc_solaris.rs +++ b/compiler/rustc_target/src/spec/x86_64_pc_solaris.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, SanitizerSet, StackProbeType, Target}; +use crate::spec::{base::solaris, Cc, LinkerFlavor, SanitizerSet, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::solaris_base::opts(); + let mut base = solaris::opts(); base.add_pre_link_args(LinkerFlavor::Unix(Cc::Yes), &["-m64"]); base.cpu = "x86-64".into(); base.plt_by_default = false; diff --git a/compiler/rustc_target/src/spec/x86_64_pc_windows_gnu.rs b/compiler/rustc_target/src/spec/x86_64_pc_windows_gnu.rs index 1b8885c34da78..47c9ea074152d 100644 --- a/compiler/rustc_target/src/spec/x86_64_pc_windows_gnu.rs +++ b/compiler/rustc_target/src/spec/x86_64_pc_windows_gnu.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, Target}; +use crate::spec::{base::windows_gnu, Cc, LinkerFlavor, Lld, Target}; pub fn target() -> Target { - let mut base = super::windows_gnu_base::opts(); + let mut base = windows_gnu::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; // Use high-entropy 64 bit address space for ASLR diff --git a/compiler/rustc_target/src/spec/x86_64_pc_windows_gnullvm.rs b/compiler/rustc_target/src/spec/x86_64_pc_windows_gnullvm.rs index 8f5e398a0be91..42b7bcaca2a6a 100644 --- a/compiler/rustc_target/src/spec/x86_64_pc_windows_gnullvm.rs +++ b/compiler/rustc_target/src/spec/x86_64_pc_windows_gnullvm.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, Target}; +use crate::spec::{base::windows_gnullvm, Cc, LinkerFlavor, Lld, Target}; pub fn target() -> Target { - let mut base = super::windows_gnullvm_base::opts(); + let mut base = windows_gnullvm::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); diff --git a/compiler/rustc_target/src/spec/x86_64_pc_windows_msvc.rs b/compiler/rustc_target/src/spec/x86_64_pc_windows_msvc.rs index 6b897ca7070e3..2a29fceaff288 100644 --- a/compiler/rustc_target/src/spec/x86_64_pc_windows_msvc.rs +++ b/compiler/rustc_target/src/spec/x86_64_pc_windows_msvc.rs @@ -1,7 +1,7 @@ -use crate::spec::Target; +use crate::spec::{base::windows_msvc, Target}; pub fn target() -> Target { - let mut base = super::windows_msvc_base::opts(); + let mut base = windows_msvc::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64_sun_solaris.rs b/compiler/rustc_target/src/spec/x86_64_sun_solaris.rs index 650065f6330a0..3f1a5707227d5 100644 --- a/compiler/rustc_target/src/spec/x86_64_sun_solaris.rs +++ b/compiler/rustc_target/src/spec/x86_64_sun_solaris.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, StackProbeType, Target}; +use crate::spec::{base::solaris, Cc, LinkerFlavor, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::solaris_base::opts(); + let mut base = solaris::opts(); base.add_pre_link_args(LinkerFlavor::Unix(Cc::Yes), &["-m64"]); base.cpu = "x86-64".into(); base.plt_by_default = false; diff --git a/compiler/rustc_target/src/spec/x86_64_unikraft_linux_musl.rs b/compiler/rustc_target/src/spec/x86_64_unikraft_linux_musl.rs index 2aa093b131f5f..ce613cf28c0ea 100644 --- a/compiler/rustc_target/src/spec/x86_64_unikraft_linux_musl.rs +++ b/compiler/rustc_target/src/spec/x86_64_unikraft_linux_musl.rs @@ -1,4 +1,6 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; +use crate::spec::{ + base::unikraft_linux_musl, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions, +}; pub fn target() -> Target { Target { @@ -13,7 +15,7 @@ pub fn target() -> Target { pre_link_args: TargetOptions::link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]), max_atomic_width: Some(64), stack_probes: StackProbeType::X86, - ..super::unikraft_linux_musl_base::opts() + ..unikraft_linux_musl::opts() }, } } diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_dragonfly.rs b/compiler/rustc_target/src/spec/x86_64_unknown_dragonfly.rs index 3b8e75977b5ac..41ff5e537b656 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_dragonfly.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_dragonfly.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target}; +use crate::spec::{base::dragonfly, Cc, LinkerFlavor, Lld, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::dragonfly_base::opts(); + let mut base = dragonfly::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_freebsd.rs b/compiler/rustc_target/src/spec/x86_64_unknown_freebsd.rs index b2d91d09996ff..a75eda63de719 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_freebsd.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_freebsd.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target}; +use crate::spec::{base::freebsd, Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::freebsd_base::opts(); + let mut base = freebsd::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_fuchsia.rs b/compiler/rustc_target/src/spec/x86_64_unknown_fuchsia.rs index bee9354196028..93fe8ced07df3 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_fuchsia.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_fuchsia.rs @@ -1,7 +1,7 @@ -use crate::spec::{SanitizerSet, StackProbeType, Target}; +use crate::spec::{base::fuchsia, SanitizerSet, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::fuchsia_base::opts(); + let mut base = fuchsia::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_haiku.rs b/compiler/rustc_target/src/spec/x86_64_unknown_haiku.rs index 16ed3150e6e2e..b0d05f1653f06 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_haiku.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_haiku.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target}; +use crate::spec::{base::haiku, Cc, LinkerFlavor, Lld, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::haiku_base::opts(); + let mut base = haiku::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_hermit.rs b/compiler/rustc_target/src/spec/x86_64_unknown_hermit.rs index 1eb0693011176..772cd4188ae36 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_hermit.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_hermit.rs @@ -1,4 +1,4 @@ -use crate::spec::{StackProbeType, Target, TargetOptions}; +use crate::spec::{base::hermit, StackProbeType, Target, TargetOptions}; pub fn target() -> Target { Target { @@ -13,7 +13,7 @@ pub fn target() -> Target { plt_by_default: false, max_atomic_width: Some(64), stack_probes: StackProbeType::X86, - ..super::hermit_base::opts() + ..hermit::opts() }, } } diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_illumos.rs b/compiler/rustc_target/src/spec/x86_64_unknown_illumos.rs index 9259cfe5f0ed6..484dafbb62bf2 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_illumos.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_illumos.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, SanitizerSet, Target}; +use crate::spec::{base::illumos, Cc, LinkerFlavor, SanitizerSet, Target}; pub fn target() -> Target { - let mut base = super::illumos_base::opts(); + let mut base = illumos::opts(); base.add_pre_link_args(LinkerFlavor::Unix(Cc::Yes), &["-m64", "-std=c99"]); base.cpu = "x86-64".into(); base.plt_by_default = false; diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_l4re_uclibc.rs b/compiler/rustc_target/src/spec/x86_64_unknown_l4re_uclibc.rs index 912d289c47f9f..9229dccbc53bf 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_l4re_uclibc.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_l4re_uclibc.rs @@ -1,7 +1,7 @@ -use crate::spec::{PanicStrategy, Target}; +use crate::spec::{base::l4re, PanicStrategy, Target}; pub fn target() -> Target { - let mut base = super::l4re_base::opts(); + let mut base = l4re::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs index 2f970f87cc642..5fda49045a3f8 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target}; +use crate::spec::{base::linux_gnu, Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = linux_gnu::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnux32.rs b/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnux32.rs index 5469d02c59239..84d3ed825f007 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnux32.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnux32.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target}; +use crate::spec::{base::linux_gnu, Cc, LinkerFlavor, Lld, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = linux_gnu::opts(); base.cpu = "x86-64".into(); base.abi = "x32".into(); base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/x86_64_unknown_linux_musl.rs index 7154f5fa3068f..b12c088a401ad 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_linux_musl.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_linux_musl.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target}; +use crate::spec::{base::linux_musl, Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::linux_musl_base::opts(); + let mut base = linux_musl::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_linux_ohos.rs b/compiler/rustc_target/src/spec/x86_64_unknown_linux_ohos.rs index a96be8cd55466..d066c89282c9d 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_linux_ohos.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_linux_ohos.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target}; +use crate::spec::{base::linux_ohos, Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::linux_ohos_base::opts(); + let mut base = linux_ohos::opts(); base.cpu = "x86-64".into(); base.max_atomic_width = Some(64); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_netbsd.rs b/compiler/rustc_target/src/spec/x86_64_unknown_netbsd.rs index 2e7bf34f7d2f6..cccde844f6123 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_netbsd.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_netbsd.rs @@ -1,7 +1,9 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target, TargetOptions}; +use crate::spec::{ + base::netbsd, Cc, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target, TargetOptions, +}; pub fn target() -> Target { - let mut base = super::netbsd_base::opts(); + let mut base = netbsd::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_none.rs b/compiler/rustc_target/src/spec/x86_64_unknown_none.rs index fe3b24f2d4afa..454017ec70a3e 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_none.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_none.rs @@ -4,8 +4,10 @@ // `target-cpu` compiler flags to opt-in more hardware-specific // features. -use super::{Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy}; -use super::{RelroLevel, SanitizerSet, StackProbeType, Target, TargetOptions}; +use crate::spec::{ + Cc, CodeModel, LinkerFlavor, Lld, PanicStrategy, RelroLevel, SanitizerSet, StackProbeType, + Target, TargetOptions, +}; pub fn target() -> Target { let opts = TargetOptions { diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_openbsd.rs b/compiler/rustc_target/src/spec/x86_64_unknown_openbsd.rs index 86fa9bf7ed2a3..c8e6e71c18c08 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_openbsd.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_openbsd.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target}; +use crate::spec::{base::openbsd, Cc, LinkerFlavor, Lld, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::openbsd_base::opts(); + let mut base = openbsd::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_redox.rs b/compiler/rustc_target/src/spec/x86_64_unknown_redox.rs index decc973678227..d8b477a4d6012 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_redox.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_redox.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target}; +use crate::spec::{base::redox, Cc, LinkerFlavor, Lld, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::redox_base::opts(); + let mut base = redox::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_uefi.rs b/compiler/rustc_target/src/spec/x86_64_unknown_uefi.rs index 67664a74710a3..49066a4acc8e1 100644 --- a/compiler/rustc_target/src/spec/x86_64_unknown_uefi.rs +++ b/compiler/rustc_target/src/spec/x86_64_unknown_uefi.rs @@ -5,10 +5,10 @@ // The win64 ABI is used. It differs from the sysv64 ABI, so we must use a windows target with // LLVM. "x86_64-unknown-windows" is used to get the minimal subset of windows-specific features. -use crate::spec::Target; +use crate::spec::{base::uefi_msvc, Target}; pub fn target() -> Target { - let mut base = super::uefi_msvc_base::opts(); + let mut base = uefi_msvc::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64_uwp_windows_gnu.rs b/compiler/rustc_target/src/spec/x86_64_uwp_windows_gnu.rs index 1a9d2a57182d5..a55749caa9077 100644 --- a/compiler/rustc_target/src/spec/x86_64_uwp_windows_gnu.rs +++ b/compiler/rustc_target/src/spec/x86_64_uwp_windows_gnu.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, Target}; +use crate::spec::{base::windows_uwp_gnu, Cc, LinkerFlavor, Lld, Target}; pub fn target() -> Target { - let mut base = super::windows_uwp_gnu_base::opts(); + let mut base = windows_uwp_gnu::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; // Use high-entropy 64 bit address space for ASLR diff --git a/compiler/rustc_target/src/spec/x86_64_uwp_windows_msvc.rs b/compiler/rustc_target/src/spec/x86_64_uwp_windows_msvc.rs index 1ae403fa83f31..24cc44441baae 100644 --- a/compiler/rustc_target/src/spec/x86_64_uwp_windows_msvc.rs +++ b/compiler/rustc_target/src/spec/x86_64_uwp_windows_msvc.rs @@ -1,7 +1,7 @@ -use crate::spec::Target; +use crate::spec::{base::windows_uwp_msvc, Target}; pub fn target() -> Target { - let mut base = super::windows_uwp_msvc_base::opts(); + let mut base = windows_uwp_msvc::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64_wrs_vxworks.rs b/compiler/rustc_target/src/spec/x86_64_wrs_vxworks.rs index a7c4aaecf9109..a759f87816658 100644 --- a/compiler/rustc_target/src/spec/x86_64_wrs_vxworks.rs +++ b/compiler/rustc_target/src/spec/x86_64_wrs_vxworks.rs @@ -1,7 +1,7 @@ -use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target}; +use crate::spec::{base::vxworks, Cc, LinkerFlavor, Lld, StackProbeType, Target}; pub fn target() -> Target { - let mut base = super::vxworks_base::opts(); + let mut base = vxworks::opts(); base.cpu = "x86-64".into(); base.plt_by_default = false; base.max_atomic_width = Some(64); diff --git a/compiler/rustc_target/src/spec/x86_64h_apple_darwin.rs b/compiler/rustc_target/src/spec/x86_64h_apple_darwin.rs index 54f7490b2c052..158dc1df50640 100644 --- a/compiler/rustc_target/src/spec/x86_64h_apple_darwin.rs +++ b/compiler/rustc_target/src/spec/x86_64h_apple_darwin.rs @@ -1,6 +1,7 @@ -use super::apple_base::{macos_llvm_target, opts, Arch}; -use crate::spec::{Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet}; -use crate::spec::{StackProbeType, Target, TargetOptions}; +use crate::spec::{ + base::apple::{macos_llvm_target, opts, Arch}, + Cc, FramePointer, LinkerFlavor, Lld, SanitizerSet, StackProbeType, Target, TargetOptions, +}; pub fn target() -> Target { let arch = Arch::X86_64h; From f759acfa0f435be18038081a7e2bdee54ffbbb3c Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 12 Sep 2023 17:56:23 +0100 Subject: [PATCH 137/145] target compliance: i686-pc-windows-gnullvm Signed-off-by: David Wood --- .../assembly/targets/i686_pc_windows_gnullvm.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/i686_pc_windows_gnullvm.rs diff --git a/tests/assembly/targets/i686_pc_windows_gnullvm.rs b/tests/assembly/targets/i686_pc_windows_gnullvm.rs new file mode 100644 index 0000000000000..5735b8f8d08db --- /dev/null +++ b/tests/assembly/targets/i686_pc_windows_gnullvm.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i686-pc-windows-gnullvm +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .text From b916d4566eef61fb5123651d5608d2f4d00b1ace Mon Sep 17 00:00:00 2001 From: David Wood Date: Wed, 13 Sep 2023 13:23:24 +0100 Subject: [PATCH 138/145] rustc_target: rename module to match target Signed-off-by: David Wood --- ...h64_unknown_nto_qnx_710.rs => aarch64_unknown_nto_qnx710.rs} | 0 compiler/rustc_target/src/spec/mod.rs | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename compiler/rustc_target/src/spec/{aarch64_unknown_nto_qnx_710.rs => aarch64_unknown_nto_qnx710.rs} (100%) diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_nto_qnx_710.rs b/compiler/rustc_target/src/spec/aarch64_unknown_nto_qnx710.rs similarity index 100% rename from compiler/rustc_target/src/spec/aarch64_unknown_nto_qnx_710.rs rename to compiler/rustc_target/src/spec/aarch64_unknown_nto_qnx710.rs diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs index 278710ce8d70a..a281de8188155 100644 --- a/compiler/rustc_target/src/spec/mod.rs +++ b/compiler/rustc_target/src/spec/mod.rs @@ -1499,7 +1499,7 @@ supported_targets! { ("mips64-openwrt-linux-musl", mips64_openwrt_linux_musl), - ("aarch64-unknown-nto-qnx710", aarch64_unknown_nto_qnx_710), + ("aarch64-unknown-nto-qnx710", aarch64_unknown_nto_qnx710), ("x86_64-pc-nto-qnx710", x86_64_pc_nto_qnx710), ("i586-pc-nto-qnx700", i586_pc_nto_qnx700), From 44b20828cc7829f2068f0589ae4c2ce9a6492863 Mon Sep 17 00:00:00 2001 From: David Wood Date: Wed, 13 Sep 2023 14:59:02 +0100 Subject: [PATCH 139/145] doc/rustc: rename docs to match target defns By having the platform support documents with the same name as the target definition, it simplifies the tidy lint to check these exist. Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 90 +++++++++---------- ...le-ios-sim.md => aarch64_apple_ios_sim.md} | 0 ...> aarch64_nintendo_switch_freestanding.md} | 0 ...nown-teeos.md => aarch64_unknown_teeos.md} | 0 ...eabi.md => armeb_unknown_linux_gnueabi.md} | 0 ...rmv4t-none-eabi.md => armv4t_none_eabi.md} | 0 ...v5te-none-eabi.md => armv5te_none_eabi.md} | 0 ...nintendo-3ds.md => armv6k_nintendo_3ds.md} | 0 ...ihf.md => armv7_sony_vita_newlibeabihf.md} | 0 ...i.md => armv7_unknown_linux_uclibceabi.md} | 0 ...biv2.md => csky_unknown_linux_gnuabiv2.md} | 0 .../{esp-idf.md => esp_idf.md} | 0 .../{kmc-solid.md => kmc_solid.md} | 0 ...{loongarch-linux.md => loongarch_linux.md} | 0 .../{loongarch-none.md => loongarch_none.md} | 0 ...linux-gnu.md => m68k_unknown_linux_gnu.md} | 0 ...x-musl.md => mips64_openwrt_linux_musl.md} | 0 .../{mips-release-6.md => mips_release_6.md} | 0 ...{mipsel-sony-psx.md => mipsel_sony_psx.md} | 0 .../{nto-qnx.md => nto_qnx.md} | 0 ...-nvidia-cuda.md => nvptx64_nvidia_cuda.md} | 0 ...ndows-gnullvm.md => pc_windows_gnullvm.md} | 0 ...elf.md => riscv32imac_unknown_xous_elf.md} | 0 ...-none-elf.md => sparc_unknown_none_elf.md} | 0 ...t-linux-musl.md => unikraft_linux_musl.md} | 0 .../{unknown-uefi.md => unknown_uefi.md} | 0 ...ads.md => wasm32_wasi_preview1_threads.md} | 0 ...n-unknown.md => wasm64_unknown_unknown.md} | 0 ...-sgx.md => x86_64_fortanix_unknown_sgx.md} | 0 ...unknown-none.md => x86_64_unknown_none.md} | 0 30 files changed, 45 insertions(+), 45 deletions(-) rename src/doc/rustc/src/platform-support/{aarch64-apple-ios-sim.md => aarch64_apple_ios_sim.md} (100%) rename src/doc/rustc/src/platform-support/{aarch64-nintendo-switch-freestanding.md => aarch64_nintendo_switch_freestanding.md} (100%) rename src/doc/rustc/src/platform-support/{aarch64-unknown-teeos.md => aarch64_unknown_teeos.md} (100%) rename src/doc/rustc/src/platform-support/{armeb-unknown-linux-gnueabi.md => armeb_unknown_linux_gnueabi.md} (100%) rename src/doc/rustc/src/platform-support/{armv4t-none-eabi.md => armv4t_none_eabi.md} (100%) rename src/doc/rustc/src/platform-support/{armv5te-none-eabi.md => armv5te_none_eabi.md} (100%) rename src/doc/rustc/src/platform-support/{armv6k-nintendo-3ds.md => armv6k_nintendo_3ds.md} (100%) rename src/doc/rustc/src/platform-support/{armv7-sony-vita-newlibeabihf.md => armv7_sony_vita_newlibeabihf.md} (100%) rename src/doc/rustc/src/platform-support/{armv7-unknown-linux-uclibceabi.md => armv7_unknown_linux_uclibceabi.md} (100%) rename src/doc/rustc/src/platform-support/{csky-unknown-linux-gnuabiv2.md => csky_unknown_linux_gnuabiv2.md} (100%) rename src/doc/rustc/src/platform-support/{esp-idf.md => esp_idf.md} (100%) rename src/doc/rustc/src/platform-support/{kmc-solid.md => kmc_solid.md} (100%) rename src/doc/rustc/src/platform-support/{loongarch-linux.md => loongarch_linux.md} (100%) rename src/doc/rustc/src/platform-support/{loongarch-none.md => loongarch_none.md} (100%) rename src/doc/rustc/src/platform-support/{m68k-unknown-linux-gnu.md => m68k_unknown_linux_gnu.md} (100%) rename src/doc/rustc/src/platform-support/{mips64-openwrt-linux-musl.md => mips64_openwrt_linux_musl.md} (100%) rename src/doc/rustc/src/platform-support/{mips-release-6.md => mips_release_6.md} (100%) rename src/doc/rustc/src/platform-support/{mipsel-sony-psx.md => mipsel_sony_psx.md} (100%) rename src/doc/rustc/src/platform-support/{nto-qnx.md => nto_qnx.md} (100%) rename src/doc/rustc/src/platform-support/{nvptx64-nvidia-cuda.md => nvptx64_nvidia_cuda.md} (100%) rename src/doc/rustc/src/platform-support/{pc-windows-gnullvm.md => pc_windows_gnullvm.md} (100%) rename src/doc/rustc/src/platform-support/{riscv32imac-unknown-xous-elf.md => riscv32imac_unknown_xous_elf.md} (100%) rename src/doc/rustc/src/platform-support/{sparc-unknown-none-elf.md => sparc_unknown_none_elf.md} (100%) rename src/doc/rustc/src/platform-support/{unikraft-linux-musl.md => unikraft_linux_musl.md} (100%) rename src/doc/rustc/src/platform-support/{unknown-uefi.md => unknown_uefi.md} (100%) rename src/doc/rustc/src/platform-support/{wasm32-wasi-preview1-threads.md => wasm32_wasi_preview1_threads.md} (100%) rename src/doc/rustc/src/platform-support/{wasm64-unknown-unknown.md => wasm64_unknown_unknown.md} (100%) rename src/doc/rustc/src/platform-support/{x86_64-fortanix-unknown-sgx.md => x86_64_fortanix_unknown_sgx.md} (100%) rename src/doc/rustc/src/platform-support/{x86_64-unknown-none.md => x86_64_unknown_none.md} (100%) diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index 77c3778f4dea7..a30d6f02ec7fa 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -89,7 +89,7 @@ target | notes [`arm-unknown-linux-gnueabi`](platform-support/arm_unknown_linux.md) | ARMv6 Linux (kernel 3.2, glibc 2.17) [`arm-unknown-linux-gnueabihf`](platform-support/arm_unknown_linux.md) | ARMv6 Linux, hardfloat (kernel 3.2, glibc 2.17) [`armv7-unknown-linux-gnueabihf`](platform-support/armv7_unknown_linux_gnueabihf.md) | ARMv7-A Linux, hardfloat (kernel 3.2, glibc 2.17) -[`loongarch64-unknown-linux-gnu`](platform-support/loongarch-linux.md) | LoongArch64 Linux, LP64D ABI (kernel 5.19, glibc 2.36) +[`loongarch64-unknown-linux-gnu`](platform-support/loongarch_linux.md) | LoongArch64 Linux, LP64D ABI (kernel 5.19, glibc 2.36) [`mips-unknown-linux-gnu`](platform-support/mips_unknown_linux_gnu.md) | MIPS Linux (kernel 4.4, glibc 2.23) [`mips64-unknown-linux-gnuabi64`](platform-support/mips64-unknown-linux-gnuabi64.md) | MIPS64 Linux, n64 ABI (kernel 4.4, glibc 2.23) [`mips64el-unknown-linux-gnuabi64`](platform-support/mips64_unknown_linux_gnuabi64.md) | MIPS64 (LE) Linux, n64 ABI (kernel 4.4, glibc 2.23) @@ -128,13 +128,13 @@ so Rustup may install the documentation for a similar tier 1 target instead. target | std | notes -------|:---:|------- [`aarch64-apple-ios`](platform-support/aarch64_apple_ios.md) | ✓ | ARM64 iOS -[`aarch64-apple-ios-sim`](platform-support/aarch64-apple-ios-sim.md) | ✓ | Apple iOS Simulator on ARM64 +[`aarch64-apple-ios-sim`](platform-support/aarch64_apple_ios_sim.md) | ✓ | Apple iOS Simulator on ARM64 [`aarch64-fuchsia`](platform-support/fuchsia.md) | ✓ | Alias for `aarch64-unknown-fuchsia` [`aarch64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | ARM64 Fuchsia [`aarch64-linux-android`](platform-support/android.md) | ✓ | ARM64 Android [`aarch64-unknown-none-softfloat`](platform-support/aarch64-unknown-none-softfloat.md) | * | Bare ARM64, softfloat [`aarch64-unknown-none`](platform-support/aarch64_unknown_none.md) | * | Bare ARM64, hardfloat -[`aarch64-unknown-uefi`](platform-support/unknown-uefi.md) | * | ARM64 UEFI +[`aarch64-unknown-uefi`](platform-support/unknown_uefi.md) | * | ARM64 UEFI [`arm-linux-androideabi`](platform-support/android.md) | ✓ | ARMv6 Android [`arm-unknown-linux-musleabi`](platform-support/arm_unknown_linux.md) | ✓ | ARMv6 Linux with MUSL [`arm-unknown-linux-musleabihf`](platform-support/arm_unknown_linux.md) | ✓ | ARMv6 Linux with MUSL, hardfloat @@ -156,12 +156,12 @@ target | std | notes [`i686-linux-android`](platform-support/android.md) | ✓ | 32-bit x86 Android [`i686-unknown-freebsd`](platform-support/freebsd.md) | ✓ | 32-bit FreeBSD [`i686-unknown-linux-musl`](platform-support/i686_unknown_linux_musl.md) | ✓ | 32-bit Linux with MUSL -[`i686-unknown-uefi`](platform-support/unknown-uefi.md) | * | 32-bit UEFI +[`i686-unknown-uefi`](platform-support/unknown_uefi.md) | * | 32-bit UEFI [`mips-unknown-linux-musl`](platform-support/mips_unknown_linux_musl.md) | ✓ | MIPS Linux with MUSL [`mips64-unknown-linux-muslabi64`](platform-support/mips64-unknown-linux-muslabi64.md) | ✓ | MIPS64 Linux, n64 ABI, MUSL [`mips64el-unknown-linux-muslabi64`](platform-support/mips64el-unknown-linux-muslabi64.md) | ✓ | MIPS64 (LE) Linux, n64 ABI, MUSL -[`mipsel-unknown-linux-musl`](platform-support/mips-unknown-linux-musl.md) | ✓ | MIPS (LE) Linux with MUSL -[`nvptx64-nvidia-cuda`](platform-support/nvptx64-nvidia-cuda.md) | * | --emit=asm generates PTX code that [runs on NVIDIA GPUs] +[`mipsel-unknown-linux-musl`](platform-support/mips_unknown_linux_musl.md) | ✓ | MIPS (LE) Linux with MUSL +[`nvptx64-nvidia-cuda`](platform-support/nvptx64_nvidia_cuda.md) | * | --emit=asm generates PTX code that [runs on NVIDIA GPUs] [`riscv32i-unknown-none-elf`](platform-support/riscv32i_unknown_none_elf.md) | * | Bare RISC-V (RV32I ISA) [`riscv32imac-unknown-none-elf`](platform-support/riscv32imac_unknown_none_elf.md) | * | Bare RISC-V (RV32IMAC ISA) [`riscv32imc-unknown-none-elf`](platform-support/riscv32imc_unknown_none_elf.md) | * | Bare RISC-V (RV32IMC ISA) @@ -181,17 +181,17 @@ target | std | notes [`wasm32-unknown-emscripten`](platform-support/wasm32_unknown_emscripten.md) | ✓ | WebAssembly via Emscripten [`wasm32-unknown-unknown`](platform-support/wasm32_unknown_unknown.md) | ✓ | WebAssembly [`wasm32-wasi`](platform-support/wasm32_wasi.md) | ✓ | WebAssembly with WASI -[`wasm32-wasi-preview1-threads`](platform-support/wasm32-wasi-preview1-threads.md) | ✓ | | WebAssembly with WASI Preview 1 and threads +[`wasm32-wasi-preview1-threads`](platform-support/wasm32_wasi_preview1_threads.md) | ✓ | | WebAssembly with WASI Preview 1 and threads [`x86_64-apple-ios`](platform-support/x86_64_apple_ios.md) | ✓ | 64-bit x86 iOS -[`x86_64-fortanix-unknown-sgx`](platform-support/x86_64-fortanix-unknown-sgx.md) | ✓ | [Fortanix ABI] for 64-bit Intel SGX +[`x86_64-fortanix-unknown-sgx`](platform-support/x86_64_fortanix_unknown_sgx.md) | ✓ | [Fortanix ABI] for 64-bit Intel SGX [`x86_64-fuchsia`](platform-support/fuchsia.md) | ✓ | Alias for `x86_64-unknown-fuchsia` [`x86_64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | 64-bit x86 Fuchsia [`x86_64-linux-android`](platform-support/android.md) | ✓ | 64-bit x86 Android [`x86_64-pc-solaris`](platform-support/x86_64_pc_solaris.md) | ✓ | 64-bit Solaris 10/11, illumos [`x86_64-unknown-linux-gnux32`](platform-support/x86_64_unknown_linux_gnux32.md) | ✓ | 64-bit Linux (x32 ABI) (kernel 4.15, glibc 2.27) -[`x86_64-unknown-none`](platform-support/x86_64-unknown-none.md) | * | Freestanding/bare-metal x86_64, softfloat +[`x86_64-unknown-none`](platform-support/x86_64_unknown_none.md) | * | Freestanding/bare-metal x86_64, softfloat [`x86_64-unknown-redox`](platform-support/x86_64_unknown_redox.md) | ✓ | Redox OS -[`x86_64-unknown-uefi`](platform-support/unknown-uefi.md) | * | 64-bit UEFI +[`x86_64-unknown-uefi`](platform-support/unknown_uefi.md) | * | 64-bit UEFI [Fortanix ABI]: https://edp.fortanix.com/ @@ -219,12 +219,12 @@ target | std | host | notes [`aarch64-apple-ios-macabi`](platform-support/apple_ios_macabi.md) | ? | | Apple Catalyst on ARM64 [`aarch64-apple-tvos`](platform-support/apple_tvos.md) | ? | | ARM64 tvOS [`aarch64-apple-watchos-sim`](platform-support/apple_watchos.md) | ✓ | | ARM64 Apple WatchOS Simulator -[`aarch64-kmc-solid_asp3`](platform-support/kmc-solid.md) | ✓ | | ARM64 SOLID with TOPPERS/ASP3 -[`aarch64-nintendo-switch-freestanding`](platform-support/aarch64-nintendo-switch-freestanding.md) | * | | ARM64 Nintendo Switch, Horizon -[`aarch64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | ARM64 Windows using UCRT and LLVM +[`aarch64-kmc-solid_asp3`](platform-support/kmc_solid.md) | ✓ | | ARM64 SOLID with TOPPERS/ASP3 +[`aarch64-nintendo-switch-freestanding`](platform-support/aarch64_nintendo_switch_freestanding.md) | * | | ARM64 Nintendo Switch, Horizon +[`aarch64-pc-windows-gnullvm`](platform-support/pc_windows_gnullvm.md) | ✓ | ✓ | ARM64 Windows using UCRT and LLVM [`aarch64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | ARM64 OpenHarmony | -[`aarch64-unknown-teeos`](platform-support/aarch64-unknown-teeos.md) | ? | | ARM64 TEEOS | -[`aarch64-unknown-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | ARM64 QNX Neutrino 7.1 RTOS | +[`aarch64-unknown-teeos`](platform-support/aarch64_unknown_teeos.md) | ? | | ARM64 TEEOS | +[`aarch64-unknown-nto-qnx710`](platform-support/nto_qnx.md) | ✓ | | ARM64 QNX Neutrino 7.1 RTOS | [`aarch64-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARM64 FreeBSD [`aarch64-unknown-hermit`](platform-support/hermit.md) | ✓ | | ARM64 Hermit [`aarch64-unknown-linux-gnu_ilp32`](platform-support/aarch64_unknown_linux_gnu_ilp32.md) | ✓ | ✓ | ARM64 Linux (ILP32 ABI) @@ -237,55 +237,55 @@ target | std | host | notes [`aarch64_be-unknown-linux-gnu`](platform-support/aarch64_be_unknown_linux_gnu.md) | ✓ | ✓ | ARM64 Linux (Big Endian) [`aarch64_be-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | ARM64 NetBSD (big-endian) [`arm64_32-apple-watchos`](platform-support/apple_watchos.md) | ✓ | | ARM Apple WatchOS 64-bit with 32-bit pointers -[`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). -[`armv4t-none-eabi`](platform-support/armv4t-none-eabi.md) | * | | Bare ARMv4T +[`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). +[`armv4t-none-eabi`](platform-support/armv4t_none_eabi.md) | * | | Bare ARMv4T [`armv4t-unknown-linux-gnueabi`](platform-support/armv4t_unknown_linux_gnueabi.md) | ? | | ARMv4T Linux -[`armv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | Bare ARMv5TE +[`armv5te-none-eabi`](platform-support/armv5te_none_eabi.md) | * | | Bare ARMv5TE [`armv5te-unknown-linux-uclibceabi`](platform-support/armv5te_unknown_linux_uclibceabi.md) | ? | | ARMv5TE Linux with uClibc [`armv6-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARMv6 FreeBSD [`armv6-unknown-netbsd-eabihf`](platform-support/netbsd.md) | ✓ | ✓ | ARMv6 NetBSD w/hard-float -[`armv6k-nintendo-3ds`](platform-support/armv6k-nintendo-3ds.md) | ? | | ARMv6K Nintendo 3DS, Horizon (Requires devkitARM toolchain) +[`armv6k-nintendo-3ds`](platform-support/armv6k_nintendo_3ds.md) | ? | | ARMv6K Nintendo 3DS, Horizon (Requires devkitARM toolchain) [`armv7-apple-ios`](platform-support/armv7_apple_ios.md) | ✓ | | ARMv7-A Cortex-A8 iOS -[`armv7-sony-vita-newlibeabihf`](platform-support/armv7-sony-vita-newlibeabihf.md) | ? | | ARMv7-A Cortex-A9 Sony PlayStation Vita (requires VITASDK toolchain) +[`armv7-sony-vita-newlibeabihf`](platform-support/armv7_sony_vita_newlibeabihf.md) | ? | | ARMv7-A Cortex-A9 Sony PlayStation Vita (requires VITASDK toolchain) [`armv7-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | ARMv7-A OpenHarmony | -[`armv7-unknown-linux-uclibceabi`](platform-support/armv7-unknown-linux-uclibceabi.md) | ✓ | ✓ | ARMv7-A Linux with uClibc, softfloat +[`armv7-unknown-linux-uclibceabi`](platform-support/armv7_unknown_linux_uclibceabi.md) | ✓ | ✓ | ARMv7-A Linux with uClibc, softfloat [`armv7-unknown-linux-uclibceabihf`](platform-support/armv7_unknown_linux_uclibceabihf.md) | ✓ | ? | ARMv7-A Linux with uClibc, hardfloat [`armv7-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARMv7-A FreeBSD [`armv7-unknown-netbsd-eabihf`](platform-support/netbsd.md) | ✓ | ✓ | ARMv7-A NetBSD w/hard-float [`armv7-wrs-vxworks-eabihf`](platform-support/vxworks.md) | ? | | ARMv7-A VxWorks -[`armv7a-kmc-solid_asp3-eabi`](platform-support/kmc-solid.md) | ✓ | | ARM SOLID with TOPPERS/ASP3 -[`armv7a-kmc-solid_asp3-eabihf`](platform-support/kmc-solid.md) | ✓ | | ARM SOLID with TOPPERS/ASP3, hardfloat +[`armv7a-kmc-solid_asp3-eabi`](platform-support/kmc_solid.md) | ✓ | | ARM SOLID with TOPPERS/ASP3 +[`armv7a-kmc-solid_asp3-eabihf`](platform-support/kmc_solid.md) | ✓ | | ARM SOLID with TOPPERS/ASP3, hardfloat [`armv7a-none-eabihf`](platform-support/armv7a_none_eabihf.md) | * | | Bare ARMv7-A, hardfloat [`armv7k-apple-watchos`](platform-support/apple_watchos.md) | ✓ | | ARMv7-A Apple WatchOS [`armv7s-apple-ios`](platform-support/applev7s-apple-ios.md) | ✓ | | ARMv7-A Apple-A6 Apple iOS [`avr-unknown-gnu-atmega328`](platform-support/avr.md) | * | | AVR. Requires `-Z build-std=core` [`bpfeb-unknown-none`](platform-support/bpf.md) | * | | BPF (Big Endian) [`bpfel-unknown-none`](platform-support/bpf.md) | * | | BPF (Little Endian) -[`csky-unknown-linux-gnuabiv2`](platform-support/csky-unknown-linux-gnuabiv2.md) | ✓ | | C-SKY abiv2 Linux (Little Endian) +[`csky-unknown-linux-gnuabiv2`](platform-support/csky_unknown_linux_gnuabiv2.md) | ✓ | | C-SKY abiv2 Linux (Little Endian) [`hexagon-unknown-linux-musl`](platform-support/hexagon_unknown_linux_musl.md) | ? | | Hexagon Linux MUSL [`i386-apple-ios`](platform-support/i386_apple_ios.md) | ✓ | | 32-bit x86 iOS -[`i586-pc-nto-qnx700`](platform-support/nto-qnx.md) | * | | 32-bit x86 QNX Neutrino 7.0 RTOS | +[`i586-pc-nto-qnx700`](platform-support/nto_qnx.md) | * | | 32-bit x86 QNX Neutrino 7.0 RTOS | [`i686-apple-darwin`](platform-support/i686_apple_darwin.md) | ✓ | ✓ | 32-bit macOS (10.7+, Lion+) -[`i686-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | +[`i686-pc-windows-gnullvm`](platform-support/pc_windows_gnullvm.md) | ✓ | ✓ | [`i686-unknown-haiku`](platform-support/haiku.md) | ✓ | ✓ | 32-bit Haiku [`i686-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD/i386 with SSE2 [`i686-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 32-bit OpenBSD [`i686-uwp-windows-gnu`](platform-support/uwp_windows_gnu.md) | ? | | x86 Universal Windows Platform (UWP) apps using MinGW [`i686-uwp-windows-msvc`](platform-support/windows_msvc.md) | ? | | x86 Universal Windows Platform (UWP) apps using MSVC [`i686-wrs-vxworks`](platform-support/vxworks.md) | ? | | i686 VxWorks -[`loongarch64-unknown-none`](platform-support/loongarch-none.md) | * | | LoongArch64 Bare-metal (LP64D ABI) -[`loongarch64-unknown-none-softfloat`](platform-support/loongarch-none.md) | * | | LoongArch64 Bare-metal (LP64S ABI) -[`m68k-unknown-linux-gnu`](platform-support/m68k-unknown-linux-gnu.md) | ? | | Motorola 680x0 Linux +[`loongarch64-unknown-none`](platform-support/loongarch_none.md) | * | | LoongArch64 Bare-metal (LP64D ABI) +[`loongarch64-unknown-none-softfloat`](platform-support/loongarch_none.md) | * | | LoongArch64 Bare-metal (LP64S ABI) +[`m68k-unknown-linux-gnu`](platform-support/m68k_unknown_linux_gnu.md) | ? | | Motorola 680x0 Linux [`mips-unknown-linux-uclibc`](platform-support/mips_unknown_linux_uclibc.md) | ✓ | | MIPS Linux with uClibc -[`mips64-openwrt-linux-musl`](platform-support/mips64-openwrt-linux-musl.md) | ? | | MIPS64 for OpenWrt Linux MUSL +[`mips64-openwrt-linux-musl`](platform-support/mips64_openwrt_linux_musl.md) | ? | | MIPS64 for OpenWrt Linux MUSL [`mipsel-sony-psp`](platform-support/mipsel_sony_psp.md) | * | | MIPS (LE) Sony PlayStation Portable (PSP) -[`mipsel-sony-psx`](platform-support/mipsel-sony-psx.md) | * | | MIPS (LE) Sony PlayStation 1 (PSX) +[`mipsel-sony-psx`](platform-support/mipsel_sony_psx.md) | * | | MIPS (LE) Sony PlayStation 1 (PSX) [`mipsel-unknown-linux-uclibc`](platform-support/mipsel_unknown_linux_uclibc.md) | ✓ | | MIPS (LE) Linux with uClibc [`mipsel-unknown-none`](platform-support/mipsel_unknown_none.md) | * | | Bare MIPS (LE) softfloat -[`mipsisa32r6-unknown-linux-gnu`](platform-support/mips-release-6.md) | ? | | 32-bit MIPS Release 6 Big Endian -[`mipsisa32r6el-unknown-linux-gnu`](platform-support/mips-release-6.md) | ? | | 32-bit MIPS Release 6 Little Endian -[`mipsisa64r6-unknown-linux-gnuabi64`](platform-support/mips-release-6.md) | ? | | 64-bit MIPS Release 6 Big Endian -[`mipsisa64r6el-unknown-linux-gnuabi64`](platform-support/mips-release-6.md) | ✓ | ✓ | 64-bit MIPS Release 6 Little Endian +[`mipsisa32r6-unknown-linux-gnu`](platform-support/mips_release_6.md) | ? | | 32-bit MIPS Release 6 Big Endian +[`mipsisa32r6el-unknown-linux-gnu`](platform-support/mips_release_6.md) | ? | | 32-bit MIPS Release 6 Little Endian +[`mipsisa64r6-unknown-linux-gnuabi64`](platform-support/mips_release_6.md) | ? | | 64-bit MIPS Release 6 Big Endian +[`mipsisa64r6el-unknown-linux-gnuabi64`](platform-support/mips_release_6.md) | ✓ | ✓ | 64-bit MIPS Release 6 Little Endian [`msp430-none-elf`](platform-support/msp430_none_elf.md) | * | | 16-bit MSP430 microcontrollers [`powerpc-unknown-linux-gnuspe`](platform-support/powerpc_unknown_linux_gnuspe.md) | ✓ | | PowerPC SPE Linux [`powerpc-unknown-linux-musl`](platform-support/powerpc_unknown_linux_musl.md) | ? | | PowerPC MUSL Linux @@ -304,9 +304,9 @@ target | std | host | notes [`riscv32gc-unknown-linux-gnu`](platform-support/riscv32gc_unknown_linux_gnu.md) | | | RISC-V Linux (kernel 5.4, glibc 2.33) [`riscv32gc-unknown-linux-musl`](platform-support/riscvgc_unknown_linux_musl.md) | | | RISC-V Linux (kernel 5.4, MUSL + RISCV32 support patches) [`riscv32im-unknown-none-elf`](platform-support/riscv32im_unknown_none_elf.md) | * | | Bare RISC-V (RV32IM ISA) -[`riscv32imac-unknown-xous-elf`](platform-support/riscv32imac-unknown-xous-elf.md) | ? | | RISC-V Xous (RV32IMAC ISA) -[`riscv32imc-esp-espidf`](platform-support/esp-idf.md) | ✓ | | RISC-V ESP-IDF -[`riscv32imac-esp-espidf`](platform-support/esp-idf.md) | ✓ | | RISC-V ESP-IDF +[`riscv32imac-unknown-xous-elf`](platform-support/riscv32imac_unknown_xous_elf.md) | ? | | RISC-V Xous (RV32IMAC ISA) +[`riscv32imc-esp-espidf`](platform-support/esp_idf.md) | ✓ | | RISC-V ESP-IDF +[`riscv32imac-esp-espidf`](platform-support/esp_idf.md) | ✓ | | RISC-V ESP-IDF [`riscv64gc-unknown-hermit`](platform-support/hermit.md) | ✓ | | RISC-V Hermit [`riscv64gc-unknown-freebsd`](platform-support/freebsd.md) | | | RISC-V FreeBSD [`riscv64gc-unknown-fuchsia`](platform-support/fuchsia.md) | | | RISC-V Fuchsia @@ -316,22 +316,22 @@ target | std | host | notes [`riscv64-linux-android`](platform-support/android.md) | | | RISC-V 64-bit Android [`s390x-unknown-linux-musl`](./platform-support/s390x_unknown_linux_musl.md) | | | S390x Linux (kernel 3.2, MUSL) [`sparc-unknown-linux-gnu`](./platform-support/sparc_unknown_linux_gnu.md) | ✓ | | 32-bit SPARC Linux -[`sparc-unknown-none-elf`](./platform-support/sparc-unknown-none-elf.md) | * | | Bare 32-bit SPARC V7+ +[`sparc-unknown-none-elf`](./platform-support/sparc_unknown_none_elf.md) | * | | Bare 32-bit SPARC V7+ [`sparc64-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD/sparc64 [`sparc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/sparc64 -[`thumbv4t-none-eabi`](platform-support/armv4t-none-eabi.md) | * | | Thumb-mode Bare ARMv4T -[`thumbv5te-none-eabi`](platform-support/armv5te-none-eabi.md) | * | | Thumb-mode Bare ARMv5TE +[`thumbv4t-none-eabi`](platform-support/armv4t_none_eabi.md) | * | | Thumb-mode Bare ARMv4T +[`thumbv5te-none-eabi`](platform-support/armv5te_none_eabi.md) | * | | Thumb-mode Bare ARMv5TE [`thumbv7a-pc-windows-msvc`](platform-support/windows_msvc.md) | ? | | Thumb2-mode MSVC Windows [`thumbv7a-uwp-windows-msvc`](platform-support/windows_msvc.md) | ✓ | | Thumb2-mode Universal Windows Platform (UWP) apps using MSVC [`thumbv7neon-unknown-linux-musleabihf`](platform-support/thumbv7neon_unknown_linux_musleabihf.md) | ? | | Thumb2-mode ARMv7-A Linux with NEON, MUSL -[`wasm64-unknown-unknown`](platform-support/wasm64-unknown-unknown.md) | ? | | WebAssembly +[`wasm64-unknown-unknown`](platform-support/wasm64_unknown_unknown.md) | ? | | WebAssembly [`x86_64-apple-ios-macabi`](platform-support/apple_ios_macabi.md) | ✓ | | Apple Catalyst on x86_64 [`x86_64-apple-tvos`](platform-support/apple_tvos.md) | ? | | x86 64-bit tvOS [`x86_64-apple-watchos-sim`](platform-support/apple_watchos.md) | ✓ | | x86 64-bit Apple WatchOS simulator -[`x86_64-pc-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | x86 64-bit QNX Neutrino 7.1 RTOS | -[`x86_64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ | 64-bit Windows using UCRT and LLVM +[`x86_64-pc-nto-qnx710`](platform-support/nto_qnx.md) | ✓ | | x86 64-bit QNX Neutrino 7.1 RTOS | +[`x86_64-pc-windows-gnullvm`](platform-support/pc_windows_gnullvm.md) | ✓ | ✓ | 64-bit Windows using UCRT and LLVM [`x86_64-sun-solaris`](platform-support/x86_64_sun_solaris.md) | ? | | Deprecated target for 64-bit Solaris 10/11, illumos -[`x86_64-unikraft-linux-musl`](platform-support/unikraft-linux-musl.md) | ✓ | | 64-bit Unikraft with musl +[`x86_64-unikraft-linux-musl`](platform-support/unikraft_linux_musl.md) | ✓ | | 64-bit Unikraft with musl [`x86_64-unknown-dragonfly`](platform-support/x86_64_unknown_dragonfly.md) | ✓ | ✓ | 64-bit DragonFlyBSD [`x86_64-unknown-haiku`](platform-support/haiku.md) | ✓ | ✓ | 64-bit Haiku [`x86_64-unknown-hermit`](platform-support/hermit.md) | ✓ | | x86_64 Hermit diff --git a/src/doc/rustc/src/platform-support/aarch64-apple-ios-sim.md b/src/doc/rustc/src/platform-support/aarch64_apple_ios_sim.md similarity index 100% rename from src/doc/rustc/src/platform-support/aarch64-apple-ios-sim.md rename to src/doc/rustc/src/platform-support/aarch64_apple_ios_sim.md diff --git a/src/doc/rustc/src/platform-support/aarch64-nintendo-switch-freestanding.md b/src/doc/rustc/src/platform-support/aarch64_nintendo_switch_freestanding.md similarity index 100% rename from src/doc/rustc/src/platform-support/aarch64-nintendo-switch-freestanding.md rename to src/doc/rustc/src/platform-support/aarch64_nintendo_switch_freestanding.md diff --git a/src/doc/rustc/src/platform-support/aarch64-unknown-teeos.md b/src/doc/rustc/src/platform-support/aarch64_unknown_teeos.md similarity index 100% rename from src/doc/rustc/src/platform-support/aarch64-unknown-teeos.md rename to src/doc/rustc/src/platform-support/aarch64_unknown_teeos.md diff --git a/src/doc/rustc/src/platform-support/armeb-unknown-linux-gnueabi.md b/src/doc/rustc/src/platform-support/armeb_unknown_linux_gnueabi.md similarity index 100% rename from src/doc/rustc/src/platform-support/armeb-unknown-linux-gnueabi.md rename to src/doc/rustc/src/platform-support/armeb_unknown_linux_gnueabi.md diff --git a/src/doc/rustc/src/platform-support/armv4t-none-eabi.md b/src/doc/rustc/src/platform-support/armv4t_none_eabi.md similarity index 100% rename from src/doc/rustc/src/platform-support/armv4t-none-eabi.md rename to src/doc/rustc/src/platform-support/armv4t_none_eabi.md diff --git a/src/doc/rustc/src/platform-support/armv5te-none-eabi.md b/src/doc/rustc/src/platform-support/armv5te_none_eabi.md similarity index 100% rename from src/doc/rustc/src/platform-support/armv5te-none-eabi.md rename to src/doc/rustc/src/platform-support/armv5te_none_eabi.md diff --git a/src/doc/rustc/src/platform-support/armv6k-nintendo-3ds.md b/src/doc/rustc/src/platform-support/armv6k_nintendo_3ds.md similarity index 100% rename from src/doc/rustc/src/platform-support/armv6k-nintendo-3ds.md rename to src/doc/rustc/src/platform-support/armv6k_nintendo_3ds.md diff --git a/src/doc/rustc/src/platform-support/armv7-sony-vita-newlibeabihf.md b/src/doc/rustc/src/platform-support/armv7_sony_vita_newlibeabihf.md similarity index 100% rename from src/doc/rustc/src/platform-support/armv7-sony-vita-newlibeabihf.md rename to src/doc/rustc/src/platform-support/armv7_sony_vita_newlibeabihf.md diff --git a/src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabi.md b/src/doc/rustc/src/platform-support/armv7_unknown_linux_uclibceabi.md similarity index 100% rename from src/doc/rustc/src/platform-support/armv7-unknown-linux-uclibceabi.md rename to src/doc/rustc/src/platform-support/armv7_unknown_linux_uclibceabi.md diff --git a/src/doc/rustc/src/platform-support/csky-unknown-linux-gnuabiv2.md b/src/doc/rustc/src/platform-support/csky_unknown_linux_gnuabiv2.md similarity index 100% rename from src/doc/rustc/src/platform-support/csky-unknown-linux-gnuabiv2.md rename to src/doc/rustc/src/platform-support/csky_unknown_linux_gnuabiv2.md diff --git a/src/doc/rustc/src/platform-support/esp-idf.md b/src/doc/rustc/src/platform-support/esp_idf.md similarity index 100% rename from src/doc/rustc/src/platform-support/esp-idf.md rename to src/doc/rustc/src/platform-support/esp_idf.md diff --git a/src/doc/rustc/src/platform-support/kmc-solid.md b/src/doc/rustc/src/platform-support/kmc_solid.md similarity index 100% rename from src/doc/rustc/src/platform-support/kmc-solid.md rename to src/doc/rustc/src/platform-support/kmc_solid.md diff --git a/src/doc/rustc/src/platform-support/loongarch-linux.md b/src/doc/rustc/src/platform-support/loongarch_linux.md similarity index 100% rename from src/doc/rustc/src/platform-support/loongarch-linux.md rename to src/doc/rustc/src/platform-support/loongarch_linux.md diff --git a/src/doc/rustc/src/platform-support/loongarch-none.md b/src/doc/rustc/src/platform-support/loongarch_none.md similarity index 100% rename from src/doc/rustc/src/platform-support/loongarch-none.md rename to src/doc/rustc/src/platform-support/loongarch_none.md diff --git a/src/doc/rustc/src/platform-support/m68k-unknown-linux-gnu.md b/src/doc/rustc/src/platform-support/m68k_unknown_linux_gnu.md similarity index 100% rename from src/doc/rustc/src/platform-support/m68k-unknown-linux-gnu.md rename to src/doc/rustc/src/platform-support/m68k_unknown_linux_gnu.md diff --git a/src/doc/rustc/src/platform-support/mips64-openwrt-linux-musl.md b/src/doc/rustc/src/platform-support/mips64_openwrt_linux_musl.md similarity index 100% rename from src/doc/rustc/src/platform-support/mips64-openwrt-linux-musl.md rename to src/doc/rustc/src/platform-support/mips64_openwrt_linux_musl.md diff --git a/src/doc/rustc/src/platform-support/mips-release-6.md b/src/doc/rustc/src/platform-support/mips_release_6.md similarity index 100% rename from src/doc/rustc/src/platform-support/mips-release-6.md rename to src/doc/rustc/src/platform-support/mips_release_6.md diff --git a/src/doc/rustc/src/platform-support/mipsel-sony-psx.md b/src/doc/rustc/src/platform-support/mipsel_sony_psx.md similarity index 100% rename from src/doc/rustc/src/platform-support/mipsel-sony-psx.md rename to src/doc/rustc/src/platform-support/mipsel_sony_psx.md diff --git a/src/doc/rustc/src/platform-support/nto-qnx.md b/src/doc/rustc/src/platform-support/nto_qnx.md similarity index 100% rename from src/doc/rustc/src/platform-support/nto-qnx.md rename to src/doc/rustc/src/platform-support/nto_qnx.md diff --git a/src/doc/rustc/src/platform-support/nvptx64-nvidia-cuda.md b/src/doc/rustc/src/platform-support/nvptx64_nvidia_cuda.md similarity index 100% rename from src/doc/rustc/src/platform-support/nvptx64-nvidia-cuda.md rename to src/doc/rustc/src/platform-support/nvptx64_nvidia_cuda.md diff --git a/src/doc/rustc/src/platform-support/pc-windows-gnullvm.md b/src/doc/rustc/src/platform-support/pc_windows_gnullvm.md similarity index 100% rename from src/doc/rustc/src/platform-support/pc-windows-gnullvm.md rename to src/doc/rustc/src/platform-support/pc_windows_gnullvm.md diff --git a/src/doc/rustc/src/platform-support/riscv32imac-unknown-xous-elf.md b/src/doc/rustc/src/platform-support/riscv32imac_unknown_xous_elf.md similarity index 100% rename from src/doc/rustc/src/platform-support/riscv32imac-unknown-xous-elf.md rename to src/doc/rustc/src/platform-support/riscv32imac_unknown_xous_elf.md diff --git a/src/doc/rustc/src/platform-support/sparc-unknown-none-elf.md b/src/doc/rustc/src/platform-support/sparc_unknown_none_elf.md similarity index 100% rename from src/doc/rustc/src/platform-support/sparc-unknown-none-elf.md rename to src/doc/rustc/src/platform-support/sparc_unknown_none_elf.md diff --git a/src/doc/rustc/src/platform-support/unikraft-linux-musl.md b/src/doc/rustc/src/platform-support/unikraft_linux_musl.md similarity index 100% rename from src/doc/rustc/src/platform-support/unikraft-linux-musl.md rename to src/doc/rustc/src/platform-support/unikraft_linux_musl.md diff --git a/src/doc/rustc/src/platform-support/unknown-uefi.md b/src/doc/rustc/src/platform-support/unknown_uefi.md similarity index 100% rename from src/doc/rustc/src/platform-support/unknown-uefi.md rename to src/doc/rustc/src/platform-support/unknown_uefi.md diff --git a/src/doc/rustc/src/platform-support/wasm32-wasi-preview1-threads.md b/src/doc/rustc/src/platform-support/wasm32_wasi_preview1_threads.md similarity index 100% rename from src/doc/rustc/src/platform-support/wasm32-wasi-preview1-threads.md rename to src/doc/rustc/src/platform-support/wasm32_wasi_preview1_threads.md diff --git a/src/doc/rustc/src/platform-support/wasm64-unknown-unknown.md b/src/doc/rustc/src/platform-support/wasm64_unknown_unknown.md similarity index 100% rename from src/doc/rustc/src/platform-support/wasm64-unknown-unknown.md rename to src/doc/rustc/src/platform-support/wasm64_unknown_unknown.md diff --git a/src/doc/rustc/src/platform-support/x86_64-fortanix-unknown-sgx.md b/src/doc/rustc/src/platform-support/x86_64_fortanix_unknown_sgx.md similarity index 100% rename from src/doc/rustc/src/platform-support/x86_64-fortanix-unknown-sgx.md rename to src/doc/rustc/src/platform-support/x86_64_fortanix_unknown_sgx.md diff --git a/src/doc/rustc/src/platform-support/x86_64-unknown-none.md b/src/doc/rustc/src/platform-support/x86_64_unknown_none.md similarity index 100% rename from src/doc/rustc/src/platform-support/x86_64-unknown-none.md rename to src/doc/rustc/src/platform-support/x86_64_unknown_none.md From 484764136fcf824a39de1fd135e7b3c66def77f7 Mon Sep 17 00:00:00 2001 From: David Wood Date: Wed, 13 Sep 2023 15:00:06 +0100 Subject: [PATCH 140/145] tidy: add lint for target policy compliance Checks that each target has an assembly test and that it has a platform support document. Signed-off-by: David Wood --- src/tools/tidy/src/lib.rs | 1 + src/tools/tidy/src/main.rs | 1 + src/tools/tidy/src/target_policy.rs | 54 +++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 src/tools/tidy/src/target_policy.rs diff --git a/src/tools/tidy/src/lib.rs b/src/tools/tidy/src/lib.rs index fc69c1432227e..867f895f968e2 100644 --- a/src/tools/tidy/src/lib.rs +++ b/src/tools/tidy/src/lib.rs @@ -66,6 +66,7 @@ pub mod pal; pub mod rustdoc_css_themes; pub mod rustdoc_gui_tests; pub mod style; +pub mod target_policy; pub mod target_specific_tests; pub mod tests_placement; pub mod ui_tests; diff --git a/src/tools/tidy/src/main.rs b/src/tools/tidy/src/main.rs index 80e58ba00fc2f..35c0e41d80c92 100644 --- a/src/tools/tidy/src/main.rs +++ b/src/tools/tidy/src/main.rs @@ -109,6 +109,7 @@ fn main() { // Checks that only make sense for the compiler. check!(error_codes, &root_path, &[&compiler_path, &librustdoc_path], verbose); check!(fluent_alphabetical, &compiler_path, bless); + check!(target_policy, &root_path); // Checks that only make sense for the std libs. check!(pal, &library_path); diff --git a/src/tools/tidy/src/target_policy.rs b/src/tools/tidy/src/target_policy.rs new file mode 100644 index 0000000000000..244ad2ea0f551 --- /dev/null +++ b/src/tools/tidy/src/target_policy.rs @@ -0,0 +1,54 @@ +//! Tidy check to check that for each target in `compiler/rustc_target/src/spec/`, there is +//! documentation in `src/doc/rustc/src/platform-support/` and an assembly test in +//! `tests/assembly/targets`. + +use crate::walk::filter_not_rust; +use std::path::Path; + +const TARGET_DEFINITIONS_PATH: &str = "compiler/rustc_target/src/spec/"; +const TARGET_DOCS_PATH: &str = "src/doc/rustc/src/platform-support/"; +const TARGET_TESTS_PATH: &str = "tests/assembly/targets/"; + +const SKIPPED_FILES: &[&str] = &["base", "tests", "mod.rs", "abi.rs", "crt_objects.rs"]; + +pub fn check(root_path: &Path, bad: &mut bool) { + let definitions_path = root_path.join(TARGET_DEFINITIONS_PATH); + for defn in ignore::WalkBuilder::new(&definitions_path) + .max_depth(Some(1)) + .filter_entry(|e| { + !filter_not_rust(e.path()) && !SKIPPED_FILES.contains(&e.file_name().to_str().unwrap()) + }) + .build() + { + let defn = defn.unwrap(); + // `WalkBuilder` always visits the directory at the root of the walk first, regardless + // of the filters. + if defn.path() == definitions_path { + continue; + } + + let path = defn.path(); + let name = path.file_name().unwrap().to_str().unwrap(); + let name_no_ext = path.file_stem().unwrap().to_str().unwrap(); + + let test_path = root_path.join(TARGET_TESTS_PATH).join(&name); + if !test_path.exists() { + tidy_error!( + bad, + "target `{}` is missing test at `{}`", + name_no_ext, + test_path.display() + ); + } + + let doc_path = root_path.join(TARGET_DOCS_PATH).join(&name_no_ext).with_extension("md"); + if !doc_path.exists() { + tidy_error!( + bad, + "target `{}` is missing platform support doc at `{}`", + name_no_ext, + doc_path.display() + ); + } + } +} From 674ccbbfe42abdd94328f712b33b6641c964b28a Mon Sep 17 00:00:00 2001 From: David Wood Date: Wed, 13 Sep 2023 17:08:25 +0100 Subject: [PATCH 141/145] doc/rustc: every target has its own page For each target file in `compiler/rustc_target/src/spec`, we want to expect a platform support document to exist at `src/doc/rustc/src/platform-support` with the same name (with a `md` extension instead of `rs`). To enable this, make every target have its own platform support file, and where previously one file was used for multiple targets, just use symlinks for all but one of the files. Signed-off-by: David Wood --- src/doc/rustc/src/platform-support.md | 260 +++++++++--------- ..._macabi.md => aarch64_apple_ios_macabi.md} | 0 .../{apple_tvos.md => aarch64_apple_tvos.md} | 0 .../aarch64_apple_watchos_sim.md | 1 + .../aarch64_be_unknown_netbsd.md | 1 + .../src/platform-support/aarch64_fuchsia.md | 1 + .../aarch64_kmc_solid_asp3.md | 1 + .../platform-support/aarch64_linux_android.md | 1 + .../aarch64_pc_windows_gnullvm.md | 1 + .../aarch64_pc_windows_msvc.md | 1 + .../aarch64_unknown_freebsd.md | 1 + ...{fuchsia.md => aarch64_unknown_fuchsia.md} | 0 .../aarch64_unknown_hermit.md | 1 + ...rmony.md => aarch64_unknown_linux_ohos.md} | 0 .../{netbsd.md => aarch64_unknown_netbsd.md} | 0 .../aarch64_unknown_none_softfloat.md | 1 + .../aarch64_unknown_nto_qnx710.md | 1 + .../aarch64_unknown_openbsd.md | 1 + .../platform-support/aarch64_unknown_uefi.md | 1 + .../aarch64_uwp_windows_msvc.md | 1 + .../platform-support/aarch64_wrs_vxworks.md | 1 + ...e_watchos.md => arm64_32_apple_watchos.md} | 0 .../{android.md => arm_linux_androideabi.md} | 0 .../arm_unknown_linux_gnueabi.md | 1 + .../arm_unknown_linux_gnueabihf.md | 1 + ...linux.md => arm_unknown_linux_musleabi.md} | 0 .../arm_unknown_linux_musleabihf.md | 1 + .../platform-support/armebv7r_none_eabi.md | 1 + .../{armv7r.md => armebv7r_none_eabihf.md} | 0 .../src/platform-support/armv4t_none_eabi.md | 64 +---- .../src/platform-support/armv5te_none_eabi.md | 67 +---- .../platform-support/armv6_unknown_freebsd.md | 1 + .../armv6_unknown_netbsd_eabihf.md | 1 + .../armv7_linux_androideabi.md | 1 + .../platform-support/armv7_unknown_freebsd.md | 1 + .../armv7_unknown_linux_gnueabi.md | 29 ++ .../armv7_unknown_linux_gnueabihf.md | 30 +- ...nux.md => armv7_unknown_linux_musleabi.md} | 0 .../armv7_unknown_linux_musleabihf.md | 1 + .../armv7_unknown_linux_ohos.md | 1 + .../armv7_unknown_netbsd_eabihf.md | 1 + ...vxworks.md => armv7_wrs_vxworks_eabihf.md} | 0 ...solid.md => armv7a_kmc_solid_asp3_eabi.md} | 0 .../armv7a_kmc_solid_asp3_eabihf.md | 1 + .../platform-support/armv7k_apple_watchos.md | 1 + .../src/platform-support/armv7r_none_eabi.md | 1 + .../platform-support/armv7r_none_eabihf.md | 1 + .../{avr.md => avr_unknown_gnu_atmega328.md} | 0 .../platform-support/bpfeb_unknown_none.md | 1 + .../{bpf.md => bpfel_unknown_none.md} | 0 .../{nto_qnx.md => i586_pc_nto_qnx700.md} | 0 .../platform-support/i586_pc_windows_msvc.md | 1 + .../platform-support/i686_linux_android.md | 1 + ..._gnullvm.md => i686_pc_windows_gnullvm.md} | 0 .../platform-support/i686_pc_windows_msvc.md | 1 + .../{freebsd.md => i686_unknown_freebsd.md} | 0 .../{haiku.md => i686_unknown_haiku.md} | 0 .../platform-support/i686_unknown_netbsd.md | 1 + .../platform-support/i686_unknown_openbsd.md | 1 + .../{unknown_uefi.md => i686_unknown_uefi.md} | 0 .../platform-support/i686_uwp_windows_gnu.md | 1 + .../platform-support/i686_uwp_windows_msvc.md | 1 + .../src/platform-support/i686_wrs_vxworks.md | 1 + ...ux.md => loongarch64_unknown_linux_gnu.md} | 0 .../loongarch64_unknown_none.md | 1 + ... => loongarch64_unknown_none_softfloat.md} | 0 .../mips64_unknown_linux_gnuabi64.md | 30 +- .../mips64_unknown_linux_muslabi64.md | 1 + .../mips64el_unknown_linux_gnuabi64.md | 29 ++ ...md => mips64el_unknown_linux_muslabi64.md} | 0 .../mips_unknown_linux_musl.md | 30 +- .../mipsel_unknown_linux_gnu.md | 1 + .../mipsel_unknown_linux_musl.md | 29 ++ .../mipsisa32r6_unknown_linux_gnu.md | 1 + .../mipsisa32r6el_unknown_linux_gnu.md | 1 + ... => mipsisa64r6_unknown_linux_gnuabi64.md} | 0 .../mipsisa64r6el_unknown_linux_gnuabi64.md | 1 + .../powerpc64_unknown_freebsd.md | 1 + .../powerpc64_unknown_linux_gnu.md | 30 +- .../powerpc64_unknown_openbsd.md | 1 + .../platform-support/powerpc64_wrs_vxworks.md | 1 + .../powerpc64le_unknown_freebsd.md | 1 + .../powerpc64le_unknown_linux_gnu.md | 29 ++ .../powerpc_unknown_freebsd.md | 1 + .../powerpc_unknown_netbsd.md | 1 + .../powerpc_unknown_openbsd.md | 1 + .../platform-support/powerpc_wrs_vxworks.md | 1 + .../powerpc_wrs_vxworks_spe.md | 1 + ...usl.md => riscv32gc_unknown_linux_musl.md} | 0 .../{esp_idf.md => riscv32imac_esp_espidf.md} | 0 .../platform-support/riscv32imc_esp_espidf.md | 1 + .../platform-support/riscv64_linux_android.md | 1 + .../riscv64gc_unknown_freebsd.md | 1 + .../riscv64gc_unknown_fuchsia.md | 1 + .../riscv64gc_unknown_hermit.md | 1 + .../riscv64gc_unknown_linux_musl.md | 1 + .../riscv64gc_unknown_netbsd.md | 1 + ...penbsd.md => riscv64gc_unknown_openbsd.md} | 0 .../sparc64_unknown_netbsd.md | 1 + .../sparc64_unknown_openbsd.md | 1 + .../platform-support/thumbv4t_none_eabi.md | 63 +++++ .../platform-support/thumbv5te_none_eabi.md | 66 +++++ .../thumbv7a_pc_windows_msvc.md | 1 + ...s_msvc.md => thumbv7a_uwp_windows_msvc.md} | 0 .../platform-support/thumbv7em_none_eabi.md | 1 + ...umbv7_none.md => thumbv7em_none_eabihf.md} | 0 .../platform-support/thumbv7m_none_eabi.md | 1 + .../thumbv7neon_linux_androideabi.md | 1 + ...one_eabi.md => thumbv8m_base_none_eabi.md} | 0 ...v8m.main.md => thumbv8m_main_none_eabi.md} | 0 .../thumbv8m_main_none_eabihf.md | 1 + .../x86_64_apple_ios_macabi.md | 1 + .../src/platform-support/x86_64_apple_tvos.md | 1 + .../x86_64_apple_watchos_sim.md | 1 + .../src/platform-support/x86_64_fuchsia.md | 1 + .../platform-support/x86_64_linux_android.md | 1 + .../platform-support/x86_64_pc_nto_qnx710.md | 1 + .../x86_64_pc_windows_gnullvm.md | 1 + .../x86_64_pc_windows_msvc.md | 1 + ..._musl.md => x86_64_unikraft_linux_musl.md} | 0 .../x86_64_unknown_freebsd.md | 1 + .../x86_64_unknown_fuchsia.md | 1 + .../platform-support/x86_64_unknown_haiku.md | 1 + .../{hermit.md => x86_64_unknown_hermit.md} | 0 .../x86_64_unknown_linux_ohos.md | 1 + .../platform-support/x86_64_unknown_netbsd.md | 1 + .../x86_64_unknown_openbsd.md | 1 + .../platform-support/x86_64_unknown_uefi.md | 1 + ...ndows_gnu.md => x86_64_uwp_windows_gnu.md} | 0 .../x86_64_uwp_windows_msvc.md | 1 + .../platform-support/x86_64_wrs_vxworks.md | 1 + 131 files changed, 466 insertions(+), 375 deletions(-) rename src/doc/rustc/src/platform-support/{apple_ios_macabi.md => aarch64_apple_ios_macabi.md} (100%) rename src/doc/rustc/src/platform-support/{apple_tvos.md => aarch64_apple_tvos.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/aarch64_apple_watchos_sim.md create mode 120000 src/doc/rustc/src/platform-support/aarch64_be_unknown_netbsd.md create mode 120000 src/doc/rustc/src/platform-support/aarch64_fuchsia.md create mode 120000 src/doc/rustc/src/platform-support/aarch64_kmc_solid_asp3.md create mode 120000 src/doc/rustc/src/platform-support/aarch64_linux_android.md create mode 120000 src/doc/rustc/src/platform-support/aarch64_pc_windows_gnullvm.md create mode 120000 src/doc/rustc/src/platform-support/aarch64_pc_windows_msvc.md create mode 120000 src/doc/rustc/src/platform-support/aarch64_unknown_freebsd.md rename src/doc/rustc/src/platform-support/{fuchsia.md => aarch64_unknown_fuchsia.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/aarch64_unknown_hermit.md rename src/doc/rustc/src/platform-support/{openharmony.md => aarch64_unknown_linux_ohos.md} (100%) rename src/doc/rustc/src/platform-support/{netbsd.md => aarch64_unknown_netbsd.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/aarch64_unknown_none_softfloat.md create mode 120000 src/doc/rustc/src/platform-support/aarch64_unknown_nto_qnx710.md create mode 120000 src/doc/rustc/src/platform-support/aarch64_unknown_openbsd.md create mode 120000 src/doc/rustc/src/platform-support/aarch64_unknown_uefi.md create mode 120000 src/doc/rustc/src/platform-support/aarch64_uwp_windows_msvc.md create mode 120000 src/doc/rustc/src/platform-support/aarch64_wrs_vxworks.md rename src/doc/rustc/src/platform-support/{apple_watchos.md => arm64_32_apple_watchos.md} (100%) rename src/doc/rustc/src/platform-support/{android.md => arm_linux_androideabi.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/arm_unknown_linux_gnueabi.md create mode 120000 src/doc/rustc/src/platform-support/arm_unknown_linux_gnueabihf.md rename src/doc/rustc/src/platform-support/{arm_unknown_linux.md => arm_unknown_linux_musleabi.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/arm_unknown_linux_musleabihf.md create mode 120000 src/doc/rustc/src/platform-support/armebv7r_none_eabi.md rename src/doc/rustc/src/platform-support/{armv7r.md => armebv7r_none_eabihf.md} (100%) mode change 100644 => 120000 src/doc/rustc/src/platform-support/armv4t_none_eabi.md mode change 100644 => 120000 src/doc/rustc/src/platform-support/armv5te_none_eabi.md create mode 120000 src/doc/rustc/src/platform-support/armv6_unknown_freebsd.md create mode 120000 src/doc/rustc/src/platform-support/armv6_unknown_netbsd_eabihf.md create mode 120000 src/doc/rustc/src/platform-support/armv7_linux_androideabi.md create mode 120000 src/doc/rustc/src/platform-support/armv7_unknown_freebsd.md create mode 100644 src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabi.md mode change 100644 => 120000 src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabihf.md rename src/doc/rustc/src/platform-support/{armv7_unknown_linux.md => armv7_unknown_linux_musleabi.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/armv7_unknown_linux_musleabihf.md create mode 120000 src/doc/rustc/src/platform-support/armv7_unknown_linux_ohos.md create mode 120000 src/doc/rustc/src/platform-support/armv7_unknown_netbsd_eabihf.md rename src/doc/rustc/src/platform-support/{vxworks.md => armv7_wrs_vxworks_eabihf.md} (100%) rename src/doc/rustc/src/platform-support/{kmc_solid.md => armv7a_kmc_solid_asp3_eabi.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/armv7a_kmc_solid_asp3_eabihf.md create mode 120000 src/doc/rustc/src/platform-support/armv7k_apple_watchos.md create mode 120000 src/doc/rustc/src/platform-support/armv7r_none_eabi.md create mode 120000 src/doc/rustc/src/platform-support/armv7r_none_eabihf.md rename src/doc/rustc/src/platform-support/{avr.md => avr_unknown_gnu_atmega328.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/bpfeb_unknown_none.md rename src/doc/rustc/src/platform-support/{bpf.md => bpfel_unknown_none.md} (100%) rename src/doc/rustc/src/platform-support/{nto_qnx.md => i586_pc_nto_qnx700.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/i586_pc_windows_msvc.md create mode 120000 src/doc/rustc/src/platform-support/i686_linux_android.md rename src/doc/rustc/src/platform-support/{pc_windows_gnullvm.md => i686_pc_windows_gnullvm.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/i686_pc_windows_msvc.md rename src/doc/rustc/src/platform-support/{freebsd.md => i686_unknown_freebsd.md} (100%) rename src/doc/rustc/src/platform-support/{haiku.md => i686_unknown_haiku.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/i686_unknown_netbsd.md create mode 120000 src/doc/rustc/src/platform-support/i686_unknown_openbsd.md rename src/doc/rustc/src/platform-support/{unknown_uefi.md => i686_unknown_uefi.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/i686_uwp_windows_gnu.md create mode 120000 src/doc/rustc/src/platform-support/i686_uwp_windows_msvc.md create mode 120000 src/doc/rustc/src/platform-support/i686_wrs_vxworks.md rename src/doc/rustc/src/platform-support/{loongarch_linux.md => loongarch64_unknown_linux_gnu.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/loongarch64_unknown_none.md rename src/doc/rustc/src/platform-support/{loongarch_none.md => loongarch64_unknown_none_softfloat.md} (100%) mode change 100644 => 120000 src/doc/rustc/src/platform-support/mips64_unknown_linux_gnuabi64.md create mode 120000 src/doc/rustc/src/platform-support/mips64_unknown_linux_muslabi64.md create mode 100644 src/doc/rustc/src/platform-support/mips64el_unknown_linux_gnuabi64.md rename src/doc/rustc/src/platform-support/{mips64_unknown_linux_musl.md => mips64el_unknown_linux_muslabi64.md} (100%) mode change 100644 => 120000 src/doc/rustc/src/platform-support/mips_unknown_linux_musl.md create mode 120000 src/doc/rustc/src/platform-support/mipsel_unknown_linux_gnu.md create mode 100644 src/doc/rustc/src/platform-support/mipsel_unknown_linux_musl.md create mode 120000 src/doc/rustc/src/platform-support/mipsisa32r6_unknown_linux_gnu.md create mode 120000 src/doc/rustc/src/platform-support/mipsisa32r6el_unknown_linux_gnu.md rename src/doc/rustc/src/platform-support/{mips_release_6.md => mipsisa64r6_unknown_linux_gnuabi64.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/mipsisa64r6el_unknown_linux_gnuabi64.md create mode 120000 src/doc/rustc/src/platform-support/powerpc64_unknown_freebsd.md mode change 100644 => 120000 src/doc/rustc/src/platform-support/powerpc64_unknown_linux_gnu.md create mode 120000 src/doc/rustc/src/platform-support/powerpc64_unknown_openbsd.md create mode 120000 src/doc/rustc/src/platform-support/powerpc64_wrs_vxworks.md create mode 120000 src/doc/rustc/src/platform-support/powerpc64le_unknown_freebsd.md create mode 100644 src/doc/rustc/src/platform-support/powerpc64le_unknown_linux_gnu.md create mode 120000 src/doc/rustc/src/platform-support/powerpc_unknown_freebsd.md create mode 120000 src/doc/rustc/src/platform-support/powerpc_unknown_netbsd.md create mode 120000 src/doc/rustc/src/platform-support/powerpc_unknown_openbsd.md create mode 120000 src/doc/rustc/src/platform-support/powerpc_wrs_vxworks.md create mode 120000 src/doc/rustc/src/platform-support/powerpc_wrs_vxworks_spe.md rename src/doc/rustc/src/platform-support/{riscvgc_unknown_linux_musl.md => riscv32gc_unknown_linux_musl.md} (100%) rename src/doc/rustc/src/platform-support/{esp_idf.md => riscv32imac_esp_espidf.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/riscv32imc_esp_espidf.md create mode 120000 src/doc/rustc/src/platform-support/riscv64_linux_android.md create mode 120000 src/doc/rustc/src/platform-support/riscv64gc_unknown_freebsd.md create mode 120000 src/doc/rustc/src/platform-support/riscv64gc_unknown_fuchsia.md create mode 120000 src/doc/rustc/src/platform-support/riscv64gc_unknown_hermit.md create mode 120000 src/doc/rustc/src/platform-support/riscv64gc_unknown_linux_musl.md create mode 120000 src/doc/rustc/src/platform-support/riscv64gc_unknown_netbsd.md rename src/doc/rustc/src/platform-support/{openbsd.md => riscv64gc_unknown_openbsd.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/sparc64_unknown_netbsd.md create mode 120000 src/doc/rustc/src/platform-support/sparc64_unknown_openbsd.md create mode 100644 src/doc/rustc/src/platform-support/thumbv4t_none_eabi.md create mode 100644 src/doc/rustc/src/platform-support/thumbv5te_none_eabi.md create mode 120000 src/doc/rustc/src/platform-support/thumbv7a_pc_windows_msvc.md rename src/doc/rustc/src/platform-support/{windows_msvc.md => thumbv7a_uwp_windows_msvc.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/thumbv7em_none_eabi.md rename src/doc/rustc/src/platform-support/{thumbv7_none.md => thumbv7em_none_eabihf.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/thumbv7m_none_eabi.md create mode 120000 src/doc/rustc/src/platform-support/thumbv7neon_linux_androideabi.md rename src/doc/rustc/src/platform-support/{thumbv8m.base_none_eabi.md => thumbv8m_base_none_eabi.md} (100%) rename src/doc/rustc/src/platform-support/{thumbv8m.main.md => thumbv8m_main_none_eabi.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/thumbv8m_main_none_eabihf.md create mode 120000 src/doc/rustc/src/platform-support/x86_64_apple_ios_macabi.md create mode 120000 src/doc/rustc/src/platform-support/x86_64_apple_tvos.md create mode 120000 src/doc/rustc/src/platform-support/x86_64_apple_watchos_sim.md create mode 120000 src/doc/rustc/src/platform-support/x86_64_fuchsia.md create mode 120000 src/doc/rustc/src/platform-support/x86_64_linux_android.md create mode 120000 src/doc/rustc/src/platform-support/x86_64_pc_nto_qnx710.md create mode 120000 src/doc/rustc/src/platform-support/x86_64_pc_windows_gnullvm.md create mode 120000 src/doc/rustc/src/platform-support/x86_64_pc_windows_msvc.md rename src/doc/rustc/src/platform-support/{unikraft_linux_musl.md => x86_64_unikraft_linux_musl.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/x86_64_unknown_freebsd.md create mode 120000 src/doc/rustc/src/platform-support/x86_64_unknown_fuchsia.md create mode 120000 src/doc/rustc/src/platform-support/x86_64_unknown_haiku.md rename src/doc/rustc/src/platform-support/{hermit.md => x86_64_unknown_hermit.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/x86_64_unknown_linux_ohos.md create mode 120000 src/doc/rustc/src/platform-support/x86_64_unknown_netbsd.md create mode 120000 src/doc/rustc/src/platform-support/x86_64_unknown_openbsd.md create mode 120000 src/doc/rustc/src/platform-support/x86_64_unknown_uefi.md rename src/doc/rustc/src/platform-support/{uwp_windows_gnu.md => x86_64_uwp_windows_gnu.md} (100%) create mode 120000 src/doc/rustc/src/platform-support/x86_64_uwp_windows_msvc.md create mode 120000 src/doc/rustc/src/platform-support/x86_64_wrs_vxworks.md diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index a30d6f02ec7fa..c947df0de957b 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -34,11 +34,11 @@ target | notes -------|------- [`aarch64-unknown-linux-gnu`](platform-support/aarch64_unknown_linux_gnu.md) | ARM64 Linux (kernel 4.1, glibc 2.17+) [^missing-stack-probes] [`i686-pc-windows-gnu`](platform-support/i686_pc_windows_gnu.md) | 32-bit MinGW (Windows 7+) [^windows-support] -[`i686-pc-windows-msvc`](platform-support/windows_msvc.md) | 32-bit MSVC (Windows 7+) [^windows-support] +[`i686-pc-windows-msvc`](platform-support/i686_pc_windows_msvc.md) | 32-bit MSVC (Windows 7+) [^windows-support] [`i686-unknown-linux-gnu`](platform-support/i686_unknown_linux_gnu.md) | 32-bit Linux (kernel 3.2+, glibc 2.17+) [`x86_64-apple-darwin`](platform-support/x86_64_apple_darwin.md) | 64-bit macOS (10.7+, Lion+) [`x86_64-pc-windows-gnu`](platform-support/x86_64_pc_windows_gnu.md) | 64-bit MinGW (Windows 7+) [^windows-support] -[`x86_64-pc-windows-msvc`](platform-support/windows_msvc.md) | 64-bit MSVC (Windows 7+) [^windows-support] +[`x86_64-pc-windows-msvc`](platform-support/x86_64_pc_windows_msvc.md) | 64-bit MSVC (Windows 7+) [^windows-support] [`x86_64-unknown-linux-gnu`](platform-support/x86_64_unknown_linux_gnu.md) | 64-bit Linux (kernel 3.2+, glibc 2.17+) [^missing-stack-probes]: Stack probes support is missing on @@ -84,25 +84,25 @@ so Rustup may install the documentation for a similar tier 1 target instead. target | notes -------|------- [`aarch64-apple-darwin`](platform-support/aarch64_apple_darwin.md) | ARM64 macOS (11.0+, Big Sur+) -[`aarch64-pc-windows-msvc`](platform-support/windows_msvc.md) | ARM64 Windows MSVC +[`aarch64-pc-windows-msvc`](platform-support/aarch64_pc_windows_msvc.md) | ARM64 Windows MSVC [`aarch64-unknown-linux-musl`](platform-support/aarch64_unknown_linux_musl.md) | ARM64 Linux with MUSL -[`arm-unknown-linux-gnueabi`](platform-support/arm_unknown_linux.md) | ARMv6 Linux (kernel 3.2, glibc 2.17) -[`arm-unknown-linux-gnueabihf`](platform-support/arm_unknown_linux.md) | ARMv6 Linux, hardfloat (kernel 3.2, glibc 2.17) +[`arm-unknown-linux-gnueabi`](platform-support/arm_unknown_linux_gnueabi.md) | ARMv6 Linux (kernel 3.2, glibc 2.17) +[`arm-unknown-linux-gnueabihf`](platform-support/arm_unknown_linux_gnueabihf.md) | ARMv6 Linux, hardfloat (kernel 3.2, glibc 2.17) [`armv7-unknown-linux-gnueabihf`](platform-support/armv7_unknown_linux_gnueabihf.md) | ARMv7-A Linux, hardfloat (kernel 3.2, glibc 2.17) -[`loongarch64-unknown-linux-gnu`](platform-support/loongarch_linux.md) | LoongArch64 Linux, LP64D ABI (kernel 5.19, glibc 2.36) +[`loongarch64-unknown-linux-gnu`](platform-support/loongarch64_unknown_linux_gnu.md) | LoongArch64 Linux, LP64D ABI (kernel 5.19, glibc 2.36) [`mips-unknown-linux-gnu`](platform-support/mips_unknown_linux_gnu.md) | MIPS Linux (kernel 4.4, glibc 2.23) -[`mips64-unknown-linux-gnuabi64`](platform-support/mips64-unknown-linux-gnuabi64.md) | MIPS64 Linux, n64 ABI (kernel 4.4, glibc 2.23) -[`mips64el-unknown-linux-gnuabi64`](platform-support/mips64_unknown_linux_gnuabi64.md) | MIPS64 (LE) Linux, n64 ABI (kernel 4.4, glibc 2.23) -[`mipsel-unknown-linux-gnu`](platform-support/mipsel-unknown-linux-gnu.md) | MIPS (LE) Linux (kernel 4.4, glibc 2.23) +[`mips64-unknown-linux-gnuabi64`](platform-support/mips64_unknown_linux_gnuabi64.md) | MIPS64 Linux, n64 ABI (kernel 4.4, glibc 2.23) +[`mips64el-unknown-linux-gnuabi64`](platform-support/mips64el_unknown_linux_gnuabi64.md) | MIPS64 (LE) Linux, n64 ABI (kernel 4.4, glibc 2.23) +[`mipsel-unknown-linux-gnu`](platform-support/mipsel_unknown_linux_gnu.md) | MIPS (LE) Linux (kernel 4.4, glibc 2.23) [`powerpc-unknown-linux-gnu`](platform-support/powerpc_unknown_linux_gnu.md) | PowerPC Linux (kernel 3.2, glibc 2.17) [`powerpc64-unknown-linux-gnu`](platform-support/powerpc64_unknown_linux_gnu.md) | PPC64 Linux (kernel 3.2, glibc 2.17) -[`powerpc64le-unknown-linux-gnu`](platform-support/powerpc64_unknown_linux_gnu.md) | PPC64LE Linux (kernel 3.10, glibc 2.17) +[`powerpc64le-unknown-linux-gnu`](platform-support/powerpc64le_unknown_linux_gnu.md) | PPC64LE Linux (kernel 3.10, glibc 2.17) [`riscv64gc-unknown-linux-gnu`](platform-support/riscv64gc_unknown_linux_gnu.md) | RISC-V Linux (kernel 4.20, glibc 2.29) [`s390x-unknown-linux-gnu`](platform-support/s390x_unknown_linux_gnu.md) | S390x Linux (kernel 3.2, glibc 2.17) -[`x86_64-unknown-freebsd`](platform-support/freebsd.md) | 64-bit FreeBSD +[`x86_64-unknown-freebsd`](platform-support/x86_64_unknown_freebsd.md) | 64-bit FreeBSD [`x86_64-unknown-illumos`](platform-support/x86_64_unknown_illumos.md) | illumos [`x86_64-unknown-linux-musl`](platform-support/x86_64_unknown_linux_musl.md) | 64-bit Linux with MUSL -[`x86_64-unknown-netbsd`](platform-support/netbsd.md) | NetBSD/amd64 +[`x86_64-unknown-netbsd`](platform-support/x86_64_unknown_netbsd.md) | NetBSD/amd64 ## Tier 2 without Host Tools @@ -129,38 +129,38 @@ target | std | notes -------|:---:|------- [`aarch64-apple-ios`](platform-support/aarch64_apple_ios.md) | ✓ | ARM64 iOS [`aarch64-apple-ios-sim`](platform-support/aarch64_apple_ios_sim.md) | ✓ | Apple iOS Simulator on ARM64 -[`aarch64-fuchsia`](platform-support/fuchsia.md) | ✓ | Alias for `aarch64-unknown-fuchsia` -[`aarch64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | ARM64 Fuchsia -[`aarch64-linux-android`](platform-support/android.md) | ✓ | ARM64 Android -[`aarch64-unknown-none-softfloat`](platform-support/aarch64-unknown-none-softfloat.md) | * | Bare ARM64, softfloat +[`aarch64-fuchsia`](platform-support/aarch64_fuchsia.md) | ✓ | Alias for `aarch64-unknown-fuchsia` +[`aarch64-unknown-fuchsia`](platform-support/riscv64gc_unknown_fuchsia.md) | ✓ | ARM64 Fuchsia +[`aarch64-linux-android`](platform-support/aarch64_linux_android.md) | ✓ | ARM64 Android +[`aarch64-unknown-none-softfloat`](platform-support/aarch64_unknown_none_softfloat.md) | * | Bare ARM64, softfloat [`aarch64-unknown-none`](platform-support/aarch64_unknown_none.md) | * | Bare ARM64, hardfloat -[`aarch64-unknown-uefi`](platform-support/unknown_uefi.md) | * | ARM64 UEFI -[`arm-linux-androideabi`](platform-support/android.md) | ✓ | ARMv6 Android -[`arm-unknown-linux-musleabi`](platform-support/arm_unknown_linux.md) | ✓ | ARMv6 Linux with MUSL -[`arm-unknown-linux-musleabihf`](platform-support/arm_unknown_linux.md) | ✓ | ARMv6 Linux with MUSL, hardfloat -[`armebv7r-none-eabi`](platform-support/armv7r.md) | * | Bare ARMv7-R, big endian -[`armebv7r-none-eabihf`](platform-support/armv7r.md) | * | Bare ARMv7-R, big endian, hardfloat +[`aarch64-unknown-uefi`](platform-support/aarch64_unknown_uefi.md) | * | ARM64 UEFI +[`arm-linux-androideabi`](platform-support/arm_linux_androideabi.md) | ✓ | ARMv6 Android +[`arm-unknown-linux-musleabi`](platform-support/arm_unknown_linux_musleabi.md) | ✓ | ARMv6 Linux with MUSL +[`arm-unknown-linux-musleabihf`](platform-support/arm_unknown_linux_musleabihf.md) | ✓ | ARMv6 Linux with MUSL, hardfloat +[`armebv7r-none-eabi`](platform-support/armebv7r_none_eabi.md) | * | Bare ARMv7-R, big endian +[`armebv7r-none-eabihf`](platform-support/armebv7r_none_eabihf.md) | * | Bare ARMv7-R, big endian, hardfloat [`armv5te-unknown-linux-gnueabi`](platform-support/armv5te_unknown_linux_gnueabi.md) | ✓ | ARMv5TE Linux (kernel 4.4, glibc 2.23) [`armv5te-unknown-linux-musleabi`](platform-support/armv5te_unknown_linux_musleabi.md) | ✓ | ARMv5TE Linux with MUSL -[`armv7-linux-androideabi`](platform-support/android.md) | ✓ | ARMv7-A Android -[`armv7-unknown-linux-gnueabi`](platform-support/armv7_unknown_linux.md) | ✓ | ARMv7-A Linux (kernel 4.15, glibc 2.27) -[`armv7-unknown-linux-musleabi`](platform-support/armv7_unknown_linux.md) | ✓ | ARMv7-A Linux with MUSL -[`armv7-unknown-linux-musleabihf`](platform-support/armv7_unknown_linux.md) | ✓ | ARMv7-A Linux with MUSL, hardfloat +[`armv7-linux-androideabi`](platform-support/armv7_linux_androideabi.md) | ✓ | ARMv7-A Android +[`armv7-unknown-linux-gnueabi`](platform-support/armv7_unknown_linux_musleabihf.md) | ✓ | ARMv7-A Linux (kernel 4.15, glibc 2.27) +[`armv7-unknown-linux-musleabi`](platform-support/armv7_unknown_linux_musleabi.md) | ✓ | ARMv7-A Linux with MUSL +[`armv7-unknown-linux-musleabihf`](platform-support/armv7_unknown_linux_musleabihf.md) | ✓ | ARMv7-A Linux with MUSL, hardfloat [`armv7a-none-eabi`](platform-support/armv7a_none_eabi.md) | * | Bare ARMv7-A -[`armv7r-none-eabi`](platform-support/armv7r.md) | * | Bare ARMv7-R -[`armv7r-none-eabihf`](platform-support/armv7r.md) | * | Bare ARMv7-R, hardfloat +[`armv7r-none-eabi`](platform-support/armv7r_none_eabi.md) | * | Bare ARMv7-R +[`armv7r-none-eabihf`](platform-support/armv7r_none_eabihf.md) | * | Bare ARMv7-R, hardfloat [`asmjs-unknown-emscripten`](platform-support/asmjs_unknown_emscripten.md) | ✓ | asm.js via Emscripten -[`i586-pc-windows-msvc`](platform-support/windows_msvc.md) | * | 32-bit Windows w/o SSE +[`i586-pc-windows-msvc`](platform-support/i586_pc_windows_msvc.md) | * | 32-bit Windows w/o SSE [`i586-unknown-linux-gnu`](platform-support/i586_unknown_linux_gnu.md) | ✓ | 32-bit Linux w/o SSE (kernel 3.2, glibc 2.17) [`i586-unknown-linux-musl`](platform-support/i586_unknown_linux_musl.md) | ✓ | 32-bit Linux w/o SSE, MUSL -[`i686-linux-android`](platform-support/android.md) | ✓ | 32-bit x86 Android -[`i686-unknown-freebsd`](platform-support/freebsd.md) | ✓ | 32-bit FreeBSD +[`i686-linux-android`](platform-support/i686_linux_android.md) | ✓ | 32-bit x86 Android +[`i686-unknown-freebsd`](platform-support/i686_unknown_freebsd.md) | ✓ | 32-bit FreeBSD [`i686-unknown-linux-musl`](platform-support/i686_unknown_linux_musl.md) | ✓ | 32-bit Linux with MUSL -[`i686-unknown-uefi`](platform-support/unknown_uefi.md) | * | 32-bit UEFI +[`i686-unknown-uefi`](platform-support/i686_unknown_uefi.md) | * | 32-bit UEFI [`mips-unknown-linux-musl`](platform-support/mips_unknown_linux_musl.md) | ✓ | MIPS Linux with MUSL -[`mips64-unknown-linux-muslabi64`](platform-support/mips64-unknown-linux-muslabi64.md) | ✓ | MIPS64 Linux, n64 ABI, MUSL -[`mips64el-unknown-linux-muslabi64`](platform-support/mips64el-unknown-linux-muslabi64.md) | ✓ | MIPS64 (LE) Linux, n64 ABI, MUSL -[`mipsel-unknown-linux-musl`](platform-support/mips_unknown_linux_musl.md) | ✓ | MIPS (LE) Linux with MUSL +[`mips64-unknown-linux-muslabi64`](platform-support/mips64_unknown_linux_muslabi64.md) | ✓ | MIPS64 Linux, n64 ABI, MUSL +[`mips64el-unknown-linux-muslabi64`](platform-support/mips64el_unknown_linux_muslabi64.md) | ✓ | MIPS64 (LE) Linux, n64 ABI, MUSL +[`mipsel-unknown-linux-musl`](platform-support/mipsel_unknown_linux_musl.md) | ✓ | MIPS (LE) Linux with MUSL [`nvptx64-nvidia-cuda`](platform-support/nvptx64_nvidia_cuda.md) | * | --emit=asm generates PTX code that [runs on NVIDIA GPUs] [`riscv32i-unknown-none-elf`](platform-support/riscv32i_unknown_none_elf.md) | * | Bare RISC-V (RV32I ISA) [`riscv32imac-unknown-none-elf`](platform-support/riscv32imac_unknown_none_elf.md) | * | Bare RISC-V (RV32IMAC ISA) @@ -170,28 +170,28 @@ target | std | notes [`sparc64-unknown-linux-gnu`](platform-support/sparc64_unknown_linux_gnu.md) | ✓ | SPARC Linux (kernel 4.4, glibc 2.23) [`sparcv9-sun-solaris`](platform-support/sparcv9_sun_solaris.md) | ✓ | SPARC Solaris 10/11, illumos [`thumbv6m-none-eabi`](platform-support/thumbv6m_none_eabi.md) | * | Bare ARMv6-M -[`thumbv7em-none-eabi`](platform-support/thumbv7_none.md) | * | Bare ARMv7E-M -[`thumbv7em-none-eabihf`](platform-support/thumbv7_none.md) | * | Bare ARMV7E-M, hardfloat -[`thumbv7m-none-eabi`](platform-support/thumbv7_none.md) | * | Bare ARMv7-M -[`thumbv7neon-linux-androideabi`](platform-support/android.md) | ✓ | Thumb2-mode ARMv7-A Android with NEON +[`thumbv7em-none-eabi`](platform-support/thumbv7em_none_eabi.md) | * | Bare ARMv7E-M +[`thumbv7em-none-eabihf`](platform-support/thumbv7em_none_eabihf.md) | * | Bare ARMV7E-M, hardfloat +[`thumbv7m-none-eabi`](platform-support/thumbv7m_none_eabi.md) | * | Bare ARMv7-M +[`thumbv7neon-linux-androideabi`](platform-support/thumbv7neon_linux_androideabi.md) | ✓ | Thumb2-mode ARMv7-A Android with NEON [`thumbv7neon-unknown-linux-gnueabihf`](platform-support/thumbv7neon_unknown_linux_gnueabihf.md) | ✓ | Thumb2-mode ARMv7-A Linux with NEON (kernel 4.4, glibc 2.23) -[`thumbv8m.base-none-eabi`](platform-support/thumbv8m.base_none_eabi.md) | * | Bare ARMv8-M Baseline -[`thumbv8m.main-none-eabi`](platform-support/thumbv8m.main.md) | * | Bare ARMv8-M Mainline -[`thumbv8m.main-none-eabihf`](platform-support/thumbv8m.main.md) | * | Bare ARMv8-M Mainline, hardfloat +[`thumbv8m.base-none-eabi`](platform-support/thumbv8m_base_none_eabi.md) | * | Bare ARMv8-M Baseline +[`thumbv8m.main-none-eabi`](platform-support/thumbv8m_main_none_eabi.md) | * | Bare ARMv8-M Mainline +[`thumbv8m.main-none-eabihf`](platform-support/thumbv8m_main_none_eabihf.md) | * | Bare ARMv8-M Mainline, hardfloat [`wasm32-unknown-emscripten`](platform-support/wasm32_unknown_emscripten.md) | ✓ | WebAssembly via Emscripten [`wasm32-unknown-unknown`](platform-support/wasm32_unknown_unknown.md) | ✓ | WebAssembly [`wasm32-wasi`](platform-support/wasm32_wasi.md) | ✓ | WebAssembly with WASI [`wasm32-wasi-preview1-threads`](platform-support/wasm32_wasi_preview1_threads.md) | ✓ | | WebAssembly with WASI Preview 1 and threads [`x86_64-apple-ios`](platform-support/x86_64_apple_ios.md) | ✓ | 64-bit x86 iOS [`x86_64-fortanix-unknown-sgx`](platform-support/x86_64_fortanix_unknown_sgx.md) | ✓ | [Fortanix ABI] for 64-bit Intel SGX -[`x86_64-fuchsia`](platform-support/fuchsia.md) | ✓ | Alias for `x86_64-unknown-fuchsia` -[`x86_64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | 64-bit x86 Fuchsia -[`x86_64-linux-android`](platform-support/android.md) | ✓ | 64-bit x86 Android +[`x86_64-fuchsia`](platform-support/x86_64_fuchsia.md) | ✓ | Alias for `x86_64-unknown-fuchsia` +[`x86_64-unknown-fuchsia`](platform-support/riscv64gc_unknown_fuchsia.md) | ✓ | 64-bit x86 Fuchsia +[`x86_64-linux-android`](platform-support/x86_64_linux_android.md) | ✓ | 64-bit x86 Android [`x86_64-pc-solaris`](platform-support/x86_64_pc_solaris.md) | ✓ | 64-bit Solaris 10/11, illumos [`x86_64-unknown-linux-gnux32`](platform-support/x86_64_unknown_linux_gnux32.md) | ✓ | 64-bit Linux (x32 ABI) (kernel 4.15, glibc 2.27) [`x86_64-unknown-none`](platform-support/x86_64_unknown_none.md) | * | Freestanding/bare-metal x86_64, softfloat [`x86_64-unknown-redox`](platform-support/x86_64_unknown_redox.md) | ✓ | Redox OS -[`x86_64-unknown-uefi`](platform-support/unknown_uefi.md) | * | 64-bit UEFI +[`x86_64-unknown-uefi`](platform-support/x86_64_unknown_uefi.md) | * | 64-bit UEFI [Fortanix ABI]: https://edp.fortanix.com/ @@ -216,65 +216,65 @@ host tools. target | std | host | notes -------|:---:|:----:|------- -[`aarch64-apple-ios-macabi`](platform-support/apple_ios_macabi.md) | ? | | Apple Catalyst on ARM64 -[`aarch64-apple-tvos`](platform-support/apple_tvos.md) | ? | | ARM64 tvOS -[`aarch64-apple-watchos-sim`](platform-support/apple_watchos.md) | ✓ | | ARM64 Apple WatchOS Simulator -[`aarch64-kmc-solid_asp3`](platform-support/kmc_solid.md) | ✓ | | ARM64 SOLID with TOPPERS/ASP3 +[`aarch64-apple-ios-macabi`](platform-support/aarch64_apple_ios_macabi.md) | ? | | Apple Catalyst on ARM64 +[`aarch64-apple-tvos`](platform-support/aarch64_apple_tvos.md) | ? | | ARM64 tvOS +[`aarch64-apple-watchos-sim`](platform-support/aarch64_apple_watchos_sim.md) | ✓ | | ARM64 Apple WatchOS Simulator +[`aarch64-kmc-solid_asp3`](platform-support/aarch64_kmc_solid_asp3.md) | ✓ | | ARM64 SOLID with TOPPERS/ASP3 [`aarch64-nintendo-switch-freestanding`](platform-support/aarch64_nintendo_switch_freestanding.md) | * | | ARM64 Nintendo Switch, Horizon -[`aarch64-pc-windows-gnullvm`](platform-support/pc_windows_gnullvm.md) | ✓ | ✓ | ARM64 Windows using UCRT and LLVM -[`aarch64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | ARM64 OpenHarmony | +[`aarch64-pc-windows-gnullvm`](platform-support/aarch64_pc_windows_gnullvm.md) | ✓ | ✓ | ARM64 Windows using UCRT and LLVM +[`aarch64-unknown-linux-ohos`](platform-support/aarch64_unknown_linux_ohos.md) | ✓ | | ARM64 OpenHarmony | [`aarch64-unknown-teeos`](platform-support/aarch64_unknown_teeos.md) | ? | | ARM64 TEEOS | -[`aarch64-unknown-nto-qnx710`](platform-support/nto_qnx.md) | ✓ | | ARM64 QNX Neutrino 7.1 RTOS | -[`aarch64-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARM64 FreeBSD -[`aarch64-unknown-hermit`](platform-support/hermit.md) | ✓ | | ARM64 Hermit +[`aarch64-unknown-nto-qnx710`](platform-support/aarch64_unknown_nto_qnx710.md) | ✓ | | ARM64 QNX Neutrino 7.1 RTOS | +[`aarch64-unknown-freebsd`](platform-support/aarch64_unknown_freebsd.md) | ✓ | ✓ | ARM64 FreeBSD +[`aarch64-unknown-hermit`](platform-support/aarch64_unknown_hermit.md) | ✓ | | ARM64 Hermit [`aarch64-unknown-linux-gnu_ilp32`](platform-support/aarch64_unknown_linux_gnu_ilp32.md) | ✓ | ✓ | ARM64 Linux (ILP32 ABI) -[`aarch64-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | ARM64 NetBSD -[`aarch64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | ARM64 OpenBSD +[`aarch64-unknown-netbsd`](platform-support/aarch64_unknown_netbsd.md) | ✓ | ✓ | ARM64 NetBSD +[`aarch64-unknown-openbsd`](platform-support/aarch64_unknown_openbsd.md) | ✓ | ✓ | ARM64 OpenBSD [`aarch64-unknown-redox`](platform-support/aarch64_unknown_redox.md) | ? | | ARM64 Redox OS -[`aarch64-uwp-windows-msvc`](platform-support/windows_msvc.md) | ? | | ARM64 Universal Windows Platform (UWP) apps using MSVC -[`aarch64-wrs-vxworks`](platform-support/vxworks.md) | ? | | ARM64 VxWorks -[`aarch64_be-unknown-linux-gnu_ilp32`](platform-support/aarch64_be-unknown-linux-gnu-ilp32.md) | ✓ | ✓ | ARM64 Linux (Big Endian, ILP32 ABI) +[`aarch64-uwp-windows-msvc`](platform-support/aarch64_uwp_windows_msvc.md) | ? | | ARM64 Universal Windows Platform (UWP) apps using MSVC +[`aarch64-wrs-vxworks`](platform-support/aarch64_wrs_vxworks.md) | ? | | ARM64 VxWorks +[`aarch64_be-unknown-linux-gnu_ilp32`](platform-support/aarch64_be_unknown_linux_gnu_ilp32.md) | ✓ | ✓ | ARM64 Linux (Big Endian, ILP32 ABI) [`aarch64_be-unknown-linux-gnu`](platform-support/aarch64_be_unknown_linux_gnu.md) | ✓ | ✓ | ARM64 Linux (Big Endian) -[`aarch64_be-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | ARM64 NetBSD (big-endian) -[`arm64_32-apple-watchos`](platform-support/apple_watchos.md) | ✓ | | ARM Apple WatchOS 64-bit with 32-bit pointers +[`aarch64_be-unknown-netbsd`](platform-support/aarch64_be_unknown_netbsd.md) | ✓ | ✓ | ARM64 NetBSD (big-endian) +[`arm64_32-apple-watchos`](platform-support/arm64_32_apple_watchos.md) | ✓ | | ARM Apple WatchOS 64-bit with 32-bit pointers [`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). [`armv4t-none-eabi`](platform-support/armv4t_none_eabi.md) | * | | Bare ARMv4T [`armv4t-unknown-linux-gnueabi`](platform-support/armv4t_unknown_linux_gnueabi.md) | ? | | ARMv4T Linux [`armv5te-none-eabi`](platform-support/armv5te_none_eabi.md) | * | | Bare ARMv5TE [`armv5te-unknown-linux-uclibceabi`](platform-support/armv5te_unknown_linux_uclibceabi.md) | ? | | ARMv5TE Linux with uClibc -[`armv6-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARMv6 FreeBSD -[`armv6-unknown-netbsd-eabihf`](platform-support/netbsd.md) | ✓ | ✓ | ARMv6 NetBSD w/hard-float +[`armv6-unknown-freebsd`](platform-support/armv6_unknown_freebsd.md) | ✓ | ✓ | ARMv6 FreeBSD +[`armv6-unknown-netbsd-eabihf`](platform-support/armv6_unknown_netbsd_eabihf.md) | ✓ | ✓ | ARMv6 NetBSD w/hard-float [`armv6k-nintendo-3ds`](platform-support/armv6k_nintendo_3ds.md) | ? | | ARMv6K Nintendo 3DS, Horizon (Requires devkitARM toolchain) [`armv7-apple-ios`](platform-support/armv7_apple_ios.md) | ✓ | | ARMv7-A Cortex-A8 iOS [`armv7-sony-vita-newlibeabihf`](platform-support/armv7_sony_vita_newlibeabihf.md) | ? | | ARMv7-A Cortex-A9 Sony PlayStation Vita (requires VITASDK toolchain) -[`armv7-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | ARMv7-A OpenHarmony | +[`armv7-unknown-linux-ohos`](platform-support/armv7_unknown_linux_ohos.md) | ✓ | | ARMv7-A OpenHarmony | [`armv7-unknown-linux-uclibceabi`](platform-support/armv7_unknown_linux_uclibceabi.md) | ✓ | ✓ | ARMv7-A Linux with uClibc, softfloat [`armv7-unknown-linux-uclibceabihf`](platform-support/armv7_unknown_linux_uclibceabihf.md) | ✓ | ? | ARMv7-A Linux with uClibc, hardfloat -[`armv7-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | ARMv7-A FreeBSD -[`armv7-unknown-netbsd-eabihf`](platform-support/netbsd.md) | ✓ | ✓ | ARMv7-A NetBSD w/hard-float -[`armv7-wrs-vxworks-eabihf`](platform-support/vxworks.md) | ? | | ARMv7-A VxWorks -[`armv7a-kmc-solid_asp3-eabi`](platform-support/kmc_solid.md) | ✓ | | ARM SOLID with TOPPERS/ASP3 -[`armv7a-kmc-solid_asp3-eabihf`](platform-support/kmc_solid.md) | ✓ | | ARM SOLID with TOPPERS/ASP3, hardfloat +[`armv7-unknown-freebsd`](platform-support/armv7_unknown_freebsd.md) | ✓ | ✓ | ARMv7-A FreeBSD +[`armv7-unknown-netbsd-eabihf`](platform-support/armv7_unknown_netbsd_eabihf.md) | ✓ | ✓ | ARMv7-A NetBSD w/hard-float +[`armv7-wrs-vxworks-eabihf`](platform-support/armv7_wrs_vxworks_eabihf.md) | ? | | ARMv7-A VxWorks +[`armv7a-kmc-solid_asp3-eabi`](platform-support/armv7a_kmc_solid_asp3_eabi.md) | ✓ | | ARM SOLID with TOPPERS/ASP3 +[`armv7a-kmc-solid_asp3-eabihf`](platform-support/armv7a_kmc_solid_asp3_eabihf.md) | ✓ | | ARM SOLID with TOPPERS/ASP3, hardfloat [`armv7a-none-eabihf`](platform-support/armv7a_none_eabihf.md) | * | | Bare ARMv7-A, hardfloat -[`armv7k-apple-watchos`](platform-support/apple_watchos.md) | ✓ | | ARMv7-A Apple WatchOS -[`armv7s-apple-ios`](platform-support/applev7s-apple-ios.md) | ✓ | | ARMv7-A Apple-A6 Apple iOS -[`avr-unknown-gnu-atmega328`](platform-support/avr.md) | * | | AVR. Requires `-Z build-std=core` -[`bpfeb-unknown-none`](platform-support/bpf.md) | * | | BPF (Big Endian) -[`bpfel-unknown-none`](platform-support/bpf.md) | * | | BPF (Little Endian) +[`armv7k-apple-watchos`](platform-support/armv7k_apple_watchos.md) | ✓ | | ARMv7-A Apple WatchOS +[`armv7s-apple-ios`](platform-support/armv7s_apple_ios.md) | ✓ | | ARMv7-A Apple-A6 Apple iOS +[`avr-unknown-gnu-atmega328`](platform-support/avr_unknown_gnu_atmega328.md) | * | | AVR. Requires `-Z build-std=core` +[`bpfeb-unknown-none`](platform-support/bpfeb_unknown_none.md) | * | | BPF (Big Endian) +[`bpfel-unknown-none`](platform-support/bpfel_unknown_none.md) | * | | BPF (Little Endian) [`csky-unknown-linux-gnuabiv2`](platform-support/csky_unknown_linux_gnuabiv2.md) | ✓ | | C-SKY abiv2 Linux (Little Endian) [`hexagon-unknown-linux-musl`](platform-support/hexagon_unknown_linux_musl.md) | ? | | Hexagon Linux MUSL [`i386-apple-ios`](platform-support/i386_apple_ios.md) | ✓ | | 32-bit x86 iOS -[`i586-pc-nto-qnx700`](platform-support/nto_qnx.md) | * | | 32-bit x86 QNX Neutrino 7.0 RTOS | +[`i586-pc-nto-qnx700`](platform-support/i586_pc_nto_qnx700.md) | * | | 32-bit x86 QNX Neutrino 7.0 RTOS | [`i686-apple-darwin`](platform-support/i686_apple_darwin.md) | ✓ | ✓ | 32-bit macOS (10.7+, Lion+) -[`i686-pc-windows-gnullvm`](platform-support/pc_windows_gnullvm.md) | ✓ | ✓ | -[`i686-unknown-haiku`](platform-support/haiku.md) | ✓ | ✓ | 32-bit Haiku -[`i686-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD/i386 with SSE2 -[`i686-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 32-bit OpenBSD -[`i686-uwp-windows-gnu`](platform-support/uwp_windows_gnu.md) | ? | | x86 Universal Windows Platform (UWP) apps using MinGW -[`i686-uwp-windows-msvc`](platform-support/windows_msvc.md) | ? | | x86 Universal Windows Platform (UWP) apps using MSVC -[`i686-wrs-vxworks`](platform-support/vxworks.md) | ? | | i686 VxWorks -[`loongarch64-unknown-none`](platform-support/loongarch_none.md) | * | | LoongArch64 Bare-metal (LP64D ABI) -[`loongarch64-unknown-none-softfloat`](platform-support/loongarch_none.md) | * | | LoongArch64 Bare-metal (LP64S ABI) +[`i686-pc-windows-gnullvm`](platform-support/i686_pc_windows_gnullvm.md) | ✓ | ✓ | +[`i686-unknown-haiku`](platform-support/i686_unknown_haiku.md) | ✓ | ✓ | 32-bit Haiku +[`i686-unknown-netbsd`](platform-support/i686_unknown_netbsd.md) | ✓ | ✓ | NetBSD/i386 with SSE2 +[`i686-unknown-openbsd`](platform-support/i686_unknown_openbsd.md) | ✓ | ✓ | 32-bit OpenBSD +[`i686-uwp-windows-gnu`](platform-support/i686_uwp_windows_gnu.md) | ? | | x86 Universal Windows Platform (UWP) apps using MinGW +[`i686-uwp-windows-msvc`](platform-support/i686_uwp_windows_msvc.md) | ? | | x86 Universal Windows Platform (UWP) apps using MSVC +[`i686-wrs-vxworks`](platform-support/i686_wrs_vxworks.md) | ? | | i686 VxWorks +[`loongarch64-unknown-none`](platform-support/loongarch64_unknown_none.md) | * | | LoongArch64 Bare-metal (LP64D ABI) +[`loongarch64-unknown-none-softfloat`](platform-support/loongarch64_unknown_none_softfloat.md) | * | | LoongArch64 Bare-metal (LP64S ABI) [`m68k-unknown-linux-gnu`](platform-support/m68k_unknown_linux_gnu.md) | ? | | Motorola 680x0 Linux [`mips-unknown-linux-uclibc`](platform-support/mips_unknown_linux_uclibc.md) | ✓ | | MIPS Linux with uClibc [`mips64-openwrt-linux-musl`](platform-support/mips64_openwrt_linux_musl.md) | ? | | MIPS64 for OpenWrt Linux MUSL @@ -282,65 +282,65 @@ target | std | host | notes [`mipsel-sony-psx`](platform-support/mipsel_sony_psx.md) | * | | MIPS (LE) Sony PlayStation 1 (PSX) [`mipsel-unknown-linux-uclibc`](platform-support/mipsel_unknown_linux_uclibc.md) | ✓ | | MIPS (LE) Linux with uClibc [`mipsel-unknown-none`](platform-support/mipsel_unknown_none.md) | * | | Bare MIPS (LE) softfloat -[`mipsisa32r6-unknown-linux-gnu`](platform-support/mips_release_6.md) | ? | | 32-bit MIPS Release 6 Big Endian -[`mipsisa32r6el-unknown-linux-gnu`](platform-support/mips_release_6.md) | ? | | 32-bit MIPS Release 6 Little Endian -[`mipsisa64r6-unknown-linux-gnuabi64`](platform-support/mips_release_6.md) | ? | | 64-bit MIPS Release 6 Big Endian -[`mipsisa64r6el-unknown-linux-gnuabi64`](platform-support/mips_release_6.md) | ✓ | ✓ | 64-bit MIPS Release 6 Little Endian +[`mipsisa32r6-unknown-linux-gnu`](platform-support/mipsisa32r6_unknown_linux_gnu.md) | ? | | 32-bit MIPS Release 6 Big Endian +[`mipsisa32r6el-unknown-linux-gnu`](platform-support/mipsisa32r6el_unknown_linux_gnu.md) | ? | | 32-bit MIPS Release 6 Little Endian +[`mipsisa64r6-unknown-linux-gnuabi64`](platform-support/mipsisa64r6_unknown_linux_gnuabi64.md) | ? | | 64-bit MIPS Release 6 Big Endian +[`mipsisa64r6el-unknown-linux-gnuabi64`](platform-support/mipsisa64r6el_unknown_linux_gnuabi64.md) | ✓ | ✓ | 64-bit MIPS Release 6 Little Endian [`msp430-none-elf`](platform-support/msp430_none_elf.md) | * | | 16-bit MSP430 microcontrollers [`powerpc-unknown-linux-gnuspe`](platform-support/powerpc_unknown_linux_gnuspe.md) | ✓ | | PowerPC SPE Linux [`powerpc-unknown-linux-musl`](platform-support/powerpc_unknown_linux_musl.md) | ? | | PowerPC MUSL Linux -[`powerpc-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD 32-bit powerpc systems -[`powerpc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/macppc -[`powerpc-wrs-vxworks-spe`](platform-support/vxworks.md) | ? | | PowerPC SPE VxWorks -[`powerpc-wrs-vxworks`](platform-support/vxworks.md) | ? | | PowerPC VxWorks -[`powerpc64-unknown-freebsd`](platform-support/freebsd.md) | ✓ | ✓ | PPC64 FreeBSD (ELFv1 and ELFv2) -[`powerpc64le-unknown-freebsd`](platform-support/freebsd.md) | | | PPC64LE FreeBSD -[`powerpc-unknown-freebsd`](platform-support/freebsd.md) | | | PowerPC FreeBSD +[`powerpc-unknown-netbsd`](platform-support/powerpc_unknown_netbsd.md) | ✓ | ✓ | NetBSD 32-bit powerpc systems +[`powerpc-unknown-openbsd`](platform-support/powerpc_unknown_openbsd.md) | ✓ | ✓ | OpenBSD/macppc +[`powerpc-wrs-vxworks-spe`](platform-support/powerpc_wrs_vxworks_spe.md) | ? | | PowerPC SPE VxWorks +[`powerpc-wrs-vxworks`](platform-support/powerpc_wrs_vxworks.md) | ? | | PowerPC VxWorks +[`powerpc64-unknown-freebsd`](platform-support/powerpc64_unknown_freebsd.md) | ✓ | ✓ | PPC64 FreeBSD (ELFv1 and ELFv2) +[`powerpc64le-unknown-freebsd`](platform-support/powerpc64le_unknown_freebsd.md) | | | PPC64LE FreeBSD +[`powerpc-unknown-freebsd`](platform-support/powerpc_unknown_freebsd.md) | | | PowerPC FreeBSD [`powerpc64-unknown-linux-musl`](platform-support/powerpc64_unknown_linux_musl.md) | ? | | PPC64LE Linux (MUSL) -[`powerpc64-wrs-vxworks`](platform-support/vxworks.md) | ? | | PPC64 VxWorks +[`powerpc64-wrs-vxworks`](platform-support/powerpc64_wrs_vxworks.md) | ? | | PPC64 VxWorks [`powerpc64le-unknown-linux-musl`](platform-support/powerpc64le_unknown_linux_musl.md) | ? | | PPC64 Linux (MUSL) -[`powerpc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/powerpc64 +[`powerpc64-unknown-openbsd`](platform-support/powerpc64_unknown_openbsd.md) | ✓ | ✓ | OpenBSD/powerpc64 [`powerpc64-ibm-aix`](platform-support/powerpc64_ibm_aix.md) | ? | | 64-bit AIX (7.2 and newer) [`riscv32gc-unknown-linux-gnu`](platform-support/riscv32gc_unknown_linux_gnu.md) | | | RISC-V Linux (kernel 5.4, glibc 2.33) -[`riscv32gc-unknown-linux-musl`](platform-support/riscvgc_unknown_linux_musl.md) | | | RISC-V Linux (kernel 5.4, MUSL + RISCV32 support patches) +[`riscv32gc-unknown-linux-musl`](platform-support/riscv32gc_unknown_linux_musl.md) | | | RISC-V Linux (kernel 5.4, MUSL + RISCV32 support patches) [`riscv32im-unknown-none-elf`](platform-support/riscv32im_unknown_none_elf.md) | * | | Bare RISC-V (RV32IM ISA) [`riscv32imac-unknown-xous-elf`](platform-support/riscv32imac_unknown_xous_elf.md) | ? | | RISC-V Xous (RV32IMAC ISA) -[`riscv32imc-esp-espidf`](platform-support/esp_idf.md) | ✓ | | RISC-V ESP-IDF -[`riscv32imac-esp-espidf`](platform-support/esp_idf.md) | ✓ | | RISC-V ESP-IDF -[`riscv64gc-unknown-hermit`](platform-support/hermit.md) | ✓ | | RISC-V Hermit -[`riscv64gc-unknown-freebsd`](platform-support/freebsd.md) | | | RISC-V FreeBSD -[`riscv64gc-unknown-fuchsia`](platform-support/fuchsia.md) | | | RISC-V Fuchsia -[`riscv64gc-unknown-linux-musl`](platform-support/riscvgc_unknown_linux_musl.md) | | | RISC-V Linux (kernel 4.20, MUSL 1.2.0) -[`riscv64gc-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | RISC-V NetBSD -[`riscv64gc-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/riscv64 -[`riscv64-linux-android`](platform-support/android.md) | | | RISC-V 64-bit Android -[`s390x-unknown-linux-musl`](./platform-support/s390x_unknown_linux_musl.md) | | | S390x Linux (kernel 3.2, MUSL) -[`sparc-unknown-linux-gnu`](./platform-support/sparc_unknown_linux_gnu.md) | ✓ | | 32-bit SPARC Linux -[`sparc-unknown-none-elf`](./platform-support/sparc_unknown_none_elf.md) | * | | Bare 32-bit SPARC V7+ -[`sparc64-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD/sparc64 -[`sparc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/sparc64 -[`thumbv4t-none-eabi`](platform-support/armv4t_none_eabi.md) | * | | Thumb-mode Bare ARMv4T -[`thumbv5te-none-eabi`](platform-support/armv5te_none_eabi.md) | * | | Thumb-mode Bare ARMv5TE -[`thumbv7a-pc-windows-msvc`](platform-support/windows_msvc.md) | ? | | Thumb2-mode MSVC Windows -[`thumbv7a-uwp-windows-msvc`](platform-support/windows_msvc.md) | ✓ | | Thumb2-mode Universal Windows Platform (UWP) apps using MSVC +[`riscv32imc-esp-espidf`](platform-support/riscv32imc_esp_espidf.md) | ✓ | | RISC-V ESP-IDF +[`riscv32imac-esp-espidf`](platform-support/riscv32imac_esp_espidf.md) | ✓ | | RISC-V ESP-IDF +[`riscv64gc-unknown-hermit`](platform-support/riscv64gc_unknown_hermit.md) | ✓ | | RISC-V Hermit +[`riscv64gc-unknown-freebsd`](platform-support/riscv64gc_unknown_freebsd.md) | | | RISC-V FreeBSD +[`riscv64gc-unknown-fuchsia`](platform-support/riscv64gc_unknown_fuchsia.md) | | | RISC-V Fuchsia +[`riscv64gc-unknown-linux-musl`](platform-support/riscv64gc_unknown_linux_musl.md) | | | RISC-V Linux (kernel 4.20, MUSL 1.2.0) +[`riscv64gc-unknown-netbsd`](platform-support/riscv64gc_unknown_netbsd.md) | ✓ | ✓ | RISC-V NetBSD +[`riscv64gc-unknown-openbsd`](platform-support/riscv64gc_unknown_openbsd.md) | ✓ | ✓ | OpenBSD/riscv64 +[`riscv64-linux-android`](platform-support/riscv64_linux_android.md) | | | RISC-V 64-bit Android +[`s390x-unknown-linux-musl`](platform-support/s390x_unknown_linux_musl.md) | | | S390x Linux (kernel 3.2, MUSL) +[`sparc-unknown-linux-gnu`](platform-support/sparc_unknown_linux_gnu.md) | ✓ | | 32-bit SPARC Linux +[`sparc-unknown-none-elf`](platform-support/sparc_unknown_none_elf.md) | * | | Bare 32-bit SPARC V7+ +[`sparc64-unknown-netbsd`](platform-support/sparc64_unknown_netbsd.md) | ✓ | ✓ | NetBSD/sparc64 +[`sparc64-unknown-openbsd`](platform-support/sparc64_unknown_openbsd.md) | ✓ | ✓ | OpenBSD/sparc64 +[`thumbv4t-none-eabi`](platform-support/thumbv4t_none_eabi.md) | * | | Thumb-mode Bare ARMv4T +[`thumbv5te-none-eabi`](platform-support/thumbv5te_none_eabi.md) | * | | Thumb-mode Bare ARMv5TE +[`thumbv7a-pc-windows-msvc`](platform-support/thumbv7a_pc_windows_msvc.md) | ? | | Thumb2-mode MSVC Windows +[`thumbv7a-uwp-windows-msvc`](platform-support/thumbv7a_uwp_windows_msvc.md) | ✓ | | Thumb2-mode Universal Windows Platform (UWP) apps using MSVC [`thumbv7neon-unknown-linux-musleabihf`](platform-support/thumbv7neon_unknown_linux_musleabihf.md) | ? | | Thumb2-mode ARMv7-A Linux with NEON, MUSL [`wasm64-unknown-unknown`](platform-support/wasm64_unknown_unknown.md) | ? | | WebAssembly -[`x86_64-apple-ios-macabi`](platform-support/apple_ios_macabi.md) | ✓ | | Apple Catalyst on x86_64 -[`x86_64-apple-tvos`](platform-support/apple_tvos.md) | ? | | x86 64-bit tvOS -[`x86_64-apple-watchos-sim`](platform-support/apple_watchos.md) | ✓ | | x86 64-bit Apple WatchOS simulator -[`x86_64-pc-nto-qnx710`](platform-support/nto_qnx.md) | ✓ | | x86 64-bit QNX Neutrino 7.1 RTOS | -[`x86_64-pc-windows-gnullvm`](platform-support/pc_windows_gnullvm.md) | ✓ | ✓ | 64-bit Windows using UCRT and LLVM +[`x86_64-apple-ios-macabi`](platform-support/x86_64_apple_ios_macabi.md) | ✓ | | Apple Catalyst on x86_64 +[`x86_64-apple-tvos`](platform-support/x86_64_apple_tvos.md) | ? | | x86 64-bit tvOS +[`x86_64-apple-watchos-sim`](platform-support/x86_64_apple_watchos_sim.md) | ✓ | | x86 64-bit Apple WatchOS simulator +[`x86_64-pc-nto-qnx710`](platform-support/x86_64_pc_nto_qnx710.md) | ✓ | | x86 64-bit QNX Neutrino 7.1 RTOS | +[`x86_64-pc-windows-gnullvm`](platform-support/x86_64_pc_windows_gnullvm.md) | ✓ | ✓ | 64-bit Windows using UCRT and LLVM [`x86_64-sun-solaris`](platform-support/x86_64_sun_solaris.md) | ? | | Deprecated target for 64-bit Solaris 10/11, illumos -[`x86_64-unikraft-linux-musl`](platform-support/unikraft_linux_musl.md) | ✓ | | 64-bit Unikraft with musl +[`x86_64-unikraft-linux-musl`](platform-support/x86_64_unikraft_linux_musl.md) | ✓ | | 64-bit Unikraft with musl [`x86_64-unknown-dragonfly`](platform-support/x86_64_unknown_dragonfly.md) | ✓ | ✓ | 64-bit DragonFlyBSD -[`x86_64-unknown-haiku`](platform-support/haiku.md) | ✓ | ✓ | 64-bit Haiku -[`x86_64-unknown-hermit`](platform-support/hermit.md) | ✓ | | x86_64 Hermit +[`x86_64-unknown-haiku`](platform-support/x86_64_unknown_haiku.md) | ✓ | ✓ | 64-bit Haiku +[`x86_64-unknown-hermit`](platform-support/x86_64_unknown_hermit.md) | ✓ | | x86_64 Hermit [`x86_64-unknown-l4re-uclibc`](platform-support/x86_64_unknown_l4re_uclibc.md) | ? | | L4 Runtime Environment -[`x86_64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | x86_64 OpenHarmony | -[`x86_64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 64-bit OpenBSD -[`x86_64-uwp-windows-gnu`](platform-support/uwp_windows_gnu.md) | ✓ | | x86_64 Universal Windows Platform (UWP) apps using MinGW -[`x86_64-uwp-windows-msvc`](platform-support/windows_msvc.md) | ✓ | | x86_64 Universal Windows Platform (UWP) apps using MSVC -[`x86_64-wrs-vxworks`](platform-support/vxworks.md) | ? | | x86_64 VxWorks +[`x86_64-unknown-linux-ohos`](platform-support/x86_64_unknown_linux_ohos.md) | ✓ | | x86_64 OpenHarmony | +[`x86_64-unknown-openbsd`](platform-support/x86_64_unknown_openbsd.md) | ✓ | ✓ | 64-bit OpenBSD +[`x86_64-uwp-windows-gnu`](platform-support/x86_64_uwp_windows_gnu.md) | ✓ | | x86_64 Universal Windows Platform (UWP) apps using MinGW +[`x86_64-uwp-windows-msvc`](platform-support/x86_64_uwp_windows_msvc.md) | ✓ | | x86_64 Universal Windows Platform (UWP) apps using MSVC +[`x86_64-wrs-vxworks`](platform-support/x86_64_wrs_vxworks.md) | ? | | x86_64 VxWorks [`x86_64h-apple-darwin`](platform-support/x86_64h_apple_darwin.md) | ✓ | ✓ | macOS with late-gen Intel (at least Haswell) [runs on NVIDIA GPUs]: https://github.com/japaric-archived/nvptx#targets diff --git a/src/doc/rustc/src/platform-support/apple_ios_macabi.md b/src/doc/rustc/src/platform-support/aarch64_apple_ios_macabi.md similarity index 100% rename from src/doc/rustc/src/platform-support/apple_ios_macabi.md rename to src/doc/rustc/src/platform-support/aarch64_apple_ios_macabi.md diff --git a/src/doc/rustc/src/platform-support/apple_tvos.md b/src/doc/rustc/src/platform-support/aarch64_apple_tvos.md similarity index 100% rename from src/doc/rustc/src/platform-support/apple_tvos.md rename to src/doc/rustc/src/platform-support/aarch64_apple_tvos.md diff --git a/src/doc/rustc/src/platform-support/aarch64_apple_watchos_sim.md b/src/doc/rustc/src/platform-support/aarch64_apple_watchos_sim.md new file mode 120000 index 0000000000000..618d76cb60d72 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_apple_watchos_sim.md @@ -0,0 +1 @@ +./arm64_32_apple_watchos.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/aarch64_be_unknown_netbsd.md b/src/doc/rustc/src/platform-support/aarch64_be_unknown_netbsd.md new file mode 120000 index 0000000000000..6169a58afd831 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_be_unknown_netbsd.md @@ -0,0 +1 @@ +./riscv64gc_unknown_netbsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/aarch64_fuchsia.md b/src/doc/rustc/src/platform-support/aarch64_fuchsia.md new file mode 120000 index 0000000000000..4b1051fb62033 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_fuchsia.md @@ -0,0 +1 @@ +./x86_64_unknown_fuchsia.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/aarch64_kmc_solid_asp3.md b/src/doc/rustc/src/platform-support/aarch64_kmc_solid_asp3.md new file mode 120000 index 0000000000000..7fa9c5fd3b8ed --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_kmc_solid_asp3.md @@ -0,0 +1 @@ +./armv7a_kmc_solid_asp3_eabihf.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/aarch64_linux_android.md b/src/doc/rustc/src/platform-support/aarch64_linux_android.md new file mode 120000 index 0000000000000..e001e3fd56a15 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_linux_android.md @@ -0,0 +1 @@ +./x86_64_linux_android.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/aarch64_pc_windows_gnullvm.md b/src/doc/rustc/src/platform-support/aarch64_pc_windows_gnullvm.md new file mode 120000 index 0000000000000..e847eb2cbfd7b --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_pc_windows_gnullvm.md @@ -0,0 +1 @@ +./i686_pc_windows_gnullvm.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/aarch64_pc_windows_msvc.md b/src/doc/rustc/src/platform-support/aarch64_pc_windows_msvc.md new file mode 120000 index 0000000000000..940d46040a1f1 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_pc_windows_msvc.md @@ -0,0 +1 @@ +./i686_uwp_windows_msvc.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/aarch64_unknown_freebsd.md b/src/doc/rustc/src/platform-support/aarch64_unknown_freebsd.md new file mode 120000 index 0000000000000..900320584bc14 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_unknown_freebsd.md @@ -0,0 +1 @@ +./riscv64gc_unknown_freebsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/fuchsia.md b/src/doc/rustc/src/platform-support/aarch64_unknown_fuchsia.md similarity index 100% rename from src/doc/rustc/src/platform-support/fuchsia.md rename to src/doc/rustc/src/platform-support/aarch64_unknown_fuchsia.md diff --git a/src/doc/rustc/src/platform-support/aarch64_unknown_hermit.md b/src/doc/rustc/src/platform-support/aarch64_unknown_hermit.md new file mode 120000 index 0000000000000..47aca04cefb8c --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_unknown_hermit.md @@ -0,0 +1 @@ +./x86_64_unknown_hermit.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/openharmony.md b/src/doc/rustc/src/platform-support/aarch64_unknown_linux_ohos.md similarity index 100% rename from src/doc/rustc/src/platform-support/openharmony.md rename to src/doc/rustc/src/platform-support/aarch64_unknown_linux_ohos.md diff --git a/src/doc/rustc/src/platform-support/netbsd.md b/src/doc/rustc/src/platform-support/aarch64_unknown_netbsd.md similarity index 100% rename from src/doc/rustc/src/platform-support/netbsd.md rename to src/doc/rustc/src/platform-support/aarch64_unknown_netbsd.md diff --git a/src/doc/rustc/src/platform-support/aarch64_unknown_none_softfloat.md b/src/doc/rustc/src/platform-support/aarch64_unknown_none_softfloat.md new file mode 120000 index 0000000000000..07fbf402e6cfb --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_unknown_none_softfloat.md @@ -0,0 +1 @@ +./aarch64_unknown_none.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/aarch64_unknown_nto_qnx710.md b/src/doc/rustc/src/platform-support/aarch64_unknown_nto_qnx710.md new file mode 120000 index 0000000000000..86d2cddf9b56c --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_unknown_nto_qnx710.md @@ -0,0 +1 @@ +./i586_pc_nto_qnx700.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/aarch64_unknown_openbsd.md b/src/doc/rustc/src/platform-support/aarch64_unknown_openbsd.md new file mode 120000 index 0000000000000..5df6e9e586f19 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_unknown_openbsd.md @@ -0,0 +1 @@ +./riscv64gc_unknown_openbsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/aarch64_unknown_uefi.md b/src/doc/rustc/src/platform-support/aarch64_unknown_uefi.md new file mode 120000 index 0000000000000..f4ad69d18ec64 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_unknown_uefi.md @@ -0,0 +1 @@ +./i686_unknown_uefi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/aarch64_uwp_windows_msvc.md b/src/doc/rustc/src/platform-support/aarch64_uwp_windows_msvc.md new file mode 120000 index 0000000000000..347a1fe9e7c51 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_uwp_windows_msvc.md @@ -0,0 +1 @@ +./thumbv7a_uwp_windows_msvc.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/aarch64_wrs_vxworks.md b/src/doc/rustc/src/platform-support/aarch64_wrs_vxworks.md new file mode 120000 index 0000000000000..59c6453980f95 --- /dev/null +++ b/src/doc/rustc/src/platform-support/aarch64_wrs_vxworks.md @@ -0,0 +1 @@ +./armv7_wrs_vxworks_eabihf.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/apple_watchos.md b/src/doc/rustc/src/platform-support/arm64_32_apple_watchos.md similarity index 100% rename from src/doc/rustc/src/platform-support/apple_watchos.md rename to src/doc/rustc/src/platform-support/arm64_32_apple_watchos.md diff --git a/src/doc/rustc/src/platform-support/android.md b/src/doc/rustc/src/platform-support/arm_linux_androideabi.md similarity index 100% rename from src/doc/rustc/src/platform-support/android.md rename to src/doc/rustc/src/platform-support/arm_linux_androideabi.md diff --git a/src/doc/rustc/src/platform-support/arm_unknown_linux_gnueabi.md b/src/doc/rustc/src/platform-support/arm_unknown_linux_gnueabi.md new file mode 120000 index 0000000000000..11400dd6e1ab3 --- /dev/null +++ b/src/doc/rustc/src/platform-support/arm_unknown_linux_gnueabi.md @@ -0,0 +1 @@ +./arm_unknown_linux_musleabi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/arm_unknown_linux_gnueabihf.md b/src/doc/rustc/src/platform-support/arm_unknown_linux_gnueabihf.md new file mode 120000 index 0000000000000..09bdaba2fc492 --- /dev/null +++ b/src/doc/rustc/src/platform-support/arm_unknown_linux_gnueabihf.md @@ -0,0 +1 @@ +./arm_unknown_linux_musleabihf.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/arm_unknown_linux.md b/src/doc/rustc/src/platform-support/arm_unknown_linux_musleabi.md similarity index 100% rename from src/doc/rustc/src/platform-support/arm_unknown_linux.md rename to src/doc/rustc/src/platform-support/arm_unknown_linux_musleabi.md diff --git a/src/doc/rustc/src/platform-support/arm_unknown_linux_musleabihf.md b/src/doc/rustc/src/platform-support/arm_unknown_linux_musleabihf.md new file mode 120000 index 0000000000000..d729f5de6e853 --- /dev/null +++ b/src/doc/rustc/src/platform-support/arm_unknown_linux_musleabihf.md @@ -0,0 +1 @@ +./arm_unknown_linux_gnueabi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/armebv7r_none_eabi.md b/src/doc/rustc/src/platform-support/armebv7r_none_eabi.md new file mode 120000 index 0000000000000..a60b62329e044 --- /dev/null +++ b/src/doc/rustc/src/platform-support/armebv7r_none_eabi.md @@ -0,0 +1 @@ +./armv7r_none_eabi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/armv7r.md b/src/doc/rustc/src/platform-support/armebv7r_none_eabihf.md similarity index 100% rename from src/doc/rustc/src/platform-support/armv7r.md rename to src/doc/rustc/src/platform-support/armebv7r_none_eabihf.md diff --git a/src/doc/rustc/src/platform-support/armv4t_none_eabi.md b/src/doc/rustc/src/platform-support/armv4t_none_eabi.md deleted file mode 100644 index a230eba6bf95c..0000000000000 --- a/src/doc/rustc/src/platform-support/armv4t_none_eabi.md +++ /dev/null @@ -1,63 +0,0 @@ -# armv4t-none-eabi - -Tier 3 - -Bare-metal target for any cpu in the ARMv4T architecture family, supporting -ARM/Thumb code interworking (aka `a32`/`t32`), with ARM code as the default code -generation. - -In particular this supports the Gameboy Advance (GBA), but there's nothing GBA -specific with this target, so any ARMv4T device should work fine. - -## Target Maintainers - -* [@Lokathor](https://github.com/lokathor) - -## Requirements - -The target is cross-compiled, and uses static linking. - -This target doesn't provide a linker script, you'll need to bring your own -according to the specific device you want to target. Pass -`-Clink-arg=-Tyour_script.ld` as a rustc argument to make the linker use -`your_script.ld` during linking. - -## Building Rust Programs - -Because it is Tier 3, rust does not yet ship pre-compiled artifacts for this target. - -Just use the `build-std` nightly cargo feature to build the `core` library. You -can pass this as a command line argument to cargo, or your `.cargo/config.toml` -file might include the following lines: - -```toml -[unstable] -build-std = ["core"] -``` - -Most of `core` should work as expected, with the following notes: -* the target is "soft float", so `f32` and `f64` operations are emulated in - software. -* integer division is also emulated in software. -* the target is old enough that it doesn't have atomic instructions. - -Rust programs are output as ELF files. - -For running on hardware, you'll generally need to extract the "raw" program code -out of the ELF and into a file of its own. The `objcopy` program provided as -part of the GNU Binutils can do this: - -```shell -arm-none-eabi-objcopy --output-target binary [in_file] [out_file] -``` - -## Testing - -This is a cross-compiled target that you will need to emulate during testing. - -Because this is a device-agnostic target, and the exact emulator that you'll -need depends on the specific device you want to run your code on. - -For example, when programming for the Gameboy Advance, the -[mgba-test-runner](https://github.com/agbrs/agb) program could be used to make a -normal set of rust tests be run within the `mgba` emulator. diff --git a/src/doc/rustc/src/platform-support/armv4t_none_eabi.md b/src/doc/rustc/src/platform-support/armv4t_none_eabi.md new file mode 120000 index 0000000000000..3a4cec7424747 --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv4t_none_eabi.md @@ -0,0 +1 @@ +./thumbv4t_none_eabi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/armv5te_none_eabi.md b/src/doc/rustc/src/platform-support/armv5te_none_eabi.md deleted file mode 100644 index f469dab1c42fa..0000000000000 --- a/src/doc/rustc/src/platform-support/armv5te_none_eabi.md +++ /dev/null @@ -1,66 +0,0 @@ -# `armv5te-none-eabi` - -**Tier: 3** - -Bare-metal target for any cpu in the ARMv5TE architecture family, supporting -ARM/Thumb code interworking (aka `a32`/`t32`), with `a32` code as the default code -generation. - -The `thumbv5te-none-eabi` target is the same as this one, but the instruction set defaults to `t32`. - -## Target Maintainers - -* [@QuinnPainter](https://github.com/QuinnPainter) - -## Requirements - -The target is cross-compiled, and uses static linking. - -By default, the `lld` linker included with Rust will be used. - -However, you may want to use the `arm-none-eabi-ld` linker instead. This can be obtained for Windows/Mac/Linux from the [ARM -Developer Website][arm-dev], or possibly from your OS's package manager. To use it, add the following to your `.cargo/config.toml`: - -```toml -[target.armv5te-none-eabi] -linker = "arm-none-eabi-ld" -``` - -[arm-dev]: https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain - -This target doesn't provide a linker script, you'll need to bring your own -according to the specific device you want to target. Pass -`-Clink-arg=-Tyour_script.ld` as a rustc argument to make the linker use -`your_script.ld` during linking. - -## Building Rust Programs - -Because it is Tier 3, rust does not yet ship pre-compiled artifacts for this target. - -Just use the `build-std` nightly cargo feature to build the `core` library. You -can pass this as a command line argument to cargo, or your `.cargo/config.toml` -file might include the following lines: - -```toml -[unstable] -build-std = ["core"] -``` - -Most of `core` should work as expected, with the following notes: -* the target is "soft float", so `f32` and `f64` operations are emulated in - software. -* integer division is also emulated in software. -* the target is old enough that it doesn't have atomic instructions. - -`alloc` is also supported, as long as you provide your own global allocator. - -Rust programs are output as ELF files. - -## Testing - -This is a cross-compiled target that you will need to emulate during testing. - -Because this is a device-agnostic target, and the exact emulator that you'll -need depends on the specific device you want to run your code on. - -For example, when programming for the DS, you can use one of the several available DS emulators, such as [melonDS](https://melonds.kuribo64.net/). diff --git a/src/doc/rustc/src/platform-support/armv5te_none_eabi.md b/src/doc/rustc/src/platform-support/armv5te_none_eabi.md new file mode 120000 index 0000000000000..189590da9502e --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv5te_none_eabi.md @@ -0,0 +1 @@ +./thumbv5te_none_eabi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/armv6_unknown_freebsd.md b/src/doc/rustc/src/platform-support/armv6_unknown_freebsd.md new file mode 120000 index 0000000000000..99ac5ee113efa --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv6_unknown_freebsd.md @@ -0,0 +1 @@ +./i686_unknown_freebsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/armv6_unknown_netbsd_eabihf.md b/src/doc/rustc/src/platform-support/armv6_unknown_netbsd_eabihf.md new file mode 120000 index 0000000000000..9506997c1e828 --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv6_unknown_netbsd_eabihf.md @@ -0,0 +1 @@ +./i686_unknown_netbsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/armv7_linux_androideabi.md b/src/doc/rustc/src/platform-support/armv7_linux_androideabi.md new file mode 120000 index 0000000000000..22399e41ce799 --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7_linux_androideabi.md @@ -0,0 +1 @@ +./arm_linux_androideabi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/armv7_unknown_freebsd.md b/src/doc/rustc/src/platform-support/armv7_unknown_freebsd.md new file mode 120000 index 0000000000000..ee81cbf6ed9bd --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7_unknown_freebsd.md @@ -0,0 +1 @@ +./x86_64_unknown_freebsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabi.md b/src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabi.md new file mode 100644 index 0000000000000..c9eb4b9fb075a --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabi.md @@ -0,0 +1,29 @@ +# `armv7-unknown-linux-gnueabihf` + +**Tier: 2 (with Host Tools)** + +ARMv7-A Linux, hardfloat (kernel 3.2, glibc 2.17) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabihf.md b/src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabihf.md deleted file mode 100644 index c9eb4b9fb075a..0000000000000 --- a/src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabihf.md +++ /dev/null @@ -1,29 +0,0 @@ -# `armv7-unknown-linux-gnueabihf` - -**Tier: 2 (with Host Tools)** - -ARMv7-A Linux, hardfloat (kernel 3.2, glibc 2.17) - -## Target maintainers - -- Missing! - -## Requirements - -Missing! - -## Building the target - -Missing! - -## Building Rust programs - -Missing! - -## Testing - -Missing! - -## Cross-compilation toolchains and C code - -Missing! diff --git a/src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabihf.md b/src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabihf.md new file mode 120000 index 0000000000000..ec4c5e647f5fa --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7_unknown_linux_gnueabihf.md @@ -0,0 +1 @@ +./armv7_unknown_linux_gnueabi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/armv7_unknown_linux.md b/src/doc/rustc/src/platform-support/armv7_unknown_linux_musleabi.md similarity index 100% rename from src/doc/rustc/src/platform-support/armv7_unknown_linux.md rename to src/doc/rustc/src/platform-support/armv7_unknown_linux_musleabi.md diff --git a/src/doc/rustc/src/platform-support/armv7_unknown_linux_musleabihf.md b/src/doc/rustc/src/platform-support/armv7_unknown_linux_musleabihf.md new file mode 120000 index 0000000000000..a48cfb9c6f6b6 --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7_unknown_linux_musleabihf.md @@ -0,0 +1 @@ +./armv7_unknown_linux_musleabi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/armv7_unknown_linux_ohos.md b/src/doc/rustc/src/platform-support/armv7_unknown_linux_ohos.md new file mode 120000 index 0000000000000..fdd6b3cd7f987 --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7_unknown_linux_ohos.md @@ -0,0 +1 @@ +./x86_64_unknown_linux_ohos.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/armv7_unknown_netbsd_eabihf.md b/src/doc/rustc/src/platform-support/armv7_unknown_netbsd_eabihf.md new file mode 120000 index 0000000000000..8ff2788ce92d7 --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7_unknown_netbsd_eabihf.md @@ -0,0 +1 @@ +./aarch64_be_unknown_netbsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/vxworks.md b/src/doc/rustc/src/platform-support/armv7_wrs_vxworks_eabihf.md similarity index 100% rename from src/doc/rustc/src/platform-support/vxworks.md rename to src/doc/rustc/src/platform-support/armv7_wrs_vxworks_eabihf.md diff --git a/src/doc/rustc/src/platform-support/kmc_solid.md b/src/doc/rustc/src/platform-support/armv7a_kmc_solid_asp3_eabi.md similarity index 100% rename from src/doc/rustc/src/platform-support/kmc_solid.md rename to src/doc/rustc/src/platform-support/armv7a_kmc_solid_asp3_eabi.md diff --git a/src/doc/rustc/src/platform-support/armv7a_kmc_solid_asp3_eabihf.md b/src/doc/rustc/src/platform-support/armv7a_kmc_solid_asp3_eabihf.md new file mode 120000 index 0000000000000..f9ef68b9bc0d1 --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7a_kmc_solid_asp3_eabihf.md @@ -0,0 +1 @@ +./armv7a_kmc_solid_asp3_eabi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/armv7k_apple_watchos.md b/src/doc/rustc/src/platform-support/armv7k_apple_watchos.md new file mode 120000 index 0000000000000..a07cbedcf3ce5 --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7k_apple_watchos.md @@ -0,0 +1 @@ +./aarch64_apple_watchos_sim.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/armv7r_none_eabi.md b/src/doc/rustc/src/platform-support/armv7r_none_eabi.md new file mode 120000 index 0000000000000..7749cbe02fb8a --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7r_none_eabi.md @@ -0,0 +1 @@ +./armv7r_none_eabihf.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/armv7r_none_eabihf.md b/src/doc/rustc/src/platform-support/armv7r_none_eabihf.md new file mode 120000 index 0000000000000..73937fcdae739 --- /dev/null +++ b/src/doc/rustc/src/platform-support/armv7r_none_eabihf.md @@ -0,0 +1 @@ +./armebv7r_none_eabihf.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/avr.md b/src/doc/rustc/src/platform-support/avr_unknown_gnu_atmega328.md similarity index 100% rename from src/doc/rustc/src/platform-support/avr.md rename to src/doc/rustc/src/platform-support/avr_unknown_gnu_atmega328.md diff --git a/src/doc/rustc/src/platform-support/bpfeb_unknown_none.md b/src/doc/rustc/src/platform-support/bpfeb_unknown_none.md new file mode 120000 index 0000000000000..94c08f9bf924d --- /dev/null +++ b/src/doc/rustc/src/platform-support/bpfeb_unknown_none.md @@ -0,0 +1 @@ +./bpfel_unknown_none.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/bpf.md b/src/doc/rustc/src/platform-support/bpfel_unknown_none.md similarity index 100% rename from src/doc/rustc/src/platform-support/bpf.md rename to src/doc/rustc/src/platform-support/bpfel_unknown_none.md diff --git a/src/doc/rustc/src/platform-support/nto_qnx.md b/src/doc/rustc/src/platform-support/i586_pc_nto_qnx700.md similarity index 100% rename from src/doc/rustc/src/platform-support/nto_qnx.md rename to src/doc/rustc/src/platform-support/i586_pc_nto_qnx700.md diff --git a/src/doc/rustc/src/platform-support/i586_pc_windows_msvc.md b/src/doc/rustc/src/platform-support/i586_pc_windows_msvc.md new file mode 120000 index 0000000000000..33e89b4442aad --- /dev/null +++ b/src/doc/rustc/src/platform-support/i586_pc_windows_msvc.md @@ -0,0 +1 @@ +./thumbv7a_pc_windows_msvc.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/i686_linux_android.md b/src/doc/rustc/src/platform-support/i686_linux_android.md new file mode 120000 index 0000000000000..85f2b096ead6c --- /dev/null +++ b/src/doc/rustc/src/platform-support/i686_linux_android.md @@ -0,0 +1 @@ +./thumbv7neon_linux_androideabi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/pc_windows_gnullvm.md b/src/doc/rustc/src/platform-support/i686_pc_windows_gnullvm.md similarity index 100% rename from src/doc/rustc/src/platform-support/pc_windows_gnullvm.md rename to src/doc/rustc/src/platform-support/i686_pc_windows_gnullvm.md diff --git a/src/doc/rustc/src/platform-support/i686_pc_windows_msvc.md b/src/doc/rustc/src/platform-support/i686_pc_windows_msvc.md new file mode 120000 index 0000000000000..7f21c6bf21012 --- /dev/null +++ b/src/doc/rustc/src/platform-support/i686_pc_windows_msvc.md @@ -0,0 +1 @@ +./i586_pc_windows_msvc.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/freebsd.md b/src/doc/rustc/src/platform-support/i686_unknown_freebsd.md similarity index 100% rename from src/doc/rustc/src/platform-support/freebsd.md rename to src/doc/rustc/src/platform-support/i686_unknown_freebsd.md diff --git a/src/doc/rustc/src/platform-support/haiku.md b/src/doc/rustc/src/platform-support/i686_unknown_haiku.md similarity index 100% rename from src/doc/rustc/src/platform-support/haiku.md rename to src/doc/rustc/src/platform-support/i686_unknown_haiku.md diff --git a/src/doc/rustc/src/platform-support/i686_unknown_netbsd.md b/src/doc/rustc/src/platform-support/i686_unknown_netbsd.md new file mode 120000 index 0000000000000..37426e7119de8 --- /dev/null +++ b/src/doc/rustc/src/platform-support/i686_unknown_netbsd.md @@ -0,0 +1 @@ +./x86_64_unknown_netbsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/i686_unknown_openbsd.md b/src/doc/rustc/src/platform-support/i686_unknown_openbsd.md new file mode 120000 index 0000000000000..3b2dd39131ef3 --- /dev/null +++ b/src/doc/rustc/src/platform-support/i686_unknown_openbsd.md @@ -0,0 +1 @@ +./x86_64_unknown_openbsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/unknown_uefi.md b/src/doc/rustc/src/platform-support/i686_unknown_uefi.md similarity index 100% rename from src/doc/rustc/src/platform-support/unknown_uefi.md rename to src/doc/rustc/src/platform-support/i686_unknown_uefi.md diff --git a/src/doc/rustc/src/platform-support/i686_uwp_windows_gnu.md b/src/doc/rustc/src/platform-support/i686_uwp_windows_gnu.md new file mode 120000 index 0000000000000..3f4536bc66fed --- /dev/null +++ b/src/doc/rustc/src/platform-support/i686_uwp_windows_gnu.md @@ -0,0 +1 @@ +./x86_64_uwp_windows_gnu.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/i686_uwp_windows_msvc.md b/src/doc/rustc/src/platform-support/i686_uwp_windows_msvc.md new file mode 120000 index 0000000000000..f6bbca24b0639 --- /dev/null +++ b/src/doc/rustc/src/platform-support/i686_uwp_windows_msvc.md @@ -0,0 +1 @@ +./x86_64_pc_windows_msvc.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/i686_wrs_vxworks.md b/src/doc/rustc/src/platform-support/i686_wrs_vxworks.md new file mode 120000 index 0000000000000..03b1935a83151 --- /dev/null +++ b/src/doc/rustc/src/platform-support/i686_wrs_vxworks.md @@ -0,0 +1 @@ +./x86_64_wrs_vxworks.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/loongarch_linux.md b/src/doc/rustc/src/platform-support/loongarch64_unknown_linux_gnu.md similarity index 100% rename from src/doc/rustc/src/platform-support/loongarch_linux.md rename to src/doc/rustc/src/platform-support/loongarch64_unknown_linux_gnu.md diff --git a/src/doc/rustc/src/platform-support/loongarch64_unknown_none.md b/src/doc/rustc/src/platform-support/loongarch64_unknown_none.md new file mode 120000 index 0000000000000..377cba946e774 --- /dev/null +++ b/src/doc/rustc/src/platform-support/loongarch64_unknown_none.md @@ -0,0 +1 @@ +./loongarch64_unknown_none_softfloat.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/loongarch_none.md b/src/doc/rustc/src/platform-support/loongarch64_unknown_none_softfloat.md similarity index 100% rename from src/doc/rustc/src/platform-support/loongarch_none.md rename to src/doc/rustc/src/platform-support/loongarch64_unknown_none_softfloat.md diff --git a/src/doc/rustc/src/platform-support/mips64_unknown_linux_gnuabi64.md b/src/doc/rustc/src/platform-support/mips64_unknown_linux_gnuabi64.md deleted file mode 100644 index 35acd66499430..0000000000000 --- a/src/doc/rustc/src/platform-support/mips64_unknown_linux_gnuabi64.md +++ /dev/null @@ -1,29 +0,0 @@ -# `mips64{,el}-unknown-linux-gnuabi64` - -**Tier: 2 (with Host Tools)** - -MIPS64 Linux (optionally little endian), n64 ABI (kernel 4.4, glibc 2.23) - -## Target maintainers - -- Missing! - -## Requirements - -Missing! - -## Building the target - -Missing! - -## Building Rust programs - -Missing! - -## Testing - -Missing! - -## Cross-compilation toolchains and C code - -Missing! diff --git a/src/doc/rustc/src/platform-support/mips64_unknown_linux_gnuabi64.md b/src/doc/rustc/src/platform-support/mips64_unknown_linux_gnuabi64.md new file mode 120000 index 0000000000000..40253a0f28a55 --- /dev/null +++ b/src/doc/rustc/src/platform-support/mips64_unknown_linux_gnuabi64.md @@ -0,0 +1 @@ +./mips64el_unknown_linux_gnuabi64.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/mips64_unknown_linux_muslabi64.md b/src/doc/rustc/src/platform-support/mips64_unknown_linux_muslabi64.md new file mode 120000 index 0000000000000..fd33ebbfd0958 --- /dev/null +++ b/src/doc/rustc/src/platform-support/mips64_unknown_linux_muslabi64.md @@ -0,0 +1 @@ +./mips64el_unknown_linux_muslabi64.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/mips64el_unknown_linux_gnuabi64.md b/src/doc/rustc/src/platform-support/mips64el_unknown_linux_gnuabi64.md new file mode 100644 index 0000000000000..35acd66499430 --- /dev/null +++ b/src/doc/rustc/src/platform-support/mips64el_unknown_linux_gnuabi64.md @@ -0,0 +1,29 @@ +# `mips64{,el}-unknown-linux-gnuabi64` + +**Tier: 2 (with Host Tools)** + +MIPS64 Linux (optionally little endian), n64 ABI (kernel 4.4, glibc 2.23) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/src/doc/rustc/src/platform-support/mips64_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/mips64el_unknown_linux_muslabi64.md similarity index 100% rename from src/doc/rustc/src/platform-support/mips64_unknown_linux_musl.md rename to src/doc/rustc/src/platform-support/mips64el_unknown_linux_muslabi64.md diff --git a/src/doc/rustc/src/platform-support/mips_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/mips_unknown_linux_musl.md deleted file mode 100644 index a59f5f3e47b32..0000000000000 --- a/src/doc/rustc/src/platform-support/mips_unknown_linux_musl.md +++ /dev/null @@ -1,29 +0,0 @@ -# `mips{,sel}-unknown-linux-musl` - -**Tier: 2** - -MIPS (+ LE) Linux with MUSL - -## Target maintainers - -- Missing! - -## Requirements - -Missing! - -## Building the target - -Missing! - -## Building Rust programs - -Missing! - -## Testing - -Missing! - -## Cross-compilation toolchains and C code - -Missing! diff --git a/src/doc/rustc/src/platform-support/mips_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/mips_unknown_linux_musl.md new file mode 120000 index 0000000000000..abe02cf5be24c --- /dev/null +++ b/src/doc/rustc/src/platform-support/mips_unknown_linux_musl.md @@ -0,0 +1 @@ +./mipsel_unknown_linux_musl.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/mipsel_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/mipsel_unknown_linux_gnu.md new file mode 120000 index 0000000000000..c2e9627b29f2c --- /dev/null +++ b/src/doc/rustc/src/platform-support/mipsel_unknown_linux_gnu.md @@ -0,0 +1 @@ +./mips_unknown_linux_gnu.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/mipsel_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/mipsel_unknown_linux_musl.md new file mode 100644 index 0000000000000..a59f5f3e47b32 --- /dev/null +++ b/src/doc/rustc/src/platform-support/mipsel_unknown_linux_musl.md @@ -0,0 +1,29 @@ +# `mips{,sel}-unknown-linux-musl` + +**Tier: 2** + +MIPS (+ LE) Linux with MUSL + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/src/doc/rustc/src/platform-support/mipsisa32r6_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/mipsisa32r6_unknown_linux_gnu.md new file mode 120000 index 0000000000000..8fced9426ee00 --- /dev/null +++ b/src/doc/rustc/src/platform-support/mipsisa32r6_unknown_linux_gnu.md @@ -0,0 +1 @@ +./mipsisa64r6_unknown_linux_gnuabi64.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/mipsisa32r6el_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/mipsisa32r6el_unknown_linux_gnu.md new file mode 120000 index 0000000000000..6f06f0ecdef61 --- /dev/null +++ b/src/doc/rustc/src/platform-support/mipsisa32r6el_unknown_linux_gnu.md @@ -0,0 +1 @@ +./mipsisa64r6el_unknown_linux_gnuabi64.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/mips_release_6.md b/src/doc/rustc/src/platform-support/mipsisa64r6_unknown_linux_gnuabi64.md similarity index 100% rename from src/doc/rustc/src/platform-support/mips_release_6.md rename to src/doc/rustc/src/platform-support/mipsisa64r6_unknown_linux_gnuabi64.md diff --git a/src/doc/rustc/src/platform-support/mipsisa64r6el_unknown_linux_gnuabi64.md b/src/doc/rustc/src/platform-support/mipsisa64r6el_unknown_linux_gnuabi64.md new file mode 120000 index 0000000000000..01c403602be1e --- /dev/null +++ b/src/doc/rustc/src/platform-support/mipsisa64r6el_unknown_linux_gnuabi64.md @@ -0,0 +1 @@ +./mipsisa32r6_unknown_linux_gnu.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/powerpc64_unknown_freebsd.md b/src/doc/rustc/src/platform-support/powerpc64_unknown_freebsd.md new file mode 120000 index 0000000000000..2ec7d3d5baed9 --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc64_unknown_freebsd.md @@ -0,0 +1 @@ +./powerpc64le_unknown_freebsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/powerpc64_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/powerpc64_unknown_linux_gnu.md deleted file mode 100644 index f7237a623e370..0000000000000 --- a/src/doc/rustc/src/platform-support/powerpc64_unknown_linux_gnu.md +++ /dev/null @@ -1,29 +0,0 @@ -# `powerpc64{,le}-unknown-linux-gnu` - -**Tier: 2 (with Host Tools)** - -PPC64 Linux (kernel 3.2, glibc 2.17) - -## Target maintainers - -- Missing! - -## Requirements - -Missing! - -## Building the target - -Missing! - -## Building Rust programs - -Missing! - -## Testing - -Missing! - -## Cross-compilation toolchains and C code - -Missing! diff --git a/src/doc/rustc/src/platform-support/powerpc64_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/powerpc64_unknown_linux_gnu.md new file mode 120000 index 0000000000000..88c393308fb2a --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc64_unknown_linux_gnu.md @@ -0,0 +1 @@ +./powerpc64le_unknown_linux_gnu.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/powerpc64_unknown_openbsd.md b/src/doc/rustc/src/platform-support/powerpc64_unknown_openbsd.md new file mode 120000 index 0000000000000..b2fcb8642e5fa --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc64_unknown_openbsd.md @@ -0,0 +1 @@ +./powerpc_unknown_openbsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/powerpc64_wrs_vxworks.md b/src/doc/rustc/src/platform-support/powerpc64_wrs_vxworks.md new file mode 120000 index 0000000000000..98e77d48e2172 --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc64_wrs_vxworks.md @@ -0,0 +1 @@ +./powerpc_wrs_vxworks_spe.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/powerpc64le_unknown_freebsd.md b/src/doc/rustc/src/platform-support/powerpc64le_unknown_freebsd.md new file mode 120000 index 0000000000000..9435ae1b91190 --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc64le_unknown_freebsd.md @@ -0,0 +1 @@ +./armv7_unknown_freebsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/powerpc64le_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/powerpc64le_unknown_linux_gnu.md new file mode 100644 index 0000000000000..f7237a623e370 --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc64le_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `powerpc64{,le}-unknown-linux-gnu` + +**Tier: 2 (with Host Tools)** + +PPC64 Linux (kernel 3.2, glibc 2.17) + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/src/doc/rustc/src/platform-support/powerpc_unknown_freebsd.md b/src/doc/rustc/src/platform-support/powerpc_unknown_freebsd.md new file mode 120000 index 0000000000000..52c94b15f24c1 --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc_unknown_freebsd.md @@ -0,0 +1 @@ +./armv6_unknown_freebsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/powerpc_unknown_netbsd.md b/src/doc/rustc/src/platform-support/powerpc_unknown_netbsd.md new file mode 120000 index 0000000000000..9d4228d6d5e53 --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc_unknown_netbsd.md @@ -0,0 +1 @@ +./armv6_unknown_netbsd_eabihf.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/powerpc_unknown_openbsd.md b/src/doc/rustc/src/platform-support/powerpc_unknown_openbsd.md new file mode 120000 index 0000000000000..0936ab70c0d31 --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc_unknown_openbsd.md @@ -0,0 +1 @@ +./i686_unknown_openbsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/powerpc_wrs_vxworks.md b/src/doc/rustc/src/platform-support/powerpc_wrs_vxworks.md new file mode 120000 index 0000000000000..573f139147ece --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc_wrs_vxworks.md @@ -0,0 +1 @@ +./powerpc64_wrs_vxworks.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/powerpc_wrs_vxworks_spe.md b/src/doc/rustc/src/platform-support/powerpc_wrs_vxworks_spe.md new file mode 120000 index 0000000000000..45c34d7ceef0b --- /dev/null +++ b/src/doc/rustc/src/platform-support/powerpc_wrs_vxworks_spe.md @@ -0,0 +1 @@ +./i686_wrs_vxworks.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/riscvgc_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/riscv32gc_unknown_linux_musl.md similarity index 100% rename from src/doc/rustc/src/platform-support/riscvgc_unknown_linux_musl.md rename to src/doc/rustc/src/platform-support/riscv32gc_unknown_linux_musl.md diff --git a/src/doc/rustc/src/platform-support/esp_idf.md b/src/doc/rustc/src/platform-support/riscv32imac_esp_espidf.md similarity index 100% rename from src/doc/rustc/src/platform-support/esp_idf.md rename to src/doc/rustc/src/platform-support/riscv32imac_esp_espidf.md diff --git a/src/doc/rustc/src/platform-support/riscv32imc_esp_espidf.md b/src/doc/rustc/src/platform-support/riscv32imc_esp_espidf.md new file mode 120000 index 0000000000000..994a018fd7b97 --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv32imc_esp_espidf.md @@ -0,0 +1 @@ +./riscv32imac_esp_espidf.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/riscv64_linux_android.md b/src/doc/rustc/src/platform-support/riscv64_linux_android.md new file mode 120000 index 0000000000000..24600e34ab83d --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv64_linux_android.md @@ -0,0 +1 @@ +./i686_linux_android.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/riscv64gc_unknown_freebsd.md b/src/doc/rustc/src/platform-support/riscv64gc_unknown_freebsd.md new file mode 120000 index 0000000000000..0a1eac18b55c7 --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv64gc_unknown_freebsd.md @@ -0,0 +1 @@ +./powerpc_unknown_freebsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/riscv64gc_unknown_fuchsia.md b/src/doc/rustc/src/platform-support/riscv64gc_unknown_fuchsia.md new file mode 120000 index 0000000000000..fc3c96e072a93 --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv64gc_unknown_fuchsia.md @@ -0,0 +1 @@ +./x86_64_fuchsia.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/riscv64gc_unknown_hermit.md b/src/doc/rustc/src/platform-support/riscv64gc_unknown_hermit.md new file mode 120000 index 0000000000000..c2b1a3f3a826a --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv64gc_unknown_hermit.md @@ -0,0 +1 @@ +./aarch64_unknown_hermit.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/riscv64gc_unknown_linux_musl.md b/src/doc/rustc/src/platform-support/riscv64gc_unknown_linux_musl.md new file mode 120000 index 0000000000000..4d6f34122af12 --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv64gc_unknown_linux_musl.md @@ -0,0 +1 @@ +./riscv32gc_unknown_linux_musl.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/riscv64gc_unknown_netbsd.md b/src/doc/rustc/src/platform-support/riscv64gc_unknown_netbsd.md new file mode 120000 index 0000000000000..3e0a7c48d65e9 --- /dev/null +++ b/src/doc/rustc/src/platform-support/riscv64gc_unknown_netbsd.md @@ -0,0 +1 @@ +./powerpc_unknown_netbsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/openbsd.md b/src/doc/rustc/src/platform-support/riscv64gc_unknown_openbsd.md similarity index 100% rename from src/doc/rustc/src/platform-support/openbsd.md rename to src/doc/rustc/src/platform-support/riscv64gc_unknown_openbsd.md diff --git a/src/doc/rustc/src/platform-support/sparc64_unknown_netbsd.md b/src/doc/rustc/src/platform-support/sparc64_unknown_netbsd.md new file mode 120000 index 0000000000000..f1d57623b95db --- /dev/null +++ b/src/doc/rustc/src/platform-support/sparc64_unknown_netbsd.md @@ -0,0 +1 @@ +./armv7_unknown_netbsd_eabihf.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/sparc64_unknown_openbsd.md b/src/doc/rustc/src/platform-support/sparc64_unknown_openbsd.md new file mode 120000 index 0000000000000..9b7c150c6e644 --- /dev/null +++ b/src/doc/rustc/src/platform-support/sparc64_unknown_openbsd.md @@ -0,0 +1 @@ +./aarch64_unknown_openbsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/thumbv4t_none_eabi.md b/src/doc/rustc/src/platform-support/thumbv4t_none_eabi.md new file mode 100644 index 0000000000000..a230eba6bf95c --- /dev/null +++ b/src/doc/rustc/src/platform-support/thumbv4t_none_eabi.md @@ -0,0 +1,63 @@ +# armv4t-none-eabi + +Tier 3 + +Bare-metal target for any cpu in the ARMv4T architecture family, supporting +ARM/Thumb code interworking (aka `a32`/`t32`), with ARM code as the default code +generation. + +In particular this supports the Gameboy Advance (GBA), but there's nothing GBA +specific with this target, so any ARMv4T device should work fine. + +## Target Maintainers + +* [@Lokathor](https://github.com/lokathor) + +## Requirements + +The target is cross-compiled, and uses static linking. + +This target doesn't provide a linker script, you'll need to bring your own +according to the specific device you want to target. Pass +`-Clink-arg=-Tyour_script.ld` as a rustc argument to make the linker use +`your_script.ld` during linking. + +## Building Rust Programs + +Because it is Tier 3, rust does not yet ship pre-compiled artifacts for this target. + +Just use the `build-std` nightly cargo feature to build the `core` library. You +can pass this as a command line argument to cargo, or your `.cargo/config.toml` +file might include the following lines: + +```toml +[unstable] +build-std = ["core"] +``` + +Most of `core` should work as expected, with the following notes: +* the target is "soft float", so `f32` and `f64` operations are emulated in + software. +* integer division is also emulated in software. +* the target is old enough that it doesn't have atomic instructions. + +Rust programs are output as ELF files. + +For running on hardware, you'll generally need to extract the "raw" program code +out of the ELF and into a file of its own. The `objcopy` program provided as +part of the GNU Binutils can do this: + +```shell +arm-none-eabi-objcopy --output-target binary [in_file] [out_file] +``` + +## Testing + +This is a cross-compiled target that you will need to emulate during testing. + +Because this is a device-agnostic target, and the exact emulator that you'll +need depends on the specific device you want to run your code on. + +For example, when programming for the Gameboy Advance, the +[mgba-test-runner](https://github.com/agbrs/agb) program could be used to make a +normal set of rust tests be run within the `mgba` emulator. diff --git a/src/doc/rustc/src/platform-support/thumbv5te_none_eabi.md b/src/doc/rustc/src/platform-support/thumbv5te_none_eabi.md new file mode 100644 index 0000000000000..f469dab1c42fa --- /dev/null +++ b/src/doc/rustc/src/platform-support/thumbv5te_none_eabi.md @@ -0,0 +1,66 @@ +# `armv5te-none-eabi` + +**Tier: 3** + +Bare-metal target for any cpu in the ARMv5TE architecture family, supporting +ARM/Thumb code interworking (aka `a32`/`t32`), with `a32` code as the default code +generation. + +The `thumbv5te-none-eabi` target is the same as this one, but the instruction set defaults to `t32`. + +## Target Maintainers + +* [@QuinnPainter](https://github.com/QuinnPainter) + +## Requirements + +The target is cross-compiled, and uses static linking. + +By default, the `lld` linker included with Rust will be used. + +However, you may want to use the `arm-none-eabi-ld` linker instead. This can be obtained for Windows/Mac/Linux from the [ARM +Developer Website][arm-dev], or possibly from your OS's package manager. To use it, add the following to your `.cargo/config.toml`: + +```toml +[target.armv5te-none-eabi] +linker = "arm-none-eabi-ld" +``` + +[arm-dev]: https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain + +This target doesn't provide a linker script, you'll need to bring your own +according to the specific device you want to target. Pass +`-Clink-arg=-Tyour_script.ld` as a rustc argument to make the linker use +`your_script.ld` during linking. + +## Building Rust Programs + +Because it is Tier 3, rust does not yet ship pre-compiled artifacts for this target. + +Just use the `build-std` nightly cargo feature to build the `core` library. You +can pass this as a command line argument to cargo, or your `.cargo/config.toml` +file might include the following lines: + +```toml +[unstable] +build-std = ["core"] +``` + +Most of `core` should work as expected, with the following notes: +* the target is "soft float", so `f32` and `f64` operations are emulated in + software. +* integer division is also emulated in software. +* the target is old enough that it doesn't have atomic instructions. + +`alloc` is also supported, as long as you provide your own global allocator. + +Rust programs are output as ELF files. + +## Testing + +This is a cross-compiled target that you will need to emulate during testing. + +Because this is a device-agnostic target, and the exact emulator that you'll +need depends on the specific device you want to run your code on. + +For example, when programming for the DS, you can use one of the several available DS emulators, such as [melonDS](https://melonds.kuribo64.net/). diff --git a/src/doc/rustc/src/platform-support/thumbv7a_pc_windows_msvc.md b/src/doc/rustc/src/platform-support/thumbv7a_pc_windows_msvc.md new file mode 120000 index 0000000000000..5176929d8b522 --- /dev/null +++ b/src/doc/rustc/src/platform-support/thumbv7a_pc_windows_msvc.md @@ -0,0 +1 @@ +./x86_64_uwp_windows_msvc.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/windows_msvc.md b/src/doc/rustc/src/platform-support/thumbv7a_uwp_windows_msvc.md similarity index 100% rename from src/doc/rustc/src/platform-support/windows_msvc.md rename to src/doc/rustc/src/platform-support/thumbv7a_uwp_windows_msvc.md diff --git a/src/doc/rustc/src/platform-support/thumbv7em_none_eabi.md b/src/doc/rustc/src/platform-support/thumbv7em_none_eabi.md new file mode 120000 index 0000000000000..2e8f7042cfdf5 --- /dev/null +++ b/src/doc/rustc/src/platform-support/thumbv7em_none_eabi.md @@ -0,0 +1 @@ +./thumbv7m_none_eabi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/thumbv7_none.md b/src/doc/rustc/src/platform-support/thumbv7em_none_eabihf.md similarity index 100% rename from src/doc/rustc/src/platform-support/thumbv7_none.md rename to src/doc/rustc/src/platform-support/thumbv7em_none_eabihf.md diff --git a/src/doc/rustc/src/platform-support/thumbv7m_none_eabi.md b/src/doc/rustc/src/platform-support/thumbv7m_none_eabi.md new file mode 120000 index 0000000000000..772d6274307b0 --- /dev/null +++ b/src/doc/rustc/src/platform-support/thumbv7m_none_eabi.md @@ -0,0 +1 @@ +./thumbv7em_none_eabihf.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/thumbv7neon_linux_androideabi.md b/src/doc/rustc/src/platform-support/thumbv7neon_linux_androideabi.md new file mode 120000 index 0000000000000..a82ff236da7b5 --- /dev/null +++ b/src/doc/rustc/src/platform-support/thumbv7neon_linux_androideabi.md @@ -0,0 +1 @@ +./aarch64_linux_android.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/thumbv8m.base_none_eabi.md b/src/doc/rustc/src/platform-support/thumbv8m_base_none_eabi.md similarity index 100% rename from src/doc/rustc/src/platform-support/thumbv8m.base_none_eabi.md rename to src/doc/rustc/src/platform-support/thumbv8m_base_none_eabi.md diff --git a/src/doc/rustc/src/platform-support/thumbv8m.main.md b/src/doc/rustc/src/platform-support/thumbv8m_main_none_eabi.md similarity index 100% rename from src/doc/rustc/src/platform-support/thumbv8m.main.md rename to src/doc/rustc/src/platform-support/thumbv8m_main_none_eabi.md diff --git a/src/doc/rustc/src/platform-support/thumbv8m_main_none_eabihf.md b/src/doc/rustc/src/platform-support/thumbv8m_main_none_eabihf.md new file mode 120000 index 0000000000000..df76184adad84 --- /dev/null +++ b/src/doc/rustc/src/platform-support/thumbv8m_main_none_eabihf.md @@ -0,0 +1 @@ +./thumbv8m_main_none_eabi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/x86_64_apple_ios_macabi.md b/src/doc/rustc/src/platform-support/x86_64_apple_ios_macabi.md new file mode 120000 index 0000000000000..bf7b057e92ed2 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_apple_ios_macabi.md @@ -0,0 +1 @@ +./aarch64_apple_ios_macabi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/x86_64_apple_tvos.md b/src/doc/rustc/src/platform-support/x86_64_apple_tvos.md new file mode 120000 index 0000000000000..144200e1e5034 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_apple_tvos.md @@ -0,0 +1 @@ +./aarch64_apple_tvos.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/x86_64_apple_watchos_sim.md b/src/doc/rustc/src/platform-support/x86_64_apple_watchos_sim.md new file mode 120000 index 0000000000000..37acbd124c391 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_apple_watchos_sim.md @@ -0,0 +1 @@ +./armv7k_apple_watchos.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/x86_64_fuchsia.md b/src/doc/rustc/src/platform-support/x86_64_fuchsia.md new file mode 120000 index 0000000000000..56a50a6680091 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_fuchsia.md @@ -0,0 +1 @@ +./aarch64_fuchsia.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/x86_64_linux_android.md b/src/doc/rustc/src/platform-support/x86_64_linux_android.md new file mode 120000 index 0000000000000..144e48d2d49d3 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_linux_android.md @@ -0,0 +1 @@ +./armv7_linux_androideabi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/x86_64_pc_nto_qnx710.md b/src/doc/rustc/src/platform-support/x86_64_pc_nto_qnx710.md new file mode 120000 index 0000000000000..ad0da0e1663d6 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_pc_nto_qnx710.md @@ -0,0 +1 @@ +./aarch64_unknown_nto_qnx710.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/x86_64_pc_windows_gnullvm.md b/src/doc/rustc/src/platform-support/x86_64_pc_windows_gnullvm.md new file mode 120000 index 0000000000000..c83b8f8f79645 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_pc_windows_gnullvm.md @@ -0,0 +1 @@ +./aarch64_pc_windows_gnullvm.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/x86_64_pc_windows_msvc.md b/src/doc/rustc/src/platform-support/x86_64_pc_windows_msvc.md new file mode 120000 index 0000000000000..b89195e0d75ae --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_pc_windows_msvc.md @@ -0,0 +1 @@ +./i686_pc_windows_msvc.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/unikraft_linux_musl.md b/src/doc/rustc/src/platform-support/x86_64_unikraft_linux_musl.md similarity index 100% rename from src/doc/rustc/src/platform-support/unikraft_linux_musl.md rename to src/doc/rustc/src/platform-support/x86_64_unikraft_linux_musl.md diff --git a/src/doc/rustc/src/platform-support/x86_64_unknown_freebsd.md b/src/doc/rustc/src/platform-support/x86_64_unknown_freebsd.md new file mode 120000 index 0000000000000..d30cef20ed2a1 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_unknown_freebsd.md @@ -0,0 +1 @@ +./aarch64_unknown_freebsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/x86_64_unknown_fuchsia.md b/src/doc/rustc/src/platform-support/x86_64_unknown_fuchsia.md new file mode 120000 index 0000000000000..35314c8059dfc --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_unknown_fuchsia.md @@ -0,0 +1 @@ +./aarch64_unknown_fuchsia.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/x86_64_unknown_haiku.md b/src/doc/rustc/src/platform-support/x86_64_unknown_haiku.md new file mode 120000 index 0000000000000..d64984bfc643d --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_unknown_haiku.md @@ -0,0 +1 @@ +./i686_unknown_haiku.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/hermit.md b/src/doc/rustc/src/platform-support/x86_64_unknown_hermit.md similarity index 100% rename from src/doc/rustc/src/platform-support/hermit.md rename to src/doc/rustc/src/platform-support/x86_64_unknown_hermit.md diff --git a/src/doc/rustc/src/platform-support/x86_64_unknown_linux_ohos.md b/src/doc/rustc/src/platform-support/x86_64_unknown_linux_ohos.md new file mode 120000 index 0000000000000..7e1ff37d76b4a --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_unknown_linux_ohos.md @@ -0,0 +1 @@ +./aarch64_unknown_linux_ohos.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/x86_64_unknown_netbsd.md b/src/doc/rustc/src/platform-support/x86_64_unknown_netbsd.md new file mode 120000 index 0000000000000..3405781c02eb4 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_unknown_netbsd.md @@ -0,0 +1 @@ +./aarch64_unknown_netbsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/x86_64_unknown_openbsd.md b/src/doc/rustc/src/platform-support/x86_64_unknown_openbsd.md new file mode 120000 index 0000000000000..62e932e6a123d --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_unknown_openbsd.md @@ -0,0 +1 @@ +./sparc64_unknown_openbsd.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/x86_64_unknown_uefi.md b/src/doc/rustc/src/platform-support/x86_64_unknown_uefi.md new file mode 120000 index 0000000000000..a7794de60ede7 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_unknown_uefi.md @@ -0,0 +1 @@ +./aarch64_unknown_uefi.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/uwp_windows_gnu.md b/src/doc/rustc/src/platform-support/x86_64_uwp_windows_gnu.md similarity index 100% rename from src/doc/rustc/src/platform-support/uwp_windows_gnu.md rename to src/doc/rustc/src/platform-support/x86_64_uwp_windows_gnu.md diff --git a/src/doc/rustc/src/platform-support/x86_64_uwp_windows_msvc.md b/src/doc/rustc/src/platform-support/x86_64_uwp_windows_msvc.md new file mode 120000 index 0000000000000..46503c469f883 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_uwp_windows_msvc.md @@ -0,0 +1 @@ +./aarch64_uwp_windows_msvc.md \ No newline at end of file diff --git a/src/doc/rustc/src/platform-support/x86_64_wrs_vxworks.md b/src/doc/rustc/src/platform-support/x86_64_wrs_vxworks.md new file mode 120000 index 0000000000000..316c0ca391109 --- /dev/null +++ b/src/doc/rustc/src/platform-support/x86_64_wrs_vxworks.md @@ -0,0 +1 @@ +./aarch64_wrs_vxworks.md \ No newline at end of file From 87fe421207339b436b46a415229029b00e9986c8 Mon Sep 17 00:00:00 2001 From: David Wood Date: Wed, 13 Sep 2023 17:11:41 +0100 Subject: [PATCH 142/145] target compliance: armv7-sony-vita-newlibeabihf Signed-off-by: David Wood --- .../targets/armv7_sony_vita_newlibeabihf.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/assembly/targets/armv7_sony_vita_newlibeabihf.rs diff --git a/tests/assembly/targets/armv7_sony_vita_newlibeabihf.rs b/tests/assembly/targets/armv7_sony_vita_newlibeabihf.rs new file mode 100644 index 0000000000000..7cb89c01623d3 --- /dev/null +++ b/tests/assembly/targets/armv7_sony_vita_newlibeabihf.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target armv7-sony-vita-newlibeabihf +// needs-llvm-components: arm + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 94116c06414445be43da9a994bcc08f61cc5a82b Mon Sep 17 00:00:00 2001 From: David Wood Date: Wed, 13 Sep 2023 17:18:32 +0100 Subject: [PATCH 143/145] rustc_target: add missing i386/i486 These targets had specification files but they were never actually added to the compiler. Signed-off-by: David Wood --- compiler/rustc_target/src/spec/mod.rs | 2 ++ src/doc/rustc/src/platform-support.md | 2 ++ .../i386_unknown_linux_gnu.md | 29 +++++++++++++++++++ .../i486_unknown_linux_gnu.md | 29 +++++++++++++++++++ .../targets/i386_unknown_linux_gnu.rs | 17 +++++++++++ .../targets/i486_unknown_linux_gnu.rs | 17 +++++++++++ 6 files changed, 96 insertions(+) create mode 100644 src/doc/rustc/src/platform-support/i386_unknown_linux_gnu.md create mode 100644 src/doc/rustc/src/platform-support/i486_unknown_linux_gnu.md create mode 100644 tests/assembly/targets/i386_unknown_linux_gnu.rs create mode 100644 tests/assembly/targets/i486_unknown_linux_gnu.rs diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs index a281de8188155..1210cf26e7f4b 100644 --- a/compiler/rustc_target/src/spec/mod.rs +++ b/compiler/rustc_target/src/spec/mod.rs @@ -1242,6 +1242,8 @@ supported_targets! { ("x86_64-unknown-linux-gnux32", x86_64_unknown_linux_gnux32), ("i686-unknown-linux-gnu", i686_unknown_linux_gnu), ("i586-unknown-linux-gnu", i586_unknown_linux_gnu), + ("i486-unknown-linux-gnu", i486_unknown_linux_gnu), + ("i386-unknown-linux-gnu", i386_unknown_linux_gnu), ("loongarch64-unknown-linux-gnu", loongarch64_unknown_linux_gnu), ("m68k-unknown-linux-gnu", m68k_unknown_linux_gnu), ("csky-unknown-linux-gnuabiv2", csky_unknown_linux_gnuabiv2), diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md index c947df0de957b..c0ffa74755fde 100644 --- a/src/doc/rustc/src/platform-support.md +++ b/src/doc/rustc/src/platform-support.md @@ -264,6 +264,8 @@ target | std | host | notes [`csky-unknown-linux-gnuabiv2`](platform-support/csky_unknown_linux_gnuabiv2.md) | ✓ | | C-SKY abiv2 Linux (Little Endian) [`hexagon-unknown-linux-musl`](platform-support/hexagon_unknown_linux_musl.md) | ? | | Hexagon Linux MUSL [`i386-apple-ios`](platform-support/i386_apple_ios.md) | ✓ | | 32-bit x86 iOS +[`i386-unknown-linux-gnu`](platform-support/i386_unknown_linux_gnu.md) | ✓ | | ??? +[`i486-unknown-linux-gnu`](platform-support/i486_unknown_linux_gnu.md) | ✓ | | ??? [`i586-pc-nto-qnx700`](platform-support/i586_pc_nto_qnx700.md) | * | | 32-bit x86 QNX Neutrino 7.0 RTOS | [`i686-apple-darwin`](platform-support/i686_apple_darwin.md) | ✓ | ✓ | 32-bit macOS (10.7+, Lion+) [`i686-pc-windows-gnullvm`](platform-support/i686_pc_windows_gnullvm.md) | ✓ | ✓ | diff --git a/src/doc/rustc/src/platform-support/i386_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/i386_unknown_linux_gnu.md new file mode 100644 index 0000000000000..c47fd8ea9e82f --- /dev/null +++ b/src/doc/rustc/src/platform-support/i386_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `i386-unknown-linux-gnu` + +**Tier: 3** + +Missing! + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/src/doc/rustc/src/platform-support/i486_unknown_linux_gnu.md b/src/doc/rustc/src/platform-support/i486_unknown_linux_gnu.md new file mode 100644 index 0000000000000..bd9d567c73467 --- /dev/null +++ b/src/doc/rustc/src/platform-support/i486_unknown_linux_gnu.md @@ -0,0 +1,29 @@ +# `i486-unknown-linux-gnu` + +**Tier: 3** + +Missing! + +## Target maintainers + +- Missing! + +## Requirements + +Missing! + +## Building the target + +Missing! + +## Building Rust programs + +Missing! + +## Testing + +Missing! + +## Cross-compilation toolchains and C code + +Missing! diff --git a/tests/assembly/targets/i386_unknown_linux_gnu.rs b/tests/assembly/targets/i386_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..b7d1a09a3d658 --- /dev/null +++ b/tests/assembly/targets/i386_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i386-unknown-linux-gnu +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section diff --git a/tests/assembly/targets/i486_unknown_linux_gnu.rs b/tests/assembly/targets/i486_unknown_linux_gnu.rs new file mode 100644 index 0000000000000..955c3eee4708e --- /dev/null +++ b/tests/assembly/targets/i486_unknown_linux_gnu.rs @@ -0,0 +1,17 @@ +// assembly-output: emit-asm +// compile-flags: --target i486-unknown-linux-gnu +// needs-llvm-components: x86 + +#![feature(no_core, lang_items)] +#![no_std] +#![no_core] +#![crate_type = "lib"] + +#[lang = "sized"] +trait Sized {} + +pub fn test() -> u8 { + 42 +} + +// CHECK: .section From 64a9b74565c58ec99adabe2801f637c0cf29c116 Mon Sep 17 00:00:00 2001 From: David Wood Date: Wed, 13 Sep 2023 17:28:25 +0100 Subject: [PATCH 144/145] tidy: look for unused tests/docs in target policy tidy's target policy check makes sure that every target has a platform support document and test, and now also makes sure that no platform support documents or tests exist that don't correspond to a target. Signed-off-by: David Wood --- src/tools/tidy/src/target_policy.rs | 55 +++++++++++++++++++++++++++-- src/tools/tidy/src/walk.rs | 12 ++++++- 2 files changed, 63 insertions(+), 4 deletions(-) diff --git a/src/tools/tidy/src/target_policy.rs b/src/tools/tidy/src/target_policy.rs index 244ad2ea0f551..1e75d7a219655 100644 --- a/src/tools/tidy/src/target_policy.rs +++ b/src/tools/tidy/src/target_policy.rs @@ -2,16 +2,20 @@ //! documentation in `src/doc/rustc/src/platform-support/` and an assembly test in //! `tests/assembly/targets`. -use crate::walk::filter_not_rust; -use std::path::Path; +use crate::walk::{filter_not_markdown, filter_not_rust}; +use std::{collections::HashSet, path::Path}; const TARGET_DEFINITIONS_PATH: &str = "compiler/rustc_target/src/spec/"; const TARGET_DOCS_PATH: &str = "src/doc/rustc/src/platform-support/"; const TARGET_TESTS_PATH: &str = "tests/assembly/targets/"; -const SKIPPED_FILES: &[&str] = &["base", "tests", "mod.rs", "abi.rs", "crt_objects.rs"]; +const SKIPPED_FILES: &[&str] = + &["base", "tests", "mod.rs", "abi.rs", "crt_objects.rs", "TEMPLATE.md"]; pub fn check(root_path: &Path, bad: &mut bool) { + let mut expected_docs = HashSet::new(); + let mut expected_tests = HashSet::new(); + let definitions_path = root_path.join(TARGET_DEFINITIONS_PATH); for defn in ignore::WalkBuilder::new(&definitions_path) .max_depth(Some(1)) @@ -32,6 +36,7 @@ pub fn check(root_path: &Path, bad: &mut bool) { let name_no_ext = path.file_stem().unwrap().to_str().unwrap(); let test_path = root_path.join(TARGET_TESTS_PATH).join(&name); + expected_tests.insert(test_path.clone()); if !test_path.exists() { tidy_error!( bad, @@ -42,6 +47,7 @@ pub fn check(root_path: &Path, bad: &mut bool) { } let doc_path = root_path.join(TARGET_DOCS_PATH).join(&name_no_ext).with_extension("md"); + expected_docs.insert(doc_path.clone()); if !doc_path.exists() { tidy_error!( bad, @@ -51,4 +57,47 @@ pub fn check(root_path: &Path, bad: &mut bool) { ); } } + + let tests_path = root_path.join(TARGET_TESTS_PATH); + for defn in ignore::WalkBuilder::new(&tests_path) + .max_depth(Some(1)) + .filter_entry(|e| { + !filter_not_rust(e.path()) && !SKIPPED_FILES.contains(&e.file_name().to_str().unwrap()) + }) + .build() + { + let defn = defn.unwrap(); + let path = defn.path(); + if path == tests_path { + continue; + } + + if !expected_tests.contains(path) { + tidy_error!(bad, "target test `{}` exists but target does not", path.display()); + } + } + + let docs_path = root_path.join(TARGET_DOCS_PATH); + for defn in ignore::WalkBuilder::new(&docs_path) + .max_depth(Some(1)) + .filter_entry(|e| { + !filter_not_markdown(e.path()) + && !SKIPPED_FILES.contains(&e.file_name().to_str().unwrap()) + }) + .build() + { + let defn = defn.unwrap(); + let path = defn.path(); + if path == docs_path { + continue; + } + + if !expected_docs.contains(path) { + tidy_error!( + bad, + "platform support doc `{}` exists but target does not", + path.display() + ); + } + } } diff --git a/src/tools/tidy/src/walk.rs b/src/tools/tidy/src/walk.rs index 185e1f3209b10..b6a1e5fd6d269 100644 --- a/src/tools/tidy/src/walk.rs +++ b/src/tools/tidy/src/walk.rs @@ -34,9 +34,19 @@ pub fn filter_dirs(path: &Path) -> bool { skip.iter().any(|p| path.ends_with(p)) } +/// Filter for only files that end in `ext`. +fn filter_not_ext(path: &Path, ext: &str) -> bool { + path.extension() != Some(OsStr::new(ext)) && !path.is_dir() +} + /// Filter for only files that end in `.rs`. pub fn filter_not_rust(path: &Path) -> bool { - path.extension() != Some(OsStr::new("rs")) && !path.is_dir() + filter_not_ext(path, "rs") +} + +/// Filter for only files that end in `.md`. +pub fn filter_not_markdown(path: &Path) -> bool { + filter_not_ext(path, "md") } pub fn walk( From 6199d59d76a8d8e8567c84c675bc218ba91342b5 Mon Sep 17 00:00:00 2001 From: David Wood Date: Wed, 20 Sep 2023 15:49:52 +0100 Subject: [PATCH 145/145] doc/rustc: add new platform support docs to SUMMARY Signed-off-by: David Wood --- src/doc/rustc/src/SUMMARY.md | 260 +++++++++++++++++++++++++++++------ 1 file changed, 221 insertions(+), 39 deletions(-) diff --git a/src/doc/rustc/src/SUMMARY.md b/src/doc/rustc/src/SUMMARY.md index 94605e2a21707..09b7e5717bb2a 100644 --- a/src/doc/rustc/src/SUMMARY.md +++ b/src/doc/rustc/src/SUMMARY.md @@ -15,45 +15,227 @@ - [Platform Support](platform-support.md) - [Target Tier Policy](target-tier-policy.md) - [Template for Target-specific Documentation](platform-support/TEMPLATE.md) - - [aarch64-apple-ios-sim](platform-support/aarch64-apple-ios-sim.md) - - [\*-apple-tvos](platform-support/apple-tvos.md) - - [\*-apple-watchos\*](platform-support/apple-watchos.md) - - [aarch64-nintendo-switch-freestanding](platform-support/aarch64-nintendo-switch-freestanding.md) - - [armeb-unknown-linux-gnueabi](platform-support/armeb-unknown-linux-gnueabi.md) - - [armv4t-none-eabi](platform-support/armv4t-none-eabi.md) - - [armv5te-none-eabi](platform-support/armv5te-none-eabi.md) - - [armv6k-nintendo-3ds](platform-support/armv6k-nintendo-3ds.md) - - [armv7-sony-vita-newlibeabihf](platform-support/armv7-sony-vita-newlibeabihf.md) - - [armv7-unknown-linux-uclibceabi](platform-support/armv7-unknown-linux-uclibceabi.md) - - [armv7-unknown-linux-uclibceabihf](platform-support/armv7-unknown-linux-uclibceabihf.md) - - [\*-android and \*-androideabi](platform-support/android.md) - - [\*-linux-ohos](platform-support/openharmony.md) - - [aarch64-unknown-teeos](platform-support/aarch64-unknown-teeos.md) - - [\*-esp-espidf](platform-support/esp-idf.md) - - [\*-unknown-fuchsia](platform-support/fuchsia.md) - - [\*-kmc-solid_\*](platform-support/kmc-solid.md) - - [csky-unknown-linux-gnuabiv2](platform-support/csky-unknown-linux-gnuabiv2.md) - - [loongarch\*-unknown-linux-\*](platform-support/loongarch-linux.md) - - [loongarch\*-unknown-none\*](platform-support/loongarch-none.md) - - [m68k-unknown-linux-gnu](platform-support/m68k-unknown-linux-gnu.md) - - [mips64-openwrt-linux-musl](platform-support/mips64-openwrt-linux-musl.md) - - [mipsel-sony-psx](platform-support/mipsel-sony-psx.md) - - [mipsisa\*r6\*-unknown-linux-gnu\*](platform-support/mips-release-6.md) - - [nvptx64-nvidia-cuda](platform-support/nvptx64-nvidia-cuda.md) - - [riscv32imac-unknown-xous-elf](platform-support/riscv32imac-unknown-xous-elf.md) - - [sparc-unknown-none-elf](./platform-support/sparc-unknown-none-elf.md) - - [*-pc-windows-gnullvm](platform-support/pc-windows-gnullvm.md) - - [\*-nto-qnx-\*](platform-support/nto-qnx.md) - - [*-unikraft-linux-musl](platform-support/unikraft-linux-musl.md) - - [*-unknown-hermit](platform-support/hermit.md) - - [\*-unknown-netbsd\*](platform-support/netbsd.md) - - [*-unknown-openbsd](platform-support/openbsd.md) - - [\*-unknown-uefi](platform-support/unknown-uefi.md) - - [wasm32-wasi-preview1-threads](platform-support/wasm32-wasi-preview1-threads.md) - - [wasm64-unknown-unknown](platform-support/wasm64-unknown-unknown.md) - - [x86_64-fortanix-unknown-sgx](platform-support/x86_64-fortanix-unknown-sgx.md) - - [x86_64-unknown-none](platform-support/x86_64-unknown-none.md) - - [x86_64h-apple-darwin](platform-support/x86_64h-apple-darwin.md) + - [aarch64-apple-darwin](platform-support/aarch64_apple_darwin.md) + - [aarch64-apple-ios](platform-support/aarch64_apple_ios.md) + - [aarch64-apple-ios-macabi](platform-support/aarch64_apple_ios_macabi.md) + - [aarch64-apple-ios-sim](platform-support/aarch64_apple_ios_sim.md) + - [aarch64-apple-tvos](platform-support/aarch64_apple_tvos.md) + - [aarch64-apple-watchos-sim](platform-support/aarch64_apple_watchos_sim.md) + - [aarch64_be-unknown-linux-gnu](platform-support/aarch64_be_unknown_linux_gnu.md) + - [aarch64_be-unknown-linux-gnu_ilp32](platform-support/aarch64_be_unknown_linux_gnu_ilp32.md) + - [aarch64_be-unknown-netbsd](platform-support/aarch64_be_unknown_netbsd.md) + - [aarch64-fuchsia](platform-support/aarch64_fuchsia.md) + - [aarch64-kmc-solid_asp3](platform-support/aarch64_kmc_solid_asp3.md) + - [aarch64-linux-android](platform-support/aarch64_linux_android.md) + - [aarch64-nintendo-switch-freestanding](platform-support/aarch64_nintendo_switch_freestanding.md) + - [aarch64-pc-windows-gnullvm](platform-support/aarch64_pc_windows_gnullvm.md) + - [aarch64-pc-windows-msvc](platform-support/aarch64_pc_windows_msvc.md) + - [aarch64-unknown-freebsd](platform-support/aarch64_unknown_freebsd.md) + - [aarch64-unknown-fuchsia](platform-support/aarch64_unknown_fuchsia.md) + - [aarch64-unknown-hermit](platform-support/aarch64_unknown_hermit.md) + - [aarch64-unknown-linux-gnu](platform-support/aarch64_unknown_linux_gnu.md) + - [aarch64-unknown-linux-gnu_ilp32](platform-support/aarch64_unknown_linux_gnu_ilp32.md) + - [aarch64-unknown-linux-musl](platform-support/aarch64_unknown_linux_musl.md) + - [aarch64-unknown-linux-ohos](platform-support/aarch64_unknown_linux_ohos.md) + - [aarch64-unknown-netbsd](platform-support/aarch64_unknown_netbsd.md) + - [aarch64-unknown-none](platform-support/aarch64_unknown_none.md) + - [aarch64-unknown-none-softfloat](platform-support/aarch64_unknown_none_softfloat.md) + - [aarch64-unknown-nto-qnx710](platform-support/aarch64_unknown_nto_qnx710.md) + - [aarch64-unknown-openbsd](platform-support/aarch64_unknown_openbsd.md) + - [aarch64-unknown-redox](platform-support/aarch64_unknown_redox.md) + - [aarch64-unknown-teeos](platform-support/aarch64_unknown_teeos.md) + - [aarch64-unknown-uefi](platform-support/aarch64_unknown_uefi.md) + - [aarch64-uwp-windows-msvc](platform-support/aarch64_uwp_windows_msvc.md) + - [aarch64-wrs-vxworks](platform-support/aarch64_wrs_vxworks.md) + - [arm64_32-apple-watchos](platform-support/arm64_32_apple_watchos.md) + - [arm-linux-androideabi](platform-support/arm_linux_androideabi.md) + - [arm-unknown-linux-gnueabi](platform-support/arm_unknown_linux_gnueabi.md) + - [arm-unknown-linux-gnueabihf](platform-support/arm_unknown_linux_gnueabihf.md) + - [arm-unknown-linux-musleabi](platform-support/arm_unknown_linux_musleabi.md) + - [arm-unknown-linux-musleabihf](platform-support/arm_unknown_linux_musleabihf.md) + - [armeb-unknown-linux-gnueabi](platform-support/armeb_unknown_linux_gnueabi.md) + - [armebv7r-none-eabi](platform-support/armebv7r_none_eabi.md) + - [armebv7r-none-eabihf](platform-support/armebv7r_none_eabihf.md) + - [armv4t-none-eabi](platform-support/armv4t_none_eabi.md) + - [armv4t-unknown-linux-gnueabi](platform-support/armv4t_unknown_linux_gnueabi.md) + - [armv5te-none-eabi](platform-support/armv5te_none_eabi.md) + - [armv5te-unknown-linux-gnueabi](platform-support/armv5te_unknown_linux_gnueabi.md) + - [armv5te-unknown-linux-musleabi](platform-support/armv5te_unknown_linux_musleabi.md) + - [armv5te-unknown-linux-uclibceabi](platform-support/armv5te_unknown_linux_uclibceabi.md) + - [armv6-unknown-freebsd](platform-support/armv6_unknown_freebsd.md) + - [armv6-unknown-netbsd-eabihf](platform-support/armv6_unknown_netbsd_eabihf.md) + - [armv6k-nintendo-3ds](platform-support/armv6k_nintendo_3ds.md) + - [armv7-apple-ios](platform-support/armv7_apple_ios.md) + - [armv7-linux-androideabi](platform-support/armv7_linux_androideabi.md) + - [armv7-sony-vita-newlibeabihf](platform-support/armv7_sony_vita_newlibeabihf.md) + - [armv7-unknown-freebsd](platform-support/armv7_unknown_freebsd.md) + - [armv7-unknown-linux-gnueabi](platform-support/armv7_unknown_linux_gnueabi.md) + - [armv7-unknown-linux-gnueabihf](platform-support/armv7_unknown_linux_gnueabihf.md) + - [armv7-unknown-linux-musleabi](platform-support/armv7_unknown_linux_musleabi.md) + - [armv7-unknown-linux-musleabihf](platform-support/armv7_unknown_linux_musleabihf.md) + - [armv7-unknown-linux-ohos](platform-support/armv7_unknown_linux_ohos.md) + - [armv7-unknown-linux-uclibceabi](platform-support/armv7_unknown_linux_uclibceabi.md) + - [armv7-unknown-linux-uclibceabihf](platform-support/armv7_unknown_linux_uclibceabihf.md) + - [armv7-unknown-netbsd-eabihf](platform-support/armv7_unknown_netbsd_eabihf.md) + - [armv7-wrs-vxworks-eabihf](platform-support/armv7_wrs_vxworks_eabihf.md) + - [armv7a-kmc-solid_asp3-eabi](platform-support/armv7a_kmc_solid_asp3_eabi.md) + - [armv7a-kmc-solid_asp3-eabihf](platform-support/armv7a_kmc_solid_asp3_eabihf.md) + - [armv7a-none-eabi](platform-support/armv7a_none_eabi.md) + - [armv7a-none-eabihf](platform-support/armv7a_none_eabihf.md) + - [armv7k-apple-watchos](platform-support/armv7k_apple_watchos.md) + - [armv7r-none-eabi](platform-support/armv7r_none_eabi.md) + - [armv7r-none-eabihf](platform-support/armv7r_none_eabihf.md) + - [armv7s-apple-ios](platform-support/armv7s_apple_ios.md) + - [asmjs-unknown-emscripten](platform-support/asmjs_unknown_emscripten.md) + - [avr-unknown-gnu-atmega328](platform-support/avr_unknown_gnu_atmega328.md) + - [bpfeb-unknown-none](platform-support/bpfeb_unknown_none.md) + - [bpfel-unknown-none](platform-support/bpfel_unknown_none.md) + - [csky-unknown-linux-gnuabiv2](platform-support/csky_unknown_linux_gnuabiv2.md) + - [hexagon-unknown-linux-musl](platform-support/hexagon_unknown_linux_musl.md) + - [i386-apple-ios](platform-support/i386_apple_ios.md) + - [i386-unknown-linux-gnu](platform-support/i386_unknown_linux_gnu.md) + - [i486-unknown-linux-gnu](platform-support/i486_unknown_linux_gnu.md) + - [i586-pc-nto-qnx700](platform-support/i586_pc_nto_qnx700.md) + - [i586-pc-windows-msvc](platform-support/i586_pc_windows_msvc.md) + - [i586-unknown-linux-gnu](platform-support/i586_unknown_linux_gnu.md) + - [i586-unknown-linux-musl](platform-support/i586_unknown_linux_musl.md) + - [i686-apple-darwin](platform-support/i686_apple_darwin.md) + - [i686-linux-android](platform-support/i686_linux_android.md) + - [i686-pc-windows-gnu](platform-support/i686_pc_windows_gnu.md) + - [i686-pc-windows-gnullvm](platform-support/i686_pc_windows_gnullvm.md) + - [i686-pc-windows-msvc](platform-support/i686_pc_windows_msvc.md) + - [i686-unknown-freebsd](platform-support/i686_unknown_freebsd.md) + - [i686-unknown-haiku](platform-support/i686_unknown_haiku.md) + - [i686-unknown-linux-gnu](platform-support/i686_unknown_linux_gnu.md) + - [i686-unknown-linux-musl](platform-support/i686_unknown_linux_musl.md) + - [i686-unknown-netbsd](platform-support/i686_unknown_netbsd.md) + - [i686-unknown-openbsd](platform-support/i686_unknown_openbsd.md) + - [i686-unknown-uefi](platform-support/i686_unknown_uefi.md) + - [i686-uwp-windows-gnu](platform-support/i686_uwp_windows_gnu.md) + - [i686-uwp-windows-msvc](platform-support/i686_uwp_windows_msvc.md) + - [i686-wrs-vxworks](platform-support/i686_wrs_vxworks.md) + - [loongarch64-unknown-linux-gnu](platform-support/loongarch64_unknown_linux_gnu.md) + - [loongarch64-unknown-none](platform-support/loongarch64_unknown_none.md) + - [loongarch64-unknown-none-softfloat](platform-support/loongarch64_unknown_none_softfloat.md) + - [m68k-unknown-linux-gnu](platform-support/m68k_unknown_linux_gnu.md) + - [mips64-openwrt-linux-musl](platform-support/mips64_openwrt_linux_musl.md) + - [mips64-unknown-linux-gnuabi64](platform-support/mips64_unknown_linux_gnuabi64.md) + - [mips64-unknown-linux-muslabi64](platform-support/mips64_unknown_linux_muslabi64.md) + - [mips64el-unknown-linux-gnuabi64](platform-support/mips64el_unknown_linux_gnuabi64.md) + - [mips64el-unknown-linux-muslabi64](platform-support/mips64el_unknown_linux_muslabi64.md) + - [mips-unknown-linux-gnu](platform-support/mips_unknown_linux_gnu.md) + - [mips-unknown-linux-musl](platform-support/mips_unknown_linux_musl.md) + - [mips-unknown-linux-uclibc](platform-support/mips_unknown_linux_uclibc.md) + - [mipsel-sony-psp](platform-support/mipsel_sony_psp.md) + - [mipsel-sony-psx](platform-support/mipsel_sony_psx.md) + - [mipsel-unknown-linux-gnu](platform-support/mipsel_unknown_linux_gnu.md) + - [mipsel-unknown-linux-musl](platform-support/mipsel_unknown_linux_musl.md) + - [mipsel-unknown-linux-uclibc](platform-support/mipsel_unknown_linux_uclibc.md) + - [mipsel-unknown-none](platform-support/mipsel_unknown_none.md) + - [mipsisa32r6-unknown-linux-gnu](platform-support/mipsisa32r6_unknown_linux_gnu.md) + - [mipsisa32r6el-unknown-linux-gnu](platform-support/mipsisa32r6el_unknown_linux_gnu.md) + - [mipsisa64r6-unknown-linux-gnuabi64](platform-support/mipsisa64r6_unknown_linux_gnuabi64.md) + - [mipsisa64r6el-unknown-linux-gnuabi64](platform-support/mipsisa64r6el_unknown_linux_gnuabi64.md) + - [msp430-none-elf](platform-support/msp430_none_elf.md) + - [nvptx64-nvidia-cuda](platform-support/nvptx64_nvidia_cuda.md) + - [powerpc64-ibm-aix](platform-support/powerpc64_ibm_aix.md) + - [powerpc64-unknown-freebsd](platform-support/powerpc64_unknown_freebsd.md) + - [powerpc64-unknown-linux-gnu](platform-support/powerpc64_unknown_linux_gnu.md) + - [powerpc64-unknown-linux-musl](platform-support/powerpc64_unknown_linux_musl.md) + - [powerpc64-unknown-openbsd](platform-support/powerpc64_unknown_openbsd.md) + - [powerpc64-wrs-vxworks](platform-support/powerpc64_wrs_vxworks.md) + - [powerpc64le-unknown-freebsd](platform-support/powerpc64le_unknown_freebsd.md) + - [powerpc64le-unknown-linux-gnu](platform-support/powerpc64le_unknown_linux_gnu.md) + - [powerpc64le-unknown-linux-musl](platform-support/powerpc64le_unknown_linux_musl.md) + - [powerpc-unknown-freebsd](platform-support/powerpc_unknown_freebsd.md) + - [powerpc-unknown-linux-gnu](platform-support/powerpc_unknown_linux_gnu.md) + - [powerpc-unknown-linux-gnuspe](platform-support/powerpc_unknown_linux_gnuspe.md) + - [powerpc-unknown-linux-musl](platform-support/powerpc_unknown_linux_musl.md) + - [powerpc-unknown-netbsd](platform-support/powerpc_unknown_netbsd.md) + - [powerpc-unknown-openbsd](platform-support/powerpc_unknown_openbsd.md) + - [powerpc-wrs-vxworks](platform-support/powerpc_wrs_vxworks.md) + - [powerpc-wrs-vxworks-spe](platform-support/powerpc_wrs_vxworks_spe.md) + - [riscv32gc-unknown-linux-gnu](platform-support/riscv32gc_unknown_linux_gnu.md) + - [riscv32gc-unknown-linux-musl](platform-support/riscv32gc_unknown_linux_musl.md) + - [riscv32i-unknown-none-elf](platform-support/riscv32i_unknown_none_elf.md) + - [riscv32im-unknown-none-elf](platform-support/riscv32im_unknown_none_elf.md) + - [riscv32imac-esp-espidf](platform-support/riscv32imac_esp_espidf.md) + - [riscv32imac-unknown-none-elf](platform-support/riscv32imac_unknown_none_elf.md) + - [riscv32imac-unknown-xous-elf](platform-support/riscv32imac_unknown_xous_elf.md) + - [riscv32imc-esp-espidf](platform-support/riscv32imc_esp_espidf.md) + - [riscv32imc-unknown-none-elf](platform-support/riscv32imc_unknown_none_elf.md) + - [riscv64-linux-android](platform-support/riscv64_linux_android.md) + - [riscv64gc-unknown-freebsd](platform-support/riscv64gc_unknown_freebsd.md) + - [riscv64gc-unknown-fuchsia](platform-support/riscv64gc_unknown_fuchsia.md) + - [riscv64gc-unknown-hermit](platform-support/riscv64gc_unknown_hermit.md) + - [riscv64gc-unknown-linux-gnu](platform-support/riscv64gc_unknown_linux_gnu.md) + - [riscv64gc-unknown-linux-musl](platform-support/riscv64gc_unknown_linux_musl.md) + - [riscv64gc-unknown-netbsd](platform-support/riscv64gc_unknown_netbsd.md) + - [riscv64gc-unknown-none-elf](platform-support/riscv64gc_unknown_none_elf.md) + - [riscv64gc-unknown-openbsd](platform-support/riscv64gc_unknown_openbsd.md) + - [riscv64imac-unknown-none-elf](platform-support/riscv64imac_unknown_none_elf.md) + - [s390x-unknown-linux-gnu](platform-support/s390x_unknown_linux_gnu.md) + - [s390x-unknown-linux-musl](platform-support/s390x_unknown_linux_musl.md) + - [sparc64-unknown-linux-gnu](platform-support/sparc64_unknown_linux_gnu.md) + - [sparc64-unknown-netbsd](platform-support/sparc64_unknown_netbsd.md) + - [sparc64-unknown-openbsd](platform-support/sparc64_unknown_openbsd.md) + - [sparc-unknown-linux-gnu](platform-support/sparc_unknown_linux_gnu.md) + - [sparc-unknown-none-elf](platform-support/sparc_unknown_none_elf.md) + - [sparcv9-sun-solaris](platform-support/sparcv9_sun_solaris.md) + - [thumbv4t-none-eabi](platform-support/thumbv4t_none_eabi.md) + - [thumbv5te-none-eabi](platform-support/thumbv5te_none_eabi.md) + - [thumbv6m-none-eabi](platform-support/thumbv6m_none_eabi.md) + - [thumbv7a-pc-windows-msvc](platform-support/thumbv7a_pc_windows_msvc.md) + - [thumbv7a-uwp-windows-msvc](platform-support/thumbv7a_uwp_windows_msvc.md) + - [thumbv7em-none-eabi](platform-support/thumbv7em_none_eabi.md) + - [thumbv7em-none-eabihf](platform-support/thumbv7em_none_eabihf.md) + - [thumbv7m-none-eabi](platform-support/thumbv7m_none_eabi.md) + - [thumbv7neon-linux-androideabi](platform-support/thumbv7neon_linux_androideabi.md) + - [thumbv7neon-unknown-linux-gnueabihf](platform-support/thumbv7neon_unknown_linux_gnueabihf.md) + - [thumbv7neon-unknown-linux-musleabihf](platform-support/thumbv7neon_unknown_linux_musleabihf.md) + - [thumbv8m.base-none-eabi](platform-support/thumbv8m_base_none_eabi.md) + - [thumbv8m.main-none-eabi](platform-support/thumbv8m_main_none_eabi.md) + - [thumbv8m.main-none-eabihf](platform-support/thumbv8m_main_none_eabihf.md) + - [wasm32-unknown-emscripten](platform-support/wasm32_unknown_emscripten.md) + - [wasm32-unknown-unknown](platform-support/wasm32_unknown_unknown.md) + - [wasm32-wasi](platform-support/wasm32_wasi.md) + - [wasm32-wasi-preview1-threads](platform-support/wasm32_wasi_preview1_threads.md) + - [wasm64-unknown-unknown](platform-support/wasm64_unknown_unknown.md) + - [x86_64-apple-darwin](platform-support/x86_64_apple_darwin.md) + - [x86_64-apple-ios](platform-support/x86_64_apple_ios.md) + - [x86_64-apple-ios-macabi](platform-support/x86_64_apple_ios_macabi.md) + - [x86_64-apple-tvos](platform-support/x86_64_apple_tvos.md) + - [x86_64-apple-watchos-sim](platform-support/x86_64_apple_watchos_sim.md) + - [x86_64-fortanix-unknown-sgx](platform-support/x86_64_fortanix_unknown_sgx.md) + - [x86_64-fuchsia](platform-support/x86_64_fuchsia.md) + - [x86_64-linux-android](platform-support/x86_64_linux_android.md) + - [x86_64-pc-nto-qnx710](platform-support/x86_64_pc_nto_qnx710.md) + - [x86_64-pc-solaris](platform-support/x86_64_pc_solaris.md) + - [x86_64-pc-windows-gnu](platform-support/x86_64_pc_windows_gnu.md) + - [x86_64-pc-windows-gnullvm](platform-support/x86_64_pc_windows_gnullvm.md) + - [x86_64-pc-windows-msvc](platform-support/x86_64_pc_windows_msvc.md) + - [x86_64-sun-solaris](platform-support/x86_64_sun_solaris.md) + - [x86_64-unikraft-linux-musl](platform-support/x86_64_unikraft_linux_musl.md) + - [x86_64-unknown-dragonfly](platform-support/x86_64_unknown_dragonfly.md) + - [x86_64-unknown-freebsd](platform-support/x86_64_unknown_freebsd.md) + - [x86_64-unknown-fuchsia](platform-support/x86_64_unknown_fuchsia.md) + - [x86_64-unknown-haiku](platform-support/x86_64_unknown_haiku.md) + - [x86_64-unknown-hermit](platform-support/x86_64_unknown_hermit.md) + - [x86_64-unknown-illumos](platform-support/x86_64_unknown_illumos.md) + - [x86_64-unknown-l4re-uclibc](platform-support/x86_64_unknown_l4re_uclibc.md) + - [x86_64-unknown-linux-gnu](platform-support/x86_64_unknown_linux_gnu.md) + - [x86_64-unknown-linux-gnux32](platform-support/x86_64_unknown_linux_gnux32.md) + - [x86_64-unknown-linux-musl](platform-support/x86_64_unknown_linux_musl.md) + - [x86_64-unknown-linux-ohos](platform-support/x86_64_unknown_linux_ohos.md) + - [x86_64-unknown-netbsd](platform-support/x86_64_unknown_netbsd.md) + - [x86_64-unknown-none](platform-support/x86_64_unknown_none.md) + - [x86_64-unknown-openbsd](platform-support/x86_64_unknown_openbsd.md) + - [x86_64-unknown-redox](platform-support/x86_64_unknown_redox.md) + - [x86_64-unknown-uefi](platform-support/x86_64_unknown_uefi.md) + - [x86_64-uwp-windows-gnu](platform-support/x86_64_uwp_windows_gnu.md) + - [x86_64-uwp-windows-msvc](platform-support/x86_64_uwp_windows_msvc.md) + - [x86_64-wrs-vxworks](platform-support/x86_64_wrs_vxworks.md) + - [x86_64h-apple-darwin](platform-support/x86_64h_apple_darwin.md) - [Targets](targets/index.md) - [Built-in Targets](targets/built-in.md) - [Custom Targets](targets/custom.md)