diff --git a/src/unix/bsd/netbsdlike/mod.rs b/src/unix/bsd/netbsdlike/mod.rs
index 9c5aef9db863bfa8342899e2aa237c6e09449374..bcdb8931c505627ea8b47756ec9ce352aca6340f 100644
--- a/src/unix/bsd/netbsdlike/mod.rs
+++ b/src/unix/bsd/netbsdlike/mod.rs
@@ -1,5 +1,3 @@
-pub type c_long = i64;
-pub type c_ulong = u64;
 pub type time_t = i64;
 pub type mode_t = u32;
 pub type nlink_t = ::uint32_t;
diff --git a/src/unix/bsd/netbsdlike/netbsd.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs
similarity index 99%
rename from src/unix/bsd/netbsdlike/netbsd.rs
rename to src/unix/bsd/netbsdlike/netbsd/mod.rs
index c4e711db8336017e16f6d6e4dbfcdff107ff774d..aa46aff191037b9b18f300336f525e21bb571292 100644
--- a/src/unix/bsd/netbsdlike/netbsd.rs
+++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs
@@ -613,3 +613,6 @@ extern {
                      locale: *const ::c_char,
                      base: ::locale_t) -> ::locale_t;
 }
+
+mod other;
+pub use self::other::*;
diff --git a/src/unix/bsd/netbsdlike/netbsd/other/b32/mod.rs b/src/unix/bsd/netbsdlike/netbsd/other/b32/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..9b0b338b91e5b52050c6d0edab5b3d5ea0263037
--- /dev/null
+++ b/src/unix/bsd/netbsdlike/netbsd/other/b32/mod.rs
@@ -0,0 +1,2 @@
+pub type c_long = i32;
+pub type c_ulong = u32;
diff --git a/src/unix/bsd/netbsdlike/netbsd/other/b64/mod.rs b/src/unix/bsd/netbsdlike/netbsd/other/b64/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..b07c476aa49d963c7476fa17418927e5ffc9c2e4
--- /dev/null
+++ b/src/unix/bsd/netbsdlike/netbsd/other/b64/mod.rs
@@ -0,0 +1,2 @@
+pub type c_long = i64;
+pub type c_ulong = u64;
diff --git a/src/unix/bsd/netbsdlike/netbsd/other/mod.rs b/src/unix/bsd/netbsdlike/netbsd/other/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..f4e7cc406125bdf6e2d18e5a10bf2c8fce410127
--- /dev/null
+++ b/src/unix/bsd/netbsdlike/netbsd/other/mod.rs
@@ -0,0 +1,13 @@
+cfg_if! {
+    if #[cfg(target_arch = "x86_64")] {
+        mod b64;
+        pub use self::b64::*;
+    } else if #[cfg(any(target_arch = "arm",
+                        target_arch = "powerpc",
+                        target_arch = "x86"))] {
+        mod b32;
+        pub use self::b32::*;
+    } else {
+        // Unknown target_arch
+    }
+}
diff --git a/src/unix/bsd/netbsdlike/openbsdlike/mod.rs b/src/unix/bsd/netbsdlike/openbsdlike/mod.rs
index 4d35822fbe27ff88a53dff51599dda387ccd22a3..d7afb11eddd808306d074431289d511559975bec 100644
--- a/src/unix/bsd/netbsdlike/openbsdlike/mod.rs
+++ b/src/unix/bsd/netbsdlike/openbsdlike/mod.rs
@@ -1,3 +1,5 @@
+pub type c_long = i64;
+pub type c_ulong = u64;
 pub type clock_t = i64;
 pub type suseconds_t = i64;
 pub type dev_t = i32;