diff --git a/libc-test/build.rs b/libc-test/build.rs index 3ec1c07f973c603f396638b592165167c5b5f4d9..555aee30c886a5d61518fde05d964134be9a7b25 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -1432,6 +1432,13 @@ fn test_android(target: &str) { field == "ssi_arch")) }); + let bit64 = target.contains("64"); + cfg.skip_roundtrip(move |s| match s { + "utsname" | "dirent" | "dirent64" => true, + "utmp" if bit64 => true, + _ => false, + }); + cfg.generate("../src/lib.rs", "main.rs"); test_linux_like_apis(target); @@ -1838,6 +1845,15 @@ fn test_emscripten(target: &str) { field == "ssi_arch")) }); + cfg.skip_roundtrip(move |s| match s { + "pthread_mutexattr_t" + | "utsname" + | "dirent" + | "dirent64" + | "sysinfo" => true, + _ => false, + }); + // FIXME: test linux like cfg.generate("../src/lib.rs", "main.rs"); } @@ -1865,8 +1881,11 @@ fn test_linux(target: &str) { let x86_32 = target.contains("i686"); let x32 = target.contains("x32"); let mips = target.contains("mips"); - let mips32_musl = mips && !target.contains("64") && musl; + let mips32 = mips && !target.contains("64"); + let mips64 = mips && target.contains("64"); + let mips32_musl = mips32 && musl; let sparc64 = target.contains("sparc64"); + let s390x = target.contains("s390x"); let mut cfg = ctest::TestGenerator::new(); cfg.define("_GNU_SOURCE", None); @@ -2269,6 +2288,35 @@ fn test_linux(target: &str) { | "utmpx" | "user" | "user_fpxregs_struct" => true, + "sysinfo" if musl => true, + "sockaddr_un" | "sembuf" | "ff_constant_effect" + if mips32 && (gnu || musl) => + { + true + } + "ipv6_mreq" + | "sockaddr_in6" + | "sockaddr_ll" + | "in_pktinfo" + | "arpreq" + | "arpreq_old" + | "sockaddr_un" + | "ff_constant_effect" + | "ff_ramp_effect" + | "ff_condition_effect" + | "Elf32_Ehdr" + | "Elf32_Chdr" + | "ucred" + | "in6_pktinfo" + | "sockaddr_nl" + | "termios" + | "nlmsgerr" + if (mips64 || sparc64) && gnu => + { + true + } + "mcontext_t" if s390x => true, + _ => false, });