diff --git a/libc-test/build.rs b/libc-test/build.rs
index 4b64473..54f5a9f 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -64,6 +64,7 @@
         ]);
 
         if self.target.contains("apple-darwin") {
+            base.push("mach-o/dyld.h");
             base.push("mach/mach_time.h");
         }
 
@@ -90,11 +91,13 @@
             base.push("pthread.h");
             base.push("signal.h");
             base.push("stdalign.h");
+            base.push("string.h");
             base.push("sys/file.h");
             base.push("sys/ioctl.h");
             base.push("sys/mman.h");
             base.push("sys/resource.h");
             base.push("sys/socket.h");
+            base.push("sys/sysctl.h");
             base.push("sys/time.h");
             base.push("sys/un.h");
             base.push("sys/wait.h");
@@ -385,6 +388,7 @@
             "glob" |
             "getrlimit" |
             "setrlimit" |
+            "signal" |
             "getopt" => return,
             _ => {}
         }
diff --git a/libc-test/tests/all.rs b/libc-test/tests/all.rs
index 298a3c9..7fb6efb 100644
--- a/libc-test/tests/all.rs
+++ b/libc-test/tests/all.rs
@@ -1,4 +1,4 @@
-#![allow(bad_style)]
+#![allow(bad_style, unused_imports)]
 
 extern crate libc;
 extern crate libc_test;
@@ -13,6 +13,7 @@
 #[cfg(unix)] use libc::funcs::posix01::glob::*;
 #[cfg(unix)] use libc::funcs::posix01::signal::*;
 #[cfg(unix)] use libc::funcs::posix88::signal::*;
+#[cfg(target_os = "macos")] use libc::funcs::extra::*;
 
 trait Pretty {
     fn pretty(&self) -> String;
diff --git a/src/lib.rs b/src/lib.rs
index 4df3ee6..33493ad 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -5834,7 +5834,7 @@
         pub mod mman {
             use types::common::c95::{c_void};
             use types::os::arch::c95::{size_t, c_int, c_char};
-            use types::os::arch::posix88::{mode_t, off_t};
+            use types::os::arch::posix88::{off_t};
 
             #[cfg(not(target_os = "nacl"))]
             extern {
@@ -5848,8 +5848,12 @@
 
                 pub fn msync(addr: *mut c_void, len: size_t, flags: c_int)
                              -> c_int;
-                pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t)
+                #[cfg(target_os = "macos")]
+                pub fn shm_open(name: *const c_char, oflag: c_int, ...)
                                 -> c_int;
+                #[cfg(target_os = "linux")]
+                pub fn shm_open(name: *const c_char, oflag: c_int,
+                                mode: ::mode_t) -> c_int;
                 pub fn shm_unlink(name: *const c_char) -> c_int;
             }
 
@@ -6116,7 +6120,7 @@
               target_os = "openbsd"))]
     pub mod bsd44 {
         use types::common::c95::{c_void};
-        use types::os::arch::c95::{c_char, c_uchar, c_int, c_uint, c_ulong, size_t};
+        use types::os::arch::c95::{c_char, c_int, c_uint, c_ulong, size_t};
 
         extern {
             pub fn ioctl(fd: c_int, request: c_ulong, ...) -> c_int;
@@ -6140,7 +6144,7 @@
             pub fn getdtablesize() -> c_int;
             pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int)
                            -> c_int;
-            pub fn mincore(addr: *mut c_void, len: size_t, vec: *mut c_uchar)
+            pub fn mincore(addr: *const c_void, len: size_t, vec: *mut c_char)
                            -> c_int;
             pub fn realpath(pathname: *const c_char, resolved: *mut c_char)
                             -> *mut c_char;
@@ -6190,10 +6194,10 @@
 
     #[cfg(any(target_os = "macos", target_os = "ios"))]
     pub mod extra {
-        use types::os::arch::c95::{c_char, c_int};
+        use {c_char, c_int, uint32_t};
 
         extern {
-            pub fn _NSGetExecutablePath(buf: *mut c_char, bufsize: *mut u32)
+            pub fn _NSGetExecutablePath(buf: *mut c_char, bufsize: *mut uint32_t)
                                         -> c_int;
         }
     }
