diff --git a/build.rs b/build.rs index 7244301683cbf..3062e8d66fffa 100644 --- a/build.rs +++ b/build.rs @@ -34,7 +34,7 @@ const ALLOWED_CFGS: &'static [&'static str] = &[ const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[ ("target_os", &["switch", "aix", "ohos"]), ("target_env", &["illumos", "wasi", "aix", "ohos"]), - ("target_arch", &["loongarch64", "mips64r6"]), + ("target_arch", &["loongarch64", "mips32r6", "mips64r6"]), ]; fn main() { diff --git a/src/unix/linux_like/linux/align.rs b/src/unix/linux_like/linux/align.rs index fc772ccbe270d..fc12a0b73a652 100644 --- a/src/unix/linux_like/linux/align.rs +++ b/src/unix/linux_like/linux/align.rs @@ -85,6 +85,7 @@ macro_rules! expand_align { #[cfg_attr(all(target_pointer_width = "32", any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "hexagon", target_arch = "m68k", @@ -95,6 +96,7 @@ macro_rules! expand_align { repr(align(4)))] #[cfg_attr(any(target_pointer_width = "64", not(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "hexagon", target_arch = "m68k", @@ -110,6 +112,7 @@ macro_rules! expand_align { #[cfg_attr(all(target_pointer_width = "32", any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "hexagon", target_arch = "m68k", @@ -120,6 +123,7 @@ macro_rules! expand_align { repr(align(4)))] #[cfg_attr(any(target_pointer_width = "64", not(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "hexagon", target_arch = "m68k", @@ -134,6 +138,7 @@ macro_rules! expand_align { #[cfg_attr(all(target_pointer_width = "32", any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "hexagon", target_arch = "m68k", @@ -144,6 +149,7 @@ macro_rules! expand_align { repr(align(4)))] #[cfg_attr(any(target_pointer_width = "64", not(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "hexagon", target_arch = "m68k", diff --git a/src/unix/linux_like/linux/arch/mips/mod.rs b/src/unix/linux_like/linux/arch/mips/mod.rs index 51635bcaf6439..975e334de5ffb 100644 --- a/src/unix/linux_like/linux/arch/mips/mod.rs +++ b/src/unix/linux_like/linux/arch/mips/mod.rs @@ -280,7 +280,7 @@ cfg_if! { } cfg_if! { - if #[cfg(target_arch = "mips", + if #[cfg(any(target_arch = "mips", target_arch = "mips32r6"), any(target_env = "gnu", target_env = "uclibc"))] { pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff; diff --git a/src/unix/linux_like/linux/arch/mod.rs b/src/unix/linux_like/linux/arch/mod.rs index 017bede95131b..7f6ddc5a764ff 100644 --- a/src/unix/linux_like/linux/arch/mod.rs +++ b/src/unix/linux_like/linux/arch/mod.rs @@ -1,5 +1,8 @@ cfg_if! { - if #[cfg(any(target_arch = "mips", target_arch = "mips64", target_arch = "mips64r6"))] { + if #[cfg(any(target_arch = "mips", + target_arch = "mips32r6", + target_arch = "mips64", + target_arch = "mips64r6"))] { mod mips; pub use self::mips::*; } else if #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))] { diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 66d1d016f7154..2df7a47b9d10a 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -43,34 +43,34 @@ cfg_if! { s! { pub struct stat { - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] pub st_dev: ::dev_t, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] pub st_dev: ::c_ulong, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] __pad1: ::c_short, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] st_pad1: [::c_long; 3], pub st_ino: ::ino_t, pub st_mode: ::mode_t, pub st_nlink: ::nlink_t, pub st_uid: ::uid_t, pub st_gid: ::gid_t, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] pub st_rdev: ::dev_t, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] pub st_rdev: ::c_ulong, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] __pad2: ::c_short, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] st_pad2: [::c_long; 2], pub st_size: ::off_t, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] st_pad3: ::c_long, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] pub st_blksize: ::blksize_t, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] pub st_blocks: ::blkcnt_t, pub st_atime: ::time_t, pub st_atime_nsec: ::c_long, @@ -78,15 +78,15 @@ s! { pub st_mtime_nsec: ::c_long, pub st_ctime: ::time_t, pub st_ctime_nsec: ::c_long, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] __unused4: ::c_long, - #[cfg(not(target_arch = "mips"))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))] __unused5: ::c_long, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] pub st_blksize: ::blksize_t, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] pub st_blocks: ::blkcnt_t, - #[cfg(target_arch = "mips")] + #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] st_pad5: [::c_long; 14], } @@ -140,12 +140,12 @@ s! { #[cfg(target_arch = "powerpc")] __reserved: ::__syscall_ulong_t, pub sem_otime: ::time_t, - #[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6", target_arch = "powerpc")))] __reserved: ::__syscall_ulong_t, #[cfg(target_arch = "powerpc")] __reserved2: ::__syscall_ulong_t, pub sem_ctime: ::time_t, - #[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))] + #[cfg(not(any(target_arch = "mips", target_arch = "mips32r6", target_arch = "powerpc")))] __reserved2: ::__syscall_ulong_t, pub sem_nsems: ::__syscall_ulong_t, __glibc_reserved3: ::__syscall_ulong_t, @@ -337,7 +337,7 @@ cfg_if! { } else if #[cfg(target_arch = "arm")] { mod arm; pub use self::arm::*; - } else if #[cfg(target_arch = "mips")] { + } else if #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] { mod mips; pub use self::mips::*; } else if #[cfg(target_arch = "m68k")] { diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 3a33df52b1b40..494bad1941dab 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -116,6 +116,7 @@ s! { target_arch = "sparc", target_arch = "sparc64", target_arch = "mips", + target_arch = "mips32r6", target_arch = "mips64", target_arch = "mips64r6")))] pub c_ispeed: ::speed_t, @@ -123,6 +124,7 @@ s! { target_arch = "sparc", target_arch = "sparc64", target_arch = "mips", + target_arch = "mips32r6", target_arch = "mips64", target_arch = "mips64r6")))] pub c_ospeed: ::speed_t, @@ -956,7 +958,10 @@ pub const KEYCTL_SUPPORTS_DECRYPT: u32 = 0x02; pub const KEYCTL_SUPPORTS_SIGN: u32 = 0x04; pub const KEYCTL_SUPPORTS_VERIFY: u32 = 0x08; cfg_if! { - if #[cfg(not(any(target_arch="mips", target_arch="mips64", target_arch = "mips64r6")))] { + if #[cfg(not(any(target_arch="mips", + target_arch="mips32r6", + target_arch="mips64", + target_arch = "mips64r6")))] { pub const KEYCTL_MOVE: u32 = 30; pub const KEYCTL_CAPABILITIES: u32 = 31; @@ -1381,6 +1386,7 @@ cfg_if! { target_arch = "arm", target_arch = "m68k", target_arch = "mips", + target_arch = "mips32r6", target_arch = "powerpc", target_arch = "sparc", target_arch = "riscv32"))] { diff --git a/src/unix/linux_like/linux/no_align.rs b/src/unix/linux_like/linux/no_align.rs index 3a7a8ace6b9be..3f5d7d6cdef08 100644 --- a/src/unix/linux_like/linux/no_align.rs +++ b/src/unix/linux_like/linux/no_align.rs @@ -70,6 +70,7 @@ macro_rules! expand_align { pub struct pthread_mutex_t { #[cfg(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "m68k", target_arch = "powerpc", @@ -78,6 +79,7 @@ macro_rules! expand_align { target_pointer_width = "32")))] __align: [::c_long; 0], #[cfg(not(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "m68k", target_arch = "powerpc", @@ -90,6 +92,7 @@ macro_rules! expand_align { pub struct pthread_rwlock_t { #[cfg(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "m68k", target_arch = "powerpc", @@ -98,6 +101,7 @@ macro_rules! expand_align { target_pointer_width = "32")))] __align: [::c_long; 0], #[cfg(not(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "m68k", target_arch = "powerpc", @@ -110,6 +114,7 @@ macro_rules! expand_align { pub struct pthread_barrier_t { #[cfg(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "m68k", target_arch = "powerpc", @@ -118,6 +123,7 @@ macro_rules! expand_align { target_pointer_width = "32")))] __align: [::c_long; 0], #[cfg(not(any(target_arch = "mips", + target_arch = "mips32r6", target_arch = "arm", target_arch = "m68k", target_arch = "powerpc",