Auto merge of #85357 - Andy-Python-Programmer:aarch64_uefi_target, r=petrochenkov
Add `aarch64-unknown-uefi` target This pull request adds the `aarch64-unknown-uefi` target.
This commit is contained in:
commit
ae90dcf020
3 changed files with 29 additions and 0 deletions
27
compiler/rustc_target/src/spec/aarch64_unknown_uefi.rs
Normal file
27
compiler/rustc_target/src/spec/aarch64_unknown_uefi.rs
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
// 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, LldFlavor, Target};
|
||||||
|
|
||||||
|
pub fn target() -> Target {
|
||||||
|
let mut base = uefi_msvc_base::opts();
|
||||||
|
|
||||||
|
base.max_atomic_width = Some(64);
|
||||||
|
|
||||||
|
let pre_link_args_msvc = vec!["/machine:arm64".to_string()];
|
||||||
|
|
||||||
|
base.pre_link_args.get_mut(&LinkerFlavor::Msvc).unwrap().extend(pre_link_args_msvc.clone());
|
||||||
|
base.pre_link_args
|
||||||
|
.get_mut(&LinkerFlavor::Lld(LldFlavor::Link))
|
||||||
|
.unwrap()
|
||||||
|
.extend(pre_link_args_msvc);
|
||||||
|
|
||||||
|
Target {
|
||||||
|
llvm_target: "aarch64-unknown-windows".to_string(),
|
||||||
|
pointer_width: 64,
|
||||||
|
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".to_string(),
|
||||||
|
arch: "aarch64".to_string(),
|
||||||
|
options: base,
|
||||||
|
}
|
||||||
|
}
|
|
@ -918,6 +918,7 @@ supported_targets! {
|
||||||
|
|
||||||
("x86_64-unknown-uefi", x86_64_unknown_uefi),
|
("x86_64-unknown-uefi", x86_64_unknown_uefi),
|
||||||
("i686-unknown-uefi", i686_unknown_uefi),
|
("i686-unknown-uefi", i686_unknown_uefi),
|
||||||
|
("aarch64-unknown-uefi", aarch64_unknown_uefi),
|
||||||
|
|
||||||
("nvptx64-nvidia-cuda", nvptx64_nvidia_cuda),
|
("nvptx64-nvidia-cuda", nvptx64_nvidia_cuda),
|
||||||
|
|
||||||
|
|
|
@ -200,6 +200,7 @@ target | std | host | notes
|
||||||
`aarch64-apple-tvos` | * | | ARM64 tvOS
|
`aarch64-apple-tvos` | * | | ARM64 tvOS
|
||||||
`aarch64-unknown-freebsd` | ✓ | ✓ | ARM64 FreeBSD
|
`aarch64-unknown-freebsd` | ✓ | ✓ | ARM64 FreeBSD
|
||||||
`aarch64-unknown-hermit` | ? | |
|
`aarch64-unknown-hermit` | ? | |
|
||||||
|
`aarch64-unknown-uefi` | * | | ARM64 UEFI
|
||||||
`aarch64-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (ILP32 ABI)
|
`aarch64-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (ILP32 ABI)
|
||||||
`aarch64-unknown-netbsd` | ✓ | ✓ |
|
`aarch64-unknown-netbsd` | ✓ | ✓ |
|
||||||
`aarch64-unknown-openbsd` | ✓ | ✓ | ARM64 OpenBSD
|
`aarch64-unknown-openbsd` | ✓ | ✓ | ARM64 OpenBSD
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue