Add Nintendo Switch tier 3 target
This commit is contained in:
parent
74621c764e
commit
e6aedf6056
39
compiler/rustc_target/src/spec/aarch64_nintendo_switch.rs
Normal file
39
compiler/rustc_target/src/spec/aarch64_nintendo_switch.rs
Normal file
@ -0,0 +1,39 @@
|
||||
use super::{LinkerFlavor, LldFlavor, PanicStrategy, RelroLevel, Target, TargetOptions};
|
||||
|
||||
/// A base target for Nintendo Switch devices using a pure LLVM toolchain.
|
||||
pub fn target() -> Target {
|
||||
let mut opts = TargetOptions {
|
||||
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
|
||||
linker: Some("rust-lld".into()),
|
||||
os: "horizon".into(),
|
||||
max_atomic_width: Some(128),
|
||||
panic_strategy: PanicStrategy::Abort,
|
||||
position_independent_executables: true,
|
||||
crt_static_default: false,
|
||||
crt_static_respected: false,
|
||||
dynamic_linking: true,
|
||||
executables: true,
|
||||
has_elf_tls: false,
|
||||
has_rpath: false,
|
||||
relro_level: RelroLevel::Off,
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
opts.pre_link_args.insert(
|
||||
LinkerFlavor::Lld(LldFlavor::Ld),
|
||||
vec![],
|
||||
);
|
||||
|
||||
opts.post_link_args.insert(
|
||||
LinkerFlavor::Lld(LldFlavor::Ld),
|
||||
vec!["--no-gc-sections".to_string(), "--eh-frame-hdr".to_string()],
|
||||
);
|
||||
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-none".into(),
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
options: opts,
|
||||
}
|
||||
}
|
@ -1035,6 +1035,8 @@ fn $module() {
|
||||
|
||||
("armv6k-nintendo-3ds", armv6k_nintendo_3ds),
|
||||
|
||||
("aarch64-nintendo-switch", aarch64_nintendo_switch),
|
||||
|
||||
("armv7-unknown-linux-uclibceabi", armv7_unknown_linux_uclibceabi),
|
||||
("armv7-unknown-linux-uclibceabihf", armv7_unknown_linux_uclibceabihf),
|
||||
|
||||
|
@ -209,6 +209,7 @@ target | std | host | notes
|
||||
`aarch64-apple-tvos` | * | | 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` | * | | ARM64 Nintendo Switch, Horizon
|
||||
[`aarch64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ |
|
||||
`aarch64-unknown-freebsd` | ✓ | ✓ | ARM64 FreeBSD
|
||||
`aarch64-unknown-hermit` | ✓ | | ARM64 HermitCore
|
||||
|
Loading…
Reference in New Issue
Block a user