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