File tree 3 files changed +29
-0
lines changed
compiler/rustc_target/src/spec
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! {
918
918
919
919
( "x86_64-unknown-uefi" , x86_64_unknown_uefi) ,
920
920
( "i686-unknown-uefi" , i686_unknown_uefi) ,
921
+ ( "aarch64-unknown-uefi" , aarch64_unknown_uefi) ,
921
922
922
923
( "nvptx64-nvidia-cuda" , nvptx64_nvidia_cuda) ,
923
924
Original file line number Diff line number Diff line change @@ -200,6 +200,7 @@ target | std | host | notes
200
200
` aarch64-apple-tvos ` | * | | ARM64 tvOS
201
201
` aarch64-unknown-freebsd ` | ✓ | ✓ | ARM64 FreeBSD
202
202
` aarch64-unknown-hermit ` | ? | |
203
+ ` aarch64-unknown-uefi ` | * | | ARM64 UEFI
203
204
` aarch64-unknown-linux-gnu_ilp32 ` | ✓ | ✓ | ARM64 Linux (ILP32 ABI)
204
205
` aarch64-unknown-netbsd ` | ✓ | ✓ |
205
206
` aarch64-unknown-openbsd ` | ✓ | ✓ | ARM64 OpenBSD
You can’t perform that action at this time.
0 commit comments