Skip to content

Commit ca90edc

Browse files
committed
Add missing utmpx apis for linux musl
Close rust-lang#4322 Also add a deprecation warning, because those functions are only implemented as stubs inside musl. Signed-off-by: Etienne Cordonnier <[email protected]>
1 parent c6a3cd6 commit ca90edc

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

libc-test/semver/linux-musl.txt

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
ACCOUNTING
12
AF_IB
23
AF_MPLS
34
AF_XDP
@@ -37,6 +38,9 @@ RWF_HIPRI
3738
RWF_NOWAIT
3839
RWF_SYNC
3940
USER_PROCESS
41+
UT_HOSTSIZE
42+
UT_LINESIZE
43+
UT_NAMESIZE
4044
_CS_V6_ENV
4145
_CS_V7_ENV
4246
adjtimex
@@ -82,3 +86,4 @@ reallocarray
8286
setutxent
8387
tcp_info
8488
timex
89+
utmpxname

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

+34-1
Original file line numberDiff line numberDiff line change
@@ -656,7 +656,7 @@ pub const INIT_PROCESS: c_short = 5;
656656
pub const LOGIN_PROCESS: c_short = 6;
657657
pub const USER_PROCESS: c_short = 7;
658658
pub const DEAD_PROCESS: c_short = 8;
659-
// musl does not define ACCOUNTING
659+
pub const ACCOUNTING: c_short = 9;
660660

661661
pub const SFD_CLOEXEC: c_int = 0x080000;
662662

@@ -888,6 +888,10 @@ pub const _CS_V7_ENV: c_int = 1149;
888888

889889
pub const CLONE_NEWTIME: c_int = 0x80;
890890

891+
pub const UT_HOSTSIZE: usize = 256;
892+
pub const UT_LINESIZE: usize = 32;
893+
pub const UT_NAMESIZE: usize = 32;
894+
891895
cfg_if! {
892896
if #[cfg(target_arch = "s390x")] {
893897
pub const POSIX_FADV_DONTNEED: c_int = 6;
@@ -984,12 +988,41 @@ extern "C" {
984988
fd: c_int,
985989
) -> c_int;
986990

991+
#[deprecated(
992+
since = "0.2.172",
993+
note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html"
994+
)]
987995
pub fn getutxent() -> *mut utmpx;
996+
#[deprecated(
997+
since = "0.2.172",
998+
note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html"
999+
)]
9881000
pub fn getutxid(ut: *const utmpx) -> *mut utmpx;
1001+
#[deprecated(
1002+
since = "0.2.172",
1003+
note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html"
1004+
)]
9891005
pub fn getutxline(ut: *const utmpx) -> *mut utmpx;
1006+
#[deprecated(
1007+
since = "0.2.172",
1008+
note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html"
1009+
)]
9901010
pub fn pututxline(ut: *const utmpx) -> *mut utmpx;
1011+
#[deprecated(
1012+
since = "0.2.172",
1013+
note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html"
1014+
)]
9911015
pub fn setutxent();
1016+
#[deprecated(
1017+
since = "0.2.172",
1018+
note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html"
1019+
)]
9921020
pub fn endutxent();
1021+
#[deprecated(
1022+
since = "0.2.172",
1023+
note = "musl provides `utmp` as stubs and an alternative should be preferred; see https://wiki.musl-libc.org/faq.html"
1024+
)]
1025+
pub fn utmpxname(file: *const c_char) -> c_int;
9931026
}
9941027

9951028
// Alias <foo> to <foo>64 to mimic glibc's LFS64 support

0 commit comments

Comments
 (0)