@@ -2230,6 +2230,7 @@ fn test_linux(target: &str) {
2230
2230
let x86_64 = target. contains ( "x86_64" ) ;
2231
2231
let aarch64_musl = target. contains ( "aarch64" ) && musl;
2232
2232
let gnuabihf = target. contains ( "gnueabihf" ) ;
2233
+ let x86_64_gnux32 = target. contains ( "gnux32" ) && x86_64;
2233
2234
2234
2235
let mut cfg = ctest_cfg ( ) ;
2235
2236
cfg. define ( "_GNU_SOURCE" , None ) ;
@@ -2548,6 +2549,10 @@ fn test_linux(target: &str) {
2548
2549
// - these constants are used by the glibc implementation.
2549
2550
n if musl && n. contains ( "__SIZEOF_PTHREAD" ) => true ,
2550
2551
2552
+ // FIXME: It was extended to 4096 since glibc 2.31 (Linux 5.4).
2553
+ // We should do so after a while.
2554
+ "SOMAXCONN" if gnu => true ,
2555
+
2551
2556
_ => false ,
2552
2557
}
2553
2558
} ) ;
@@ -2589,6 +2594,9 @@ fn test_linux(target: &str) {
2589
2594
// FIXME: Deprecated since glibc 2.30. Remove fn once upstream does.
2590
2595
"sysctl" if gnu => true ,
2591
2596
2597
+ // FIXME: It now takes c_void instead of timezone since glibc 2.31.
2598
+ "gettimeofday" if gnu => true ,
2599
+
2592
2600
_ => false ,
2593
2601
}
2594
2602
} ) ;
@@ -2646,7 +2654,11 @@ fn test_linux(target: &str) {
2646
2654
// FIXME: After musl 1.1.24, the type becomes `int` instead of `unsigned short`.
2647
2655
( struct_ == "ipc_perm" && field == "__seq" && aarch64_musl) ||
2648
2656
// glibc uses unnamed fields here and Rust doesn't support that yet
2649
- ( struct_ == "timex" && field. starts_with ( "__unused" ) )
2657
+ ( struct_ == "timex" && field. starts_with ( "__unused" ) ) ||
2658
+ // FIXME: It now takes mode_t since glibc 2.31 on some targets.
2659
+ ( struct_ == "ipc_perm" && field == "mode"
2660
+ && ( ( x86_64 || i686 || arm) && gnu || x86_64_gnux32)
2661
+ )
2650
2662
} ) ;
2651
2663
2652
2664
cfg. skip_roundtrip ( move |s| match s {
0 commit comments