@@ -2061,14 +2061,14 @@ fn test_linux(target: &str) {
2061
2061
let i686 = target. contains ( "i686" ) ;
2062
2062
let mips = target. contains ( "mips" ) ;
2063
2063
let mips32 = mips && !target. contains ( "64" ) ;
2064
- let mips32_musl = mips32 && musl;
2065
2064
let mips64 = mips && target. contains ( "64" ) ;
2066
2065
let ppc64 = target. contains ( "powerpc64" ) ;
2067
2066
let s390x = target. contains ( "s390x" ) ;
2068
2067
let sparc64 = target. contains ( "sparc64" ) ;
2069
2068
let x32 = target. contains ( "x32" ) ;
2070
2069
let x86_32 = target. contains ( "i686" ) ;
2071
2070
let x86_64 = target. contains ( "x86_64" ) ;
2071
+ let aarch64_musl = target. contains ( "aarch64" ) && musl;
2072
2072
2073
2073
let mut cfg = ctest_cfg ( ) ;
2074
2074
cfg. define ( "_GNU_SOURCE" , None ) ;
@@ -2132,8 +2132,7 @@ fn test_linux(target: &str) {
2132
2132
"sys/prctl.h" ,
2133
2133
"sys/ptrace.h" ,
2134
2134
"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" ,
2137
2136
"sys/reboot.h" ,
2138
2137
"sys/resource.h" ,
2139
2138
"sys/sem.h" ,
@@ -2187,8 +2186,7 @@ fn test_linux(target: &str) {
2187
2186
"linux/fs.h" ,
2188
2187
"linux/futex.h" ,
2189
2188
"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" ,
2192
2190
"linux/if_addr.h" ,
2193
2191
"linux/if_alg.h" ,
2194
2192
"linux/if_ether.h" ,
@@ -2303,9 +2301,6 @@ fn test_linux(target: &str) {
2303
2301
// structs.
2304
2302
"termios2" => true ,
2305
2303
2306
- // FIXME: musl version using by mips build jobs 1.0.15 is ancient:
2307
- "ifmap" | "ifreq" | "ifconf" if mips32_musl => true ,
2308
-
2309
2304
// FIXME: remove once Ubuntu 20.04 LTS is released, somewhere in 2020.
2310
2305
// ucontext_t added a new field as of glibc 2.28; our struct definition is
2311
2306
// conservative and omits the field, but that means the size doesn't match for newer
@@ -2349,7 +2344,7 @@ fn test_linux(target: &str) {
2349
2344
// Require Linux kernel 5.1:
2350
2345
"F_SEAL_FUTURE_WRITE" => true ,
2351
2346
2352
- // The musl version 1.0.22 used in CI does not
2347
+ // The musl version 1.1.24 used in CI does not
2353
2348
// contain these glibc constants yet:
2354
2349
| "RLIMIT_RTTIME" // should be in `resource.h`
2355
2350
| "TCP_COOKIE_TRANSACTIONS" // should be in the `netinet/tcp.h` header
@@ -2371,10 +2366,6 @@ fn test_linux(target: &str) {
2371
2366
// - these constants are used by the glibc implementation.
2372
2367
n if musl && n. contains ( "__SIZEOF_PTHREAD" ) => true ,
2373
2368
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
-
2378
2369
_ => false ,
2379
2370
}
2380
2371
} ) ;
@@ -2458,7 +2449,17 @@ fn test_linux(target: &str) {
2458
2449
field == "_pad2" ||
2459
2450
field == "ssi_syscall" ||
2460
2451
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)
2462
2463
} ) ;
2463
2464
2464
2465
cfg. skip_roundtrip ( move |s| match s {
0 commit comments