@@ -2061,14 +2061,14 @@ fn test_linux(target: &str) {
20612061 let i686 = target. contains ( "i686" ) ;
20622062 let mips = target. contains ( "mips" ) ;
20632063 let mips32 = mips && !target. contains ( "64" ) ;
2064- let mips32_musl = mips32 && musl;
20652064 let mips64 = mips && target. contains ( "64" ) ;
20662065 let ppc64 = target. contains ( "powerpc64" ) ;
20672066 let s390x = target. contains ( "s390x" ) ;
20682067 let sparc64 = target. contains ( "sparc64" ) ;
20692068 let x32 = target. contains ( "x32" ) ;
20702069 let x86_32 = target. contains ( "i686" ) ;
20712070 let x86_64 = target. contains ( "x86_64" ) ;
2071+ let aarch64_musl = target. contains ( "aarch64" ) && musl;
20722072
20732073 let mut cfg = ctest_cfg ( ) ;
20742074 cfg. define ( "_GNU_SOURCE" , None ) ;
@@ -2132,8 +2132,7 @@ fn test_linux(target: &str) {
21322132 "sys/prctl.h" ,
21332133 "sys/ptrace.h" ,
21342134 "sys/quota.h" ,
2135- // FIXME: the mips-musl CI build jobs use ancient musl 1.0.15:
2136- [ !mips32_musl] : "sys/random.h" ,
2135+ "sys/random.h" ,
21372136 "sys/reboot.h" ,
21382137 "sys/resource.h" ,
21392138 "sys/sem.h" ,
@@ -2187,8 +2186,7 @@ fn test_linux(target: &str) {
21872186 "linux/fs.h" ,
21882187 "linux/futex.h" ,
21892188 "linux/genetlink.h" ,
2190- // FIXME: musl version 1.0.15 used by mips build jobs is ancient
2191- [ !mips32_musl] : "linux/if.h" ,
2189+ "linux/if.h" ,
21922190 "linux/if_addr.h" ,
21932191 "linux/if_alg.h" ,
21942192 "linux/if_ether.h" ,
@@ -2303,9 +2301,6 @@ fn test_linux(target: &str) {
23032301 // structs.
23042302 "termios2" => true ,
23052303
2306- // FIXME: musl version using by mips build jobs 1.0.15 is ancient:
2307- "ifmap" | "ifreq" | "ifconf" if mips32_musl => true ,
2308-
23092304 // FIXME: remove once Ubuntu 20.04 LTS is released, somewhere in 2020.
23102305 // ucontext_t added a new field as of glibc 2.28; our struct definition is
23112306 // conservative and omits the field, but that means the size doesn't match for newer
@@ -2349,7 +2344,7 @@ fn test_linux(target: &str) {
23492344 // Require Linux kernel 5.1:
23502345 "F_SEAL_FUTURE_WRITE" => true ,
23512346
2352- // The musl version 1.0.22 used in CI does not
2347+ // The musl version 1.1.24 used in CI does not
23532348 // contain these glibc constants yet:
23542349 | "RLIMIT_RTTIME" // should be in `resource.h`
23552350 | "TCP_COOKIE_TRANSACTIONS" // should be in the `netinet/tcp.h` header
@@ -2371,10 +2366,6 @@ fn test_linux(target: &str) {
23712366 // - these constants are used by the glibc implementation.
23722367 n if musl && n. contains ( "__SIZEOF_PTHREAD" ) => true ,
23732368
2374- // FIXME: musl version 1.0.15 used by mips build jobs is ancient
2375- t if mips32_musl && t. starts_with ( "IFF" ) => true ,
2376- "MFD_HUGETLB" | "AF_XDP" | "PF_XDP" if mips32_musl => true ,
2377-
23782369 _ => false ,
23792370 }
23802371 } ) ;
@@ -2458,7 +2449,17 @@ fn test_linux(target: &str) {
24582449 field == "_pad2" ||
24592450 field == "ssi_syscall" ||
24602451 field == "ssi_call_addr" ||
2461- field == "ssi_arch" ) )
2452+ field == "ssi_arch" ) ) ||
2453+ // FIXME: After musl 1.1.24, it have only one field `sched_priority`,
2454+ // while other fields become reserved.
2455+ ( struct_ == "sched_param" && [
2456+ "sched_ss_low_priority" ,
2457+ "sched_ss_repl_period" ,
2458+ "sched_ss_init_budget" ,
2459+ "sched_ss_max_repl" ,
2460+ ] . contains ( & field) && musl) ||
2461+ // FIXME: After musl 1.1.24, the type becomes `int` instead of `unsigned short`.
2462+ ( struct_ == "ipc_perm" && field == "__seq" && aarch64_musl)
24622463 } ) ;
24632464
24642465 cfg. skip_roundtrip ( move |s| match s {
0 commit comments