File tree 2 files changed +25
-0
lines changed
compiler/rustc_target/src/spec
2 files changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -641,6 +641,7 @@ supported_targets! {
641
641
( "powerpc64le-unknown-linux-gnu" , powerpc64le_unknown_linux_gnu) ,
642
642
( "powerpc64le-unknown-linux-musl" , powerpc64le_unknown_linux_musl) ,
643
643
( "s390x-unknown-linux-gnu" , s390x_unknown_linux_gnu) ,
644
+ ( "s390x-unknown-linux-musl" , s390x_unknown_linux_musl) ,
644
645
( "sparc-unknown-linux-gnu" , sparc_unknown_linux_gnu) ,
645
646
( "sparc64-unknown-linux-gnu" , sparc64_unknown_linux_gnu) ,
646
647
( "arm-unknown-linux-gnueabi" , arm_unknown_linux_gnueabi) ,
Original file line number Diff line number Diff line change
1
+ use crate :: abi:: Endian ;
2
+ use crate :: spec:: Target ;
3
+
4
+ pub fn target ( ) -> Target {
5
+ let mut base = super :: linux_musl_base:: opts ( ) ;
6
+ base. endian = Endian :: Big ;
7
+ // z10 is the oldest CPU supported by LLVM
8
+ base. cpu = "z10" . to_string ( ) ;
9
+ // FIXME: The data_layout string below and the ABI implementation in
10
+ // cabi_s390x.rs are for now hard-coded to assume the no-vector ABI.
11
+ // Pass the -vector feature string to LLVM to respect this assumption.
12
+ base. features = "-vector" . to_string ( ) ;
13
+ base. max_atomic_width = Some ( 64 ) ;
14
+ base. min_global_align = Some ( 16 ) ;
15
+ base. static_position_independent_executables = true ;
16
+
17
+ Target {
18
+ llvm_target : "s390x-unknown-linux-musl" . to_string ( ) ,
19
+ pointer_width : 64 ,
20
+ data_layout : "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-a:8:16-n32:64" . to_string ( ) ,
21
+ arch : "s390x" . to_string ( ) ,
22
+ options : base,
23
+ }
24
+ }
You can’t perform that action at this time.
0 commit comments