From ee554456ed2a267a1b960c74913bb1e9f5666569 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 15 Feb 2025 23:02:09 +0000 Subject: [PATCH] adding SUN_LEN macro to linux glibc/musl [glibc ref](https://github.com/bminor/glibc/blob/1b6f868625403d6b7683af840e87d2b18d5d7731/socket/sys/un.h#L41) [musl ref](https://github.com/bminor/musl/blob/c47ad25ea3b484e10326f933e927c0bc8cded3da/include/sys/un.h#L24) --- libc-test/semver/linux-gnu.txt | 1 + libc-test/semver/linux-musl.txt | 1 + src/unix/linux_like/linux/mod.rs | 11 +++++++++++ 3 files changed, 13 insertions(+) diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 9001de4c4ff3..28b087e4e491 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -448,6 +448,7 @@ STA_PPSTIME STA_PPSWANDER STA_RONLY STA_UNSYNC +SUN_LEN ST_RELATIME SYSFS_MAGIC TCA_CHAIN diff --git a/libc-test/semver/linux-musl.txt b/libc-test/semver/linux-musl.txt index d8e4918facb1..39e09746ec91 100644 --- a/libc-test/semver/linux-musl.txt +++ b/libc-test/semver/linux-musl.txt @@ -36,6 +36,7 @@ RWF_DSYNC RWF_HIPRI RWF_NOWAIT RWF_SYNC +SUN_LEN USER_PROCESS _CS_V6_ENV _CS_V7_ENV diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 37b1e673b2e2..645a1640d1b4 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -6053,6 +6053,17 @@ f! { pub fn ELF64_R_INFO(sym: Elf64_Xword, t: Elf64_Xword) -> Elf64_Xword { sym << 32 + t } + + #[cfg(target_env = "gnu")] + pub fn SUN_LEN(s: crate::sockaddr_un) -> usize { + core::mem::offset_of!(crate::sockaddr_un, sun_path) + + unsafe { crate::strlen(s.sun_path.as_ptr()) } + } + + #[cfg(target_env = "musl")] + pub fn SUN_LEN(s: crate::sockaddr_un) -> usize { + 2 * (unsafe { crate::strlen(s.sun_path.as_ptr()) }) + } } safe_f! {