diff --git a/src/unix/bsd/netbsdlike/openbsdlike/mod.rs b/src/unix/bsd/netbsdlike/openbsdlike/mod.rs
index 10e8527d8b675dea857ed7c4a0a472044d7f60c1..4e6019ba61c95a73fabff1e4bd1ef3071067375d 100644
--- a/src/unix/bsd/netbsdlike/openbsdlike/mod.rs
+++ b/src/unix/bsd/netbsdlike/openbsdlike/mod.rs
@@ -1,5 +1,3 @@
-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;
@@ -448,3 +446,6 @@ cfg_if! {
         // Unknown target_os
     }
 }
+
+mod other;
+pub use self::other::*;
diff --git a/src/unix/bsd/netbsdlike/openbsdlike/other/b32/mod.rs b/src/unix/bsd/netbsdlike/openbsdlike/other/b32/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..9b0b338b91e5b52050c6d0edab5b3d5ea0263037
--- /dev/null
+++ b/src/unix/bsd/netbsdlike/openbsdlike/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/openbsdlike/other/b64/mod.rs b/src/unix/bsd/netbsdlike/openbsdlike/other/b64/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..b07c476aa49d963c7476fa17418927e5ffc9c2e4
--- /dev/null
+++ b/src/unix/bsd/netbsdlike/openbsdlike/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/openbsdlike/other/mod.rs b/src/unix/bsd/netbsdlike/openbsdlike/other/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..e4087da7bc235195fbc63c6ab76643d9bbc2dbe3
--- /dev/null
+++ b/src/unix/bsd/netbsdlike/openbsdlike/other/mod.rs
@@ -0,0 +1,11 @@
+cfg_if! {
+    if #[cfg(target_arch = "x86_64")] {
+        mod b64;
+        pub use self::b64::*;
+    } else if #[cfg(target_arch = "x86")] {
+        mod b32;
+        pub use self::b32::*;
+    } else {
+        // Unknown target_arch
+    }
+}