diff --git a/libc-test/build.rs b/libc-test/build.rs
index bc84b992847324c6c7a731548b2a8afb2787c44a..f7f8c7c192f04d804b1b16749e9c052667a7edb5 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -1789,6 +1789,9 @@ fn test_emscripten(target: &str) {
             // users should use SIGSYS instead
             "SIGUNUSED" => true,
 
+            // FIXME: emscripten uses different constants to constructs these
+            n if n.contains("__SIZEOF_PTHREAD") => true,
+
             _ => false,
         }
     });
diff --git a/src/unix/notbsd/emscripten/mod.rs b/src/unix/notbsd/emscripten/mod.rs
index 023d040ca088aef300896f250d94e3804ab360da..b6abe2fd0dd5495b6ddc57b8936c090ec5ded04b 100644
--- a/src/unix/notbsd/emscripten/mod.rs
+++ b/src/unix/notbsd/emscripten/mod.rs
@@ -1827,9 +1827,9 @@ extern {
     pub fn getdomainname(name: *mut ::c_char, len: ::size_t) -> ::c_int;
     pub fn setdomainname(name: *const ::c_char, len: ::size_t) -> ::c_int;
     pub fn sendmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint,
-                    flags: ::c_int) -> ::c_int;
+                    flags: ::c_uint) -> ::c_int;
     pub fn recvmmsg(sockfd: ::c_int, msgvec: *mut ::mmsghdr, vlen: ::c_uint,
-                    flags: ::c_int, timeout: *mut ::timespec) -> ::c_int;
+                    flags: ::c_uint, timeout: *mut ::timespec) -> ::c_int;
     pub fn sync();
     pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int;
     pub fn getpriority(which: ::c_int, who: ::id_t) -> ::c_int;