@@ -58,6 +58,7 @@ use rustc_macros::HashStable_Generic;
58
58
pub mod abi;
59
59
pub mod crt_objects;
60
60
61
+ mod aix_base;
61
62
mod android_base;
62
63
mod apple_base;
63
64
mod avr_gnu_base;
@@ -1027,6 +1028,7 @@ supported_targets! {
1027
1028
( "powerpc-unknown-linux-gnu" , powerpc_unknown_linux_gnu) ,
1028
1029
( "powerpc-unknown-linux-gnuspe" , powerpc_unknown_linux_gnuspe) ,
1029
1030
( "powerpc-unknown-linux-musl" , powerpc_unknown_linux_musl) ,
1031
+ ( "powerpc64-ibm-aix" , powerpc64_ibm_aix) ,
1030
1032
( "powerpc64-unknown-linux-gnu" , powerpc64_unknown_linux_gnu) ,
1031
1033
( "powerpc64-unknown-linux-musl" , powerpc64_unknown_linux_musl) ,
1032
1034
( "powerpc64le-unknown-linux-gnu" , powerpc64le_unknown_linux_gnu) ,
@@ -1454,6 +1456,9 @@ pub struct TargetOptions {
1454
1456
pub families : StaticCow < [ StaticCow < str > ] > ,
1455
1457
/// Whether the target toolchain's ABI supports returning small structs as an integer.
1456
1458
pub abi_return_struct_as_int : bool ,
1459
+ /// Whether the target toolchain is like AIX's. Linker options on AIX are special and it uses
1460
+ /// XCOFF as binary format. Defaults to false.
1461
+ pub is_like_aix : bool ,
1457
1462
/// Whether the target toolchain is like macOS's. Only useful for compiling against iOS/macOS,
1458
1463
/// in particular running dsymutil and some other stuff like `-dead_strip`. Defaults to false.
1459
1464
/// Also indiates whether to use Apple-specific ABI changes, such as extending function
@@ -1817,6 +1822,7 @@ impl Default for TargetOptions {
1817
1822
staticlib_suffix : ".a" . into ( ) ,
1818
1823
families : cvs ! [ ] ,
1819
1824
abi_return_struct_as_int : false ,
1825
+ is_like_aix : false ,
1820
1826
is_like_osx : false ,
1821
1827
is_like_solaris : false ,
1822
1828
is_like_windows : false ,
@@ -2488,6 +2494,7 @@ impl Target {
2488
2494
key ! ( staticlib_suffix) ;
2489
2495
key ! ( families, TargetFamilies ) ;
2490
2496
key ! ( abi_return_struct_as_int, bool ) ;
2497
+ key ! ( is_like_aix, bool ) ;
2491
2498
key ! ( is_like_osx, bool ) ;
2492
2499
key ! ( is_like_solaris, bool ) ;
2493
2500
key ! ( is_like_windows, bool ) ;
@@ -2741,6 +2748,7 @@ impl ToJson for Target {
2741
2748
target_option_val ! ( staticlib_suffix) ;
2742
2749
target_option_val ! ( families, "target-family" ) ;
2743
2750
target_option_val ! ( abi_return_struct_as_int) ;
2751
+ target_option_val ! ( is_like_aix) ;
2744
2752
target_option_val ! ( is_like_osx) ;
2745
2753
target_option_val ! ( is_like_solaris) ;
2746
2754
target_option_val ! ( is_like_windows) ;
0 commit comments