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:
bors 2021-08-09 13:16:51 +00:00
commit ae90dcf020
3 changed files with 29 additions and 0 deletions

View 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,
}
}

View file

@ -918,6 +918,7 @@ supported_targets! {
("x86_64-unknown-uefi", x86_64_unknown_uefi),
("i686-unknown-uefi", i686_unknown_uefi),
("aarch64-unknown-uefi", aarch64_unknown_uefi),
("nvptx64-nvidia-cuda", nvptx64_nvidia_cuda),

View file

@ -200,6 +200,7 @@ target | std | host | notes
`aarch64-apple-tvos` | * | | ARM64 tvOS
`aarch64-unknown-freebsd` | ✓ | ✓ | ARM64 FreeBSD
`aarch64-unknown-hermit` | ? | |
`aarch64-unknown-uefi` | * | | ARM64 UEFI
`aarch64-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (ILP32 ABI)
`aarch64-unknown-netbsd` | ✓ | ✓ |
`aarch64-unknown-openbsd` | ✓ | ✓ | ARM64 OpenBSD