Skip to content

Commit 92e5d67

Browse files
committed
Auto merge of #3268 - chenx97:mips64r6, r=JohnTitor
add mips32r6 and mips64r6 target_arch detection This PR introduces `"mips32r6"` and `"mips64r6"` as valid `target_arch` values, and would be the arch values used by Tier-3 targets `mipsisa32r6-unknown-linux-gnu`, `mipsisa32r6el-unknown-linux-gnu`, `mipsisa64r6-unknown-linux-gnuabi64` and `mipsisa64r6el-unknown-linux-gnuabi64`. This PR is made for rust-lang/rust#112374. This PR has a corresponding [MCP](rust-lang/compiler-team#632) waiting for review. mips64r6 has the same ABIs, syscall conventions, and various magic numbers as mips64 does. So this PR just adds mips64r6 to all mips64 detection macros. Similarly, mips32r6 share their ABIs, syscall conventions and various magic with mips, so the PR just adds mips32r6 to where mips is to be detected.
2 parents ca814e8 + 7d80488 commit 92e5d67

File tree

8 files changed

+57
-27
lines changed

8 files changed

+57
-27
lines changed

build.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ const ALLOWED_CFGS: &'static [&'static str] = &[
3535
const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[
3636
("target_os", &["switch", "aix", "ohos"]),
3737
("target_env", &["illumos", "wasi", "aix", "ohos"]),
38-
("target_arch", &["loongarch64"]),
38+
("target_arch", &["loongarch64", "mips32r6", "mips64r6"]),
3939
];
4040

4141
fn main() {

src/unix/linux_like/linux/align.rs

+8
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ macro_rules! expand_align {
55
target_arch = "x86_64",
66
target_arch = "powerpc64",
77
target_arch = "mips64",
8+
target_arch = "mips64r6",
89
target_arch = "s390x",
910
target_arch = "sparc64",
1011
target_arch = "aarch64",
@@ -16,6 +17,7 @@ macro_rules! expand_align {
1617
target_arch = "x86_64",
1718
target_arch = "powerpc64",
1819
target_arch = "mips64",
20+
target_arch = "mips64r6",
1921
target_arch = "s390x",
2022
target_arch = "sparc64",
2123
target_arch = "aarch64",
@@ -83,6 +85,7 @@ macro_rules! expand_align {
8385

8486
#[cfg_attr(all(target_pointer_width = "32",
8587
any(target_arch = "mips",
88+
target_arch = "mips32r6",
8689
target_arch = "arm",
8790
target_arch = "hexagon",
8891
target_arch = "m68k",
@@ -93,6 +96,7 @@ macro_rules! expand_align {
9396
repr(align(4)))]
9497
#[cfg_attr(any(target_pointer_width = "64",
9598
not(any(target_arch = "mips",
99+
target_arch = "mips32r6",
96100
target_arch = "arm",
97101
target_arch = "hexagon",
98102
target_arch = "m68k",
@@ -108,6 +112,7 @@ macro_rules! expand_align {
108112

109113
#[cfg_attr(all(target_pointer_width = "32",
110114
any(target_arch = "mips",
115+
target_arch = "mips32r6",
111116
target_arch = "arm",
112117
target_arch = "hexagon",
113118
target_arch = "m68k",
@@ -118,6 +123,7 @@ macro_rules! expand_align {
118123
repr(align(4)))]
119124
#[cfg_attr(any(target_pointer_width = "64",
120125
not(any(target_arch = "mips",
126+
target_arch = "mips32r6",
121127
target_arch = "arm",
122128
target_arch = "hexagon",
123129
target_arch = "m68k",
@@ -132,6 +138,7 @@ macro_rules! expand_align {
132138

133139
#[cfg_attr(all(target_pointer_width = "32",
134140
any(target_arch = "mips",
141+
target_arch = "mips32r6",
135142
target_arch = "arm",
136143
target_arch = "hexagon",
137144
target_arch = "m68k",
@@ -142,6 +149,7 @@ macro_rules! expand_align {
142149
repr(align(4)))]
143150
#[cfg_attr(any(target_pointer_width = "64",
144151
not(any(target_arch = "mips",
152+
target_arch = "mips32r6",
145153
target_arch = "arm",
146154
target_arch = "hexagon",
147155
target_arch = "m68k",

src/unix/linux_like/linux/arch/mips/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -272,15 +272,15 @@ cfg_if! {
272272
}
273273

274274
cfg_if! {
275-
if #[cfg(target_arch = "mips64",
275+
if #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"),
276276
any(target_env = "gnu",
277277
target_env = "uclibc"))] {
278278
pub const RLIM_INFINITY: ::rlim_t = !0;
279279
}
280280
}
281281

282282
cfg_if! {
283-
if #[cfg(target_arch = "mips",
283+
if #[cfg(any(target_arch = "mips", target_arch = "mips32r6"),
284284
any(target_env = "gnu",
285285
target_env = "uclibc"))] {
286286
pub const RLIM_INFINITY: ::rlim_t = 0x7fffffff;

src/unix/linux_like/linux/arch/mod.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
cfg_if! {
2-
if #[cfg(any(target_arch = "mips", target_arch = "mips64"))] {
2+
if #[cfg(any(target_arch = "mips",
3+
target_arch = "mips32r6",
4+
target_arch = "mips64",
5+
target_arch = "mips64r6"))] {
36
mod mips;
47
pub use self::mips::*;
58
} else if #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))] {

src/unix/linux_like/linux/gnu/b32/mod.rs

+19-19
Original file line numberDiff line numberDiff line change
@@ -43,50 +43,50 @@ cfg_if! {
4343

4444
s! {
4545
pub struct stat {
46-
#[cfg(not(target_arch = "mips"))]
46+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
4747
pub st_dev: ::dev_t,
48-
#[cfg(target_arch = "mips")]
48+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
4949
pub st_dev: ::c_ulong,
5050

51-
#[cfg(not(target_arch = "mips"))]
51+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
5252
__pad1: ::c_short,
53-
#[cfg(target_arch = "mips")]
53+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
5454
st_pad1: [::c_long; 3],
5555
pub st_ino: ::ino_t,
5656
pub st_mode: ::mode_t,
5757
pub st_nlink: ::nlink_t,
5858
pub st_uid: ::uid_t,
5959
pub st_gid: ::gid_t,
60-
#[cfg(not(target_arch = "mips"))]
60+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
6161
pub st_rdev: ::dev_t,
62-
#[cfg(target_arch = "mips")]
62+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
6363
pub st_rdev: ::c_ulong,
64-
#[cfg(not(target_arch = "mips"))]
64+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
6565
__pad2: ::c_short,
66-
#[cfg(target_arch = "mips")]
66+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
6767
st_pad2: [::c_long; 2],
6868
pub st_size: ::off_t,
69-
#[cfg(target_arch = "mips")]
69+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
7070
st_pad3: ::c_long,
71-
#[cfg(not(target_arch = "mips"))]
71+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
7272
pub st_blksize: ::blksize_t,
73-
#[cfg(not(target_arch = "mips"))]
73+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
7474
pub st_blocks: ::blkcnt_t,
7575
pub st_atime: ::time_t,
7676
pub st_atime_nsec: ::c_long,
7777
pub st_mtime: ::time_t,
7878
pub st_mtime_nsec: ::c_long,
7979
pub st_ctime: ::time_t,
8080
pub st_ctime_nsec: ::c_long,
81-
#[cfg(not(target_arch = "mips"))]
81+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
8282
__unused4: ::c_long,
83-
#[cfg(not(target_arch = "mips"))]
83+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6")))]
8484
__unused5: ::c_long,
85-
#[cfg(target_arch = "mips")]
85+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
8686
pub st_blksize: ::blksize_t,
87-
#[cfg(target_arch = "mips")]
87+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
8888
pub st_blocks: ::blkcnt_t,
89-
#[cfg(target_arch = "mips")]
89+
#[cfg(any(target_arch = "mips", target_arch = "mips32r6"))]
9090
st_pad5: [::c_long; 14],
9191
}
9292

@@ -140,12 +140,12 @@ s! {
140140
#[cfg(target_arch = "powerpc")]
141141
__reserved: ::__syscall_ulong_t,
142142
pub sem_otime: ::time_t,
143-
#[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))]
143+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6", target_arch = "powerpc")))]
144144
__reserved: ::__syscall_ulong_t,
145145
#[cfg(target_arch = "powerpc")]
146146
__reserved2: ::__syscall_ulong_t,
147147
pub sem_ctime: ::time_t,
148-
#[cfg(not(any(target_arch = "mips", target_arch = "powerpc")))]
148+
#[cfg(not(any(target_arch = "mips", target_arch = "mips32r6", target_arch = "powerpc")))]
149149
__reserved2: ::__syscall_ulong_t,
150150
pub sem_nsems: ::__syscall_ulong_t,
151151
__glibc_reserved3: ::__syscall_ulong_t,
@@ -337,7 +337,7 @@ cfg_if! {
337337
} else if #[cfg(target_arch = "arm")] {
338338
mod arm;
339339
pub use self::arm::*;
340-
} else if #[cfg(target_arch = "mips")] {
340+
} else if #[cfg(any(target_arch = "mips", target_arch = "mips32r6"))] {
341341
mod mips;
342342
pub use self::mips::*;
343343
} else if #[cfg(target_arch = "m68k")] {

src/unix/linux_like/linux/gnu/b64/mod.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ s! {
7272
target_arch = "aarch64",
7373
target_arch = "loongarch64",
7474
target_arch = "mips64",
75+
target_arch = "mips64r6",
7576
target_arch = "powerpc64",
7677
target_arch = "riscv64",
7778
target_arch = "sparc64")))]
@@ -81,6 +82,7 @@ s! {
8182
target_arch = "aarch64",
8283
target_arch = "loongarch64",
8384
target_arch = "mips64",
85+
target_arch = "mips64r6",
8486
target_arch = "powerpc64",
8587
target_arch = "riscv64",
8688
target_arch = "sparc64")))]
@@ -105,7 +107,7 @@ cfg_if! {
105107
} else if #[cfg(any(target_arch = "sparc64"))] {
106108
mod sparc64;
107109
pub use self::sparc64::*;
108-
} else if #[cfg(any(target_arch = "mips64"))] {
110+
} else if #[cfg(any(target_arch = "mips64", target_arch = "mips64r6"))] {
109111
mod mips64;
110112
pub use self::mips64::*;
111113
} else if #[cfg(any(target_arch = "s390x"))] {

