From 3fd4dd7ea3b303179434cabec168cdb6f9e94232 Mon Sep 17 00:00:00 2001
From: gnzlbg <gonzalobg88@gmail.com>
Date: Fri, 5 Jul 2019 17:34:04 +0200
Subject: [PATCH] Silence roundtrip errors

---
 libc-test/build.rs | 50 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 49 insertions(+), 1 deletion(-)

diff --git a/libc-test/build.rs b/libc-test/build.rs
index 3ec1c07f..555aee30 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,
     });
 
-- 
GitLab