From c8e3c4feb5186483260b4960348aca33bbe0ec55 Mon Sep 17 00:00:00 2001 From: Adam Martinez <149513579+dybucc@users.noreply.github.com> Date: Mon, 11 Aug 2025 10:59:55 +0200 Subject: [PATCH] linux_like: unify SIGEV_THREAD_ID support This effectively adds the constant for musl too, as the last platform to support this symbol. It has been supported in musl since 7c71792e ("add support for SIGEV_THREAD_ID timers") and was released with v1.2.2 in January 2021. The libc-test build script needed some tweaking to skip the symbol when building against an older musl. Also double-checked that the `sigevent` struct is defined in the exact same way. Signed-off-by: Christoph Heiss Co-authored-by: Christoph Heiss --- libc-test/build/main.rs | 3 +++ libc-test/semver/emscripten.txt | 1 + libc-test/semver/l4re.txt | 1 + libc-test/semver/linux-gnu.txt | 1 - libc-test/semver/linux.txt | 1 + src/unix/linux_like/android/mod.rs | 2 -- src/unix/linux_like/l4re/uclibc/mod.rs | 2 -- src/unix/linux_like/linux/gnu/mod.rs | 2 -- src/unix/linux_like/linux/uclibc/mod.rs | 2 -- src/unix/linux_like/mod.rs | 1 + 10 files changed, 7 insertions(+), 9 deletions(-) diff --git a/libc-test/build/main.rs b/libc-test/build/main.rs index 54386c7e852af..5249498facc49 100755 --- a/libc-test/build/main.rs +++ b/libc-test/build/main.rs @@ -4594,6 +4594,9 @@ fn test_linux(target: &str) { // FIXME(musl): Values changed in newer musl versions on these arches "O_LARGEFILE" if riscv64 || x86_64 => return true, + // musl 1.2.2 was the first version where this appeared at. + "SIGEV_THREAD_ID" if old_musl => return true, + _ => (), } } diff --git a/libc-test/semver/emscripten.txt b/libc-test/semver/emscripten.txt index 35f7d85de5181..1fc5f3ed88d8e 100644 --- a/libc-test/semver/emscripten.txt +++ b/libc-test/semver/emscripten.txt @@ -1,4 +1,5 @@ AT_EACCESS +SIGEV_THREAD_ID getentropy getgrgid getgrgid_r diff --git a/libc-test/semver/l4re.txt b/libc-test/semver/l4re.txt index e4a8a79a28a11..d49b9dd89a195 100644 --- a/libc-test/semver/l4re.txt +++ b/libc-test/semver/l4re.txt @@ -1495,6 +1495,7 @@ SIGCONT SIGEV_NONE SIGEV_SIGNAL SIGEV_THREAD +SIGEV_THREAD_ID SIGFPE SIGHUP SIGILL diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 0256d463af53b..ab60524278ae0 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -399,7 +399,6 @@ RWF_NOWAIT RWF_SYNC SECURITYFS_MAGIC SELINUX_MAGIC -SIGEV_THREAD_ID SMACK_MAGIC SMB_SUPER_MAGIC SOL_CAIF diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index eec38c831364c..c89c35136de53 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -3033,6 +3033,7 @@ SHORT_INODE SIGEV_NONE SIGEV_SIGNAL SIGEV_THREAD +SIGEV_THREAD_ID SIGIO SIGPOLL SIGPWR diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 569eed822a7b5..263be00686977 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -1838,8 +1838,6 @@ pub const NLA_TYPE_MASK: c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER); pub const NLA_ALIGNTO: c_int = 4; -pub const SIGEV_THREAD_ID: c_int = 4; - pub const CIBAUD: crate::tcflag_t = 0o02003600000; pub const CBAUDEX: crate::tcflag_t = 0o010000; diff --git a/src/unix/linux_like/l4re/uclibc/mod.rs b/src/unix/linux_like/l4re/uclibc/mod.rs index e897946489975..50567690c4616 100644 --- a/src/unix/linux_like/l4re/uclibc/mod.rs +++ b/src/unix/linux_like/l4re/uclibc/mod.rs @@ -385,8 +385,6 @@ pub const MCL_CURRENT: c_int = 0x0001; pub const MCL_FUTURE: c_int = 0x0002; pub const MCL_ONFAULT: c_int = 0x0004; -pub const SIGEV_THREAD_ID: c_int = 4; - pub const AF_VSOCK: c_int = 40; pub const POSIX_FADV_DONTNEED: c_int = 4; diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 1ef5624f44de2..a5af6aceaf652 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -680,8 +680,6 @@ pub const PF_NFC: c_int = AF_NFC; pub const PF_VSOCK: c_int = AF_VSOCK; pub const PF_XDP: c_int = AF_XDP; -pub const SIGEV_THREAD_ID: c_int = 4; - pub const BUFSIZ: c_uint = 8192; pub const TMP_MAX: c_uint = 238328; pub const FOPEN_MAX: c_uint = 16; diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index 6c3d8013f9173..dd54a15e25fb0 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -216,8 +216,6 @@ pub const MCL_CURRENT: c_int = 0x0001; pub const MCL_FUTURE: c_int = 0x0002; pub const MCL_ONFAULT: c_int = 0x0004; -pub const SIGEV_THREAD_ID: c_int = 4; - pub const AF_VSOCK: c_int = 40; // Most `*_SUPER_MAGIC` constants are defined at the `linux_like` level; the diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index c194bba451ffe..ad8cc6be257f7 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -1345,6 +1345,7 @@ pub const CLD_CONTINUED: c_int = 6; pub const SIGEV_SIGNAL: c_int = 0; pub const SIGEV_NONE: c_int = 1; pub const SIGEV_THREAD: c_int = 2; +pub const SIGEV_THREAD_ID: c_int = 4; pub const P_ALL: idtype_t = 0; pub const P_PID: idtype_t = 1;