src/unix/linux_like/linux/gnu/mod.rs

+12-3
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,17 @@ s! {
116116
target_arch = "sparc",
117117
target_arch = "sparc64",
118118
target_arch = "mips",
119-
target_arch = "mips64")))]
119+
target_arch = "mips32r6",
120+
target_arch = "mips64",
121+
target_arch = "mips64r6")))]
120122
pub c_ispeed: ::speed_t,
121123
#[cfg(not(any(
122124
target_arch = "sparc",
123125
target_arch = "sparc64",
124126
target_arch = "mips",
125-
target_arch = "mips64")))]
127+
target_arch = "mips32r6",
128+
target_arch = "mips64",
129+
target_arch = "mips64r6")))]
126130
pub c_ospeed: ::speed_t,
127131
}
128132

@@ -954,7 +958,10 @@ pub const KEYCTL_SUPPORTS_DECRYPT: u32 = 0x02;
954958
pub const KEYCTL_SUPPORTS_SIGN: u32 = 0x04;
955959
pub const KEYCTL_SUPPORTS_VERIFY: u32 = 0x08;
956960
cfg_if! {
957-
if #[cfg(not(any(target_arch="mips", target_arch="mips64")))] {
961+
if #[cfg(not(any(target_arch="mips",
962+
target_arch="mips32r6",
963+
target_arch="mips64",
964+
target_arch = "mips64r6")))] {
958965
pub const KEYCTL_MOVE: u32 = 30;
959966
pub const KEYCTL_CAPABILITIES: u32 = 31;
960967

@@ -1379,6 +1386,7 @@ cfg_if! {
13791386
target_arch = "arm",
13801387
target_arch = "m68k",
13811388
target_arch = "mips",
1389+
target_arch = "mips32r6",
13821390
target_arch = "powerpc",
13831391
target_arch = "sparc",
13841392
target_arch = "riscv32"))] {
@@ -1388,6 +1396,7 @@ cfg_if! {
13881396
target_arch = "aarch64",
13891397
target_arch = "powerpc64",
13901398
target_arch = "mips64",
1399+
target_arch = "mips64r6",
13911400
target_arch = "s390x",
13921401
target_arch = "sparc64",
13931402
target_arch = "riscv64",

src/unix/linux_like/linux/no_align.rs

+8
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ macro_rules! expand_align {
55
#[cfg(any(target_arch = "x86_64",
66
target_arch = "powerpc64",
77
target_arch = "mips64",
8+
target_arch = "mips64r6",
89
target_arch = "s390x",
910
target_arch = "sparc64",
1011
target_arch = "riscv64",
@@ -16,6 +17,7 @@ macro_rules! expand_align {
1617
#[cfg(not(any(target_arch = "x86_64",
1718
target_arch = "powerpc64",
1819
target_arch = "mips64",
20+
target_arch = "mips64r6",
1921
target_arch = "s390x",
2022
target_arch = "sparc64",
2123
target_arch = "riscv64",
@@ -68,6 +70,7 @@ macro_rules! expand_align {
6870

6971
pub struct pthread_mutex_t {
7072
#[cfg(any(target_arch = "mips",
73+
target_arch = "mips32r6",
7174
target_arch = "arm",
7275
target_arch = "m68k",
7376
target_arch = "powerpc",
@@ -76,6 +79,7 @@ macro_rules! expand_align {
7679
target_pointer_width = "32")))]
7780
__align: [::c_long; 0],
7881
#[cfg(not(any(target_arch = "mips",
82+
target_arch = "mips32r6",
7983
target_arch = "arm",
8084
target_arch = "m68k",
8185
target_arch = "powerpc",
@@ -88,6 +92,7 @@ macro_rules! expand_align {
8892

8993
pub struct pthread_rwlock_t {
9094
#[cfg(any(target_arch = "mips",
95+
target_arch = "mips32r6",
9196
target_arch = "arm",
9297
target_arch = "m68k",
9398
target_arch = "powerpc",
@@ -96,6 +101,7 @@ macro_rules! expand_align {
96101
target_pointer_width = "32")))]
97102
__align: [::c_long; 0],
98103
#[cfg(not(any(target_arch = "mips",
104+
target_arch = "mips32r6",
99105
target_arch = "arm",
100106
target_arch = "m68k",
101107
target_arch = "powerpc",
@@ -108,6 +114,7 @@ macro_rules! expand_align {
108114

109115
pub struct pthread_barrier_t {
110116
#[cfg(any(target_arch = "mips",
117+
target_arch = "mips32r6",
111118
target_arch = "arm",
112119
target_arch = "m68k",
113120
target_arch = "powerpc",
@@ -116,6 +123,7 @@ macro_rules! expand_align {
116123
target_pointer_width = "32")))]
117124
__align: [::c_long; 0],
118125
#[cfg(not(any(target_arch = "mips",
126+
target_arch = "mips32r6",
119127
target_arch = "arm",
120128
target_arch = "m68k",
121129
target_arch = "powerpc",

0 commit comments

Comments
 (0)