@@ -57,6 +57,7 @@ use rustc_macros::HashStable_Generic;
57
57
pub mod abi;
58
58
pub mod crt_objects;
59
59
60
+ mod aix_base;
60
61
mod android_base;
61
62
mod apple_base;
62
63
mod avr_gnu_base;
@@ -1026,6 +1027,7 @@ supported_targets! {
1026
1027
( "powerpc-unknown-linux-gnu" , powerpc_unknown_linux_gnu) ,
1027
1028
( "powerpc-unknown-linux-gnuspe" , powerpc_unknown_linux_gnuspe) ,
1028
1029
( "powerpc-unknown-linux-musl" , powerpc_unknown_linux_musl) ,
1030
+ ( "powerpc64-ibm-aix" , powerpc64_ibm_aix) ,
1029
1031
( "powerpc64-unknown-linux-gnu" , powerpc64_unknown_linux_gnu) ,
1030
1032
( "powerpc64-unknown-linux-musl" , powerpc64_unknown_linux_musl) ,
1031
1033
( "powerpc64le-unknown-linux-gnu" , powerpc64le_unknown_linux_gnu) ,
@@ -1453,6 +1455,9 @@ pub struct TargetOptions {
1453
1455
pub families : StaticCow < [ StaticCow < str > ] > ,
1454
1456
/// Whether the target toolchain's ABI supports returning small structs as an integer.
1455
1457
pub abi_return_struct_as_int : bool ,
1458
+ /// Whether the target toolchain is like AIX's. Linker options on AIX are special and it uses
1459
+ /// XCOFF as binary format. Defaults to false.
1460
+ pub is_like_aix : bool ,
1456
1461
/// Whether the target toolchain is like macOS's. Only useful for compiling against iOS/macOS,
1457
1462
/// in particular running dsymutil and some other stuff like `-dead_strip`. Defaults to false.
1458
1463
/// Also indiates whether to use Apple-specific ABI changes, such as extending function
@@ -1808,6 +1813,7 @@ impl Default for TargetOptions {
1808
1813
staticlib_suffix : ".a" . into ( ) ,
1809
1814
families : cvs ! [ ] ,
1810
1815
abi_return_struct_as_int : false ,
1816
+ is_like_aix : false ,
1811
1817
is_like_osx : false ,
1812
1818
is_like_solaris : false ,
1813
1819
is_like_windows : false ,
@@ -2465,6 +2471,7 @@ impl Target {
2465
2471
key ! ( staticlib_suffix) ;
2466
2472
key ! ( families, TargetFamilies ) ;
2467
2473
key ! ( abi_return_struct_as_int, bool ) ;
2474
+ key ! ( is_like_aix, bool ) ;
2468
2475
key ! ( is_like_osx, bool ) ;
2469
2476
key ! ( is_like_solaris, bool ) ;
2470
2477
key ! ( is_like_windows, bool ) ;
@@ -2716,6 +2723,7 @@ impl ToJson for Target {
2716
2723
target_option_val ! ( staticlib_suffix) ;
2717
2724
target_option_val ! ( families, "target-family" ) ;
2718
2725
target_option_val ! ( abi_return_struct_as_int) ;
2726
+ target_option_val ! ( is_like_aix) ;
2719
2727
target_option_val ! ( is_like_osx) ;
2720
2728
target_option_val ! ( is_like_solaris) ;
2721
2729
target_option_val ! ( is_like_windows) ;
0 commit comments