File tree Expand file tree Collapse file tree 3 files changed +29
-0
lines changed
compiler/rustc_target/src/spec Expand file tree Collapse file tree 3 files changed +29
-0
lines changed Original file line number Diff line number Diff line change 1+ // This defines the aarch64 target for UEFI systems as described in the UEFI specification. See the
2+ // uefi-base module for generic UEFI options.
3+
4+ use super :: uefi_msvc_base;
5+ use crate :: spec:: { LinkerFlavor , LldFlavor , Target } ;
6+
7+ pub fn target ( ) -> Target {
8+ let mut base = uefi_msvc_base:: opts ( ) ;
9+
10+ base. max_atomic_width = Some ( 64 ) ;
11+
12+ let pre_link_args_msvc = vec ! [ "/machine:arm64" . to_string( ) ] ;
13+
14+ base. pre_link_args . get_mut ( & LinkerFlavor :: Msvc ) . unwrap ( ) . extend ( pre_link_args_msvc. clone ( ) ) ;
15+ base. pre_link_args
16+ . get_mut ( & LinkerFlavor :: Lld ( LldFlavor :: Link ) )
17+ . unwrap ( )
18+ . extend ( pre_link_args_msvc) ;
19+
20+ Target {
21+ llvm_target : "aarch64-unknown-windows" . to_string ( ) ,
22+ pointer_width : 64 ,
23+ data_layout : "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128" . to_string ( ) ,
24+ arch : "aarch64" . to_string ( ) ,
25+ options : base,
26+ }
27+ }
Original file line number Diff line number Diff line change @@ -918,6 +918,7 @@ supported_targets! {
918918
919919 ( "x86_64-unknown-uefi" , x86_64_unknown_uefi) ,
920920 ( "i686-unknown-uefi" , i686_unknown_uefi) ,
921+ ( "aarch64-unknown-uefi" , aarch64_unknown_uefi) ,
921922
922923 ( "nvptx64-nvidia-cuda" , nvptx64_nvidia_cuda) ,
923924
Original file line number Diff line number Diff line change @@ -200,6 +200,7 @@ target | std | host | notes
200200` aarch64-apple-tvos ` | * | | ARM64 tvOS
201201` aarch64-unknown-freebsd ` | ✓ | ✓ | ARM64 FreeBSD
202202` aarch64-unknown-hermit ` | ? | |
203+ ` aarch64-unknown-uefi ` | * | | ARM64 UEFI
203204` aarch64-unknown-linux-gnu_ilp32 ` | ✓ | ✓ | ARM64 Linux (ILP32 ABI)
204205` aarch64-unknown-netbsd ` | ✓ | ✓ |
205206` aarch64-unknown-openbsd ` | ✓ | ✓ | ARM64 OpenBSD
You can’t perform that action at this time.
0 commit comments