diff --git a/src/lib.rs b/src/lib.rs
index 555deba4ea974cd19be66b32daa9fe6c98cffe6f..558f7764d8ae759a39038fd085579f18d3096b10 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -32,7 +32,7 @@ pub extern crate unistd;
 pub extern crate wchar;
 pub extern crate wctype;
 
-#[cfg(not(any(test, target_os = "redox")))]
+#[cfg(not(test))]
 #[panic_implementation]
 #[linkage = "weak"]
 #[no_mangle]
@@ -51,7 +51,7 @@ pub extern "C" fn rust_begin_unwind(pi: &::core::panic::PanicInfo) -> ! {
 #[linkage = "weak"]
 pub extern "C" fn rust_eh_personality() {}
 
-#[cfg(not(any(test, target_os = "redox")))]
+#[cfg(not(test))]
 #[lang = "oom"]
 #[linkage = "weak"]
 #[no_mangle]
diff --git a/src/setjmp/src/impl/bin/.gitignore b/src/setjmp/src/impl/bin/.gitignore
deleted file mode 100644
index d6b7ef32c8478a48c3994dcadc86837f4371184d..0000000000000000000000000000000000000000
--- a/src/setjmp/src/impl/bin/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/src/sys_utsname/src/lib.rs b/src/sys_utsname/src/lib.rs
index a0792dd564fef80c4c2b5c3882dfb11aca623f83..0bb0da2ed372eaca9fa0a57c8d39df6dcbcc8f1e 100644
--- a/src/sys_utsname/src/lib.rs
+++ b/src/sys_utsname/src/lib.rs
@@ -1,28 +1,32 @@
 //! sys/utsname implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysutsname.h.html
 
 #![no_std]
-#![cfg(target_os = "linux")]
 
-extern crate platform;
+#[cfg(target_os = "linux")]
+mod inner {
+    extern crate platform;
 
-use core::ptr;
-use platform::types::*;
+    use core::ptr;
+    use self::platform::types::*;
 
-const LENGTH: usize = 65;
+    const LENGTH: usize = 65;
 
-#[allow(non_camel_case)]
-#[no_mangle]
-#[repr(C)]
-pub struct utsname {
-    pub sysname:    [c_char; LENGTH],
-    pub nodename:   [c_char; LENGTH],
-    pub release:    [c_char; LENGTH],
-    pub version:    [c_char; LENGTH],
-    pub machine:    [c_char; LENGTH],
-    pub domainname: [c_char; LENGTH]
-}
+    #[allow(non_camel_case)]
+    #[no_mangle]
+    #[repr(C)]
+    pub struct utsname {
+        pub sysname:    [c_char; LENGTH],
+        pub nodename:   [c_char; LENGTH],
+        pub release:    [c_char; LENGTH],
+        pub version:    [c_char; LENGTH],
+        pub machine:    [c_char; LENGTH],
+        pub domainname: [c_char; LENGTH]
+    }
 
-#[no_mangle]
-pub unsafe extern "C" fn uname(uts: *mut utsname) -> c_int {
-    platform::uname(uts as usize)
+    #[no_mangle]
+    pub unsafe extern "C" fn uname(uts: *mut utsname) -> c_int {
+        platform::uname(uts as usize)
+    }
 }
+#[cfg(target_os = "linux")]
+pub use inner::*;