Skip to content

Commit 7f6c45f

Browse files
committed
musl: aarch64: update type of ipc_perm->__seq to match upstream
The architecture-specific definitions was removed in upstream commit 319b2d0, changing the type to the generic definition of int.
1 parent 5f03e36 commit 7f6c45f

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

libc-test/build.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -3648,7 +3648,6 @@ fn test_linux(target: &str) {
36483648
let x32 = target.contains("x32");
36493649
let x86_32 = target.contains("i686");
36503650
let x86_64 = target.contains("x86_64");
3651-
let aarch64_musl = aarch64 && musl;
36523651
let gnueabihf = target.contains("gnueabihf");
36533652
let x86_64_gnux32 = target.contains("gnux32") && x86_64;
36543653
let riscv64 = target.contains("riscv64");
@@ -4739,8 +4738,8 @@ fn test_linux(target: &str) {
47394738
"sched_ss_init_budget",
47404739
"sched_ss_max_repl",
47414740
].contains(&field) && musl) ||
4742-
// FIXME(musl): After musl 1.1.24, the type becomes `int` instead of `unsigned short`.
4743-
(struct_ == "ipc_perm" && field == "__seq" && aarch64_musl) ||
4741+
// After musl 1.1.24, the type becomes `int` instead of `unsigned short`.
4742+
(struct_ == "ipc_perm" && field == "__seq" && old_musl && aarch64) ||
47444743
// glibc uses unnamed fields here and Rust doesn't support that yet
47454744
(struct_ == "timex" && field.starts_with("__unused")) ||
47464745
// FIXME(linux): It now takes mode_t since glibc 2.31 on some targets.

src/unix/linux_like/linux/musl/b64/aarch64/mod.rs

+15-2
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,22 @@ s! {
7878
pub cuid: crate::uid_t,
7979
pub cgid: crate::gid_t,
8080
pub mode: crate::mode_t,
81+
82+
#[cfg(musl_v1_2_3)]
83+
pub __seq: c_int,
84+
#[cfg(not(musl_v1_2_3))]
85+
#[deprecated(
86+
since = "0.2.173",
87+
note = "The type of this field has changed from c_ushort to c_int, \
88+
we'll follow that change in the future release as part of \
89+
an effort to update the API to newer musl versions. \
90+
You can test these changes now by setting the \
91+
RUST_LIBC_UNSTABLE_MUSL_1_2_3 environment variable \
92+
when building. See #4443 for more info."
93+
)]
8194
pub __seq: c_ushort,
82-
__unused1: c_ulong,
83-
__unused2: c_ulong,
95+
__unused1: c_long,
96+
__unused2: c_long,
8497
}
8598

8699
pub struct ucontext_t {

0 commit comments

Comments
 (0)