From 591bef375987ed4e9644ced1f0c5799519b6996a Mon Sep 17 00:00:00 2001 From: Etienne Cordonnier Date: Sat, 15 Mar 2025 22:27:53 +0100 Subject: [PATCH 1/2] utmpx.rs: use correct constant names for musl libc Unfortunately, the name of those constants are not standardized: glibc uses __UT_HOSTSIZE, __UT_LINESIZE, __UT_NAMESIZE musl uses UT_HOSTSIZE, UT_LINESIZE, UT_NAMESIZE See: 1. https://git.musl-libc.org/cgit/musl/tree/include/utmpx.h 2. https://github.com/bminor/glibc/blob/master/sysdeps/gnu/bits/utmpx.h#L35 This is a partial fix for https://github.com/uutils/coreutils/issues/1361 Signed-off-by: Etienne Cordonnier --- src/uucore/src/lib/features/utmpx.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/uucore/src/lib/features/utmpx.rs b/src/uucore/src/lib/features/utmpx.rs index b66bfd329..5bb554dc1 100644 --- a/src/uucore/src/lib/features/utmpx.rs +++ b/src/uucore/src/lib/features/utmpx.rs @@ -70,9 +70,21 @@ macro_rules! chars2string { mod ut { pub static DEFAULT_FILE: &str = "/var/run/utmp"; + #[cfg(not(target_env = "musl"))] pub use libc::__UT_HOSTSIZE as UT_HOSTSIZE; + #[cfg(target_env = "musl")] + pub use libc::UT_HOSTSIZE; + + #[cfg(not(target_env = "musl"))] pub use libc::__UT_LINESIZE as UT_LINESIZE; + #[cfg(target_env = "musl")] + pub use libc::UT_LINESIZE; + + #[cfg(not(target_env = "musl"))] pub use libc::__UT_NAMESIZE as UT_NAMESIZE; + #[cfg(target_env = "musl")] + pub use libc::UT_NAMESIZE; + pub const UT_IDSIZE: usize = 4; pub use libc::ACCOUNTING; From f084b7f168aa5d54496ec3530886c5bb04decc1b Mon Sep 17 00:00:00 2001 From: Etienne Cordonnier Date: Sun, 16 Mar 2025 00:20:59 +0100 Subject: [PATCH 2/2] make cargo fmt happy --- src/uucore/src/lib/features/utmpx.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/uucore/src/lib/features/utmpx.rs b/src/uucore/src/lib/features/utmpx.rs index 5bb554dc1..e79ee0572 100644 --- a/src/uucore/src/lib/features/utmpx.rs +++ b/src/uucore/src/lib/features/utmpx.rs @@ -70,20 +70,20 @@ macro_rules! chars2string { mod ut { pub static DEFAULT_FILE: &str = "/var/run/utmp"; - #[cfg(not(target_env = "musl"))] - pub use libc::__UT_HOSTSIZE as UT_HOSTSIZE; #[cfg(target_env = "musl")] pub use libc::UT_HOSTSIZE; - #[cfg(not(target_env = "musl"))] - pub use libc::__UT_LINESIZE as UT_LINESIZE; + pub use libc::__UT_HOSTSIZE as UT_HOSTSIZE; + #[cfg(target_env = "musl")] pub use libc::UT_LINESIZE; - #[cfg(not(target_env = "musl"))] - pub use libc::__UT_NAMESIZE as UT_NAMESIZE; + pub use libc::__UT_LINESIZE as UT_LINESIZE; + #[cfg(target_env = "musl")] pub use libc::UT_NAMESIZE; + #[cfg(not(target_env = "musl"))] + pub use libc::__UT_NAMESIZE as UT_NAMESIZE; pub const UT_IDSIZE: usize = 4;