Skip to content

Commit 51f9da4

Browse files
committed
Support confstr on Linux
1 parent 2d221d7 commit 51f9da4

File tree

10 files changed

+99
-14
lines changed

10 files changed

+99
-14
lines changed

libc-test/semver/apple.txt

-1
Original file line numberDiff line numberDiff line change
@@ -1785,7 +1785,6 @@ clock_getres
17851785
clonefile
17861786
clonefileat
17871787
cmsghdr
1788-
confstr
17891788
connectx
17901789
copyfile
17911790
copyfile_callback_t

libc-test/semver/linux-gnu.txt

+2-4
Original file line numberDiff line numberDiff line change
@@ -501,9 +501,8 @@ XSK_UNALIGNED_BUF_ADDR_MASK
501501
XDP_PKT_CONTD
502502
XENFS_SUPER_MAGIC
503503
XFS_SUPER_MAGIC
504-
_CS_GNU_LIBC_VERSION
505-
_CS_GNU_LIBPTHREAD_VERSION
506-
_CS_PATH
504+
_CS_V6_ENV
505+
_CS_V7_ENV
507506
_SC_2_C_VERSION
508507
_SC_BASE
509508
_SC_CHARCLASS_NAME_MAX
@@ -604,7 +603,6 @@ aio_write
604603
aiocb
605604
backtrace
606605
clock_adjtime
607-
confstr
608606
copy_file_range
609607
ctermid
610608
dlinfo

libc-test/semver/linux-musl.txt

+2
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ XDP_USE_SG
6161
XDP_ZEROCOPY
6262
XSK_UNALIGNED_BUF_ADDR_MASK
6363
XSK_UNALIGNED_BUF_OFFSET_SHIFT
64+
_CS_V6_ENV
65+
_CS_V7_ENV
6466
adjtimex
6567
aio_cancel
6668
aio_error

libc-test/semver/linux.txt

+38
Original file line numberDiff line numberDiff line change
@@ -3324,6 +3324,44 @@ XATTR_REPLACE
33243324
XTABS
33253325
YESEXPR
33263326
YESSTR
3327+
_CS_GNU_LIBC_VERSION
3328+
_CS_GNU_LIBPTHREAD_VERSION
3329+
_CS_PATH
3330+
_CS_POSIX_V5_WIDTH_RESTRICTED_ENVS
3331+
_CS_POSIX_V6_ILP32_OFF32_CFLAGS
3332+
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS
3333+
_CS_POSIX_V6_ILP32_OFF32_LIBS
3334+
_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
3335+
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
3336+
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
3337+
_CS_POSIX_V6_ILP32_OFFBIG_LIBS
3338+
_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
3339+
_CS_POSIX_V6_LP64_OFF64_CFLAGS
3340+
_CS_POSIX_V6_LP64_OFF64_LDFLAGS
3341+
_CS_POSIX_V6_LP64_OFF64_LIBS
3342+
_CS_POSIX_V6_LP64_OFF64_LINTFLAGS
3343+
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
3344+
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
3345+
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS
3346+
_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
3347+
_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS
3348+
_CS_POSIX_V7_ILP32_OFF32_CFLAGS
3349+
_CS_POSIX_V7_ILP32_OFF32_LDFLAGS
3350+
_CS_POSIX_V7_ILP32_OFF32_LIBS
3351+
_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS
3352+
_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
3353+
_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
3354+
_CS_POSIX_V7_ILP32_OFFBIG_LIBS
3355+
_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS
3356+
_CS_POSIX_V7_LP64_OFF64_CFLAGS
3357+
_CS_POSIX_V7_LP64_OFF64_LDFLAGS
3358+
_CS_POSIX_V7_LP64_OFF64_LIBS
3359+
_CS_POSIX_V7_LP64_OFF64_LINTFLAGS
3360+
_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
3361+
_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
3362+
_CS_POSIX_V7_LPBIG_OFFBIG_LIBS
3363+
_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
3364+
_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
33273365
_IOFBF
33283366
_IOLBF
33293367
_IONBF

libc-test/semver/unix.txt

+1
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,7 @@ clockid_t
492492
close
493493
closedir
494494
closelog
495+
confstr
495496
connect
496497
creat
497498
dev_t

src/unix/bsd/apple/mod.rs

-5
Original file line numberDiff line numberDiff line change
@@ -5612,11 +5612,6 @@ extern "C" {
56125612
pub fn fchflags(fd: ::c_int, flags: ::c_uint) -> ::c_int;
56135613
pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int;
56145614
pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int;
5615-
#[cfg_attr(
5616-
all(target_os = "macos", target_arch = "x86"),
5617-
link_name = "confstr$UNIX2003"
5618-
)]
5619-
pub fn confstr(name: ::c_int, buf: *mut ::c_char, len: ::size_t) -> ::size_t;
56205615
pub fn lio_listio(
56215616
mode: ::c_int,
56225617
aiocb_list: *const *mut aiocb,

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

+2-4
Original file line numberDiff line numberDiff line change
@@ -875,9 +875,8 @@ pub const TMP_MAX: ::c_uint = 238328;
875875
pub const FOPEN_MAX: ::c_uint = 16;
876876
pub const FILENAME_MAX: ::c_uint = 4096;
877877
pub const POSIX_MADV_DONTNEED: ::c_int = 4;
878-
pub const _CS_GNU_LIBC_VERSION: ::c_int = 2;
879-
pub const _CS_GNU_LIBPTHREAD_VERSION: ::c_int = 3;
880-
pub const _CS_PATH: ::c_int = 0;
878+
pub const _CS_V6_ENV: ::c_int = 1148;
879+
pub const _CS_V7_ENV: ::c_int = 1149;
881880
pub const _SC_EQUIV_CLASS_MAX: ::c_int = 41;
882881
pub const _SC_CHARCLASS_NAME_MAX: ::c_int = 45;
883882
pub const _SC_PII: ::c_int = 53;
@@ -1502,7 +1501,6 @@ extern "C" {
15021501
pub fn asctime_r(tm: *const ::tm, buf: *mut ::c_char) -> *mut ::c_char;
15031502
pub fn ctime_r(timep: *const time_t, buf: *mut ::c_char) -> *mut ::c_char;
15041503

1505-
pub fn confstr(name: ::c_int, buf: *mut ::c_char, len: ::size_t) -> ::size_t;
15061504
pub fn dirname(path: *mut ::c_char) -> *mut ::c_char;
15071505
/// POSIX version of `basename(3)`, defined in `libgen.h`.
15081506
#[link_name = "__xpg_basename"]

src/unix/linux_like/linux/mod.rs

+39
Original file line numberDiff line numberDiff line change
@@ -2008,6 +2008,45 @@ pub const _SC_XOPEN_STREAMS: ::c_int = 246;
20082008
pub const _SC_THREAD_ROBUST_PRIO_INHERIT: ::c_int = 247;
20092009
pub const _SC_THREAD_ROBUST_PRIO_PROTECT: ::c_int = 248;
20102010

2011+
pub const _CS_PATH: ::c_int = 0;
2012+
pub const _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS: ::c_int = 1;
2013+
pub const _CS_GNU_LIBC_VERSION: ::c_int = 2;
2014+
pub const _CS_GNU_LIBPTHREAD_VERSION: ::c_int = 3;
2015+
pub const _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS: ::c_int = 4;
2016+
pub const _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS: ::c_int = 5;
2017+
pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: ::c_int = 1116;
2018+
pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: ::c_int = 1117;
2019+
pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: ::c_int = 1118;
2020+
pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: ::c_int = 1119;
2021+
pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: ::c_int = 1120;
2022+
pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: ::c_int = 1121;
2023+
pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: ::c_int = 1122;
2024+
pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: ::c_int = 1123;
2025+
pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: ::c_int = 1124;
2026+
pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: ::c_int = 1125;
2027+
pub const _CS_POSIX_V6_LP64_OFF64_LIBS: ::c_int = 1126;
2028+
pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: ::c_int = 1127;
2029+
pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: ::c_int = 1128;
2030+
pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: ::c_int = 1129;
2031+
pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: ::c_int = 1130;
2032+
pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: ::c_int = 1131;
2033+
pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: ::c_int = 1132;
2034+
pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: ::c_int = 1133;
2035+
pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: ::c_int = 1134;
2036+
pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: ::c_int = 1135;
2037+
pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: ::c_int = 1136;
2038+
pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: ::c_int = 1137;
2039+
pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: ::c_int = 1138;
2040+
pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: ::c_int = 1139;
2041+
pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: ::c_int = 1140;
2042+
pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: ::c_int = 1141;
2043+
pub const _CS_POSIX_V7_LP64_OFF64_LIBS: ::c_int = 1142;
2044+
pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: ::c_int = 1143;
2045+
pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: ::c_int = 1144;
2046+
pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: ::c_int = 1145;
2047+
pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: ::c_int = 1146;
2048+
pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: ::c_int = 1147;
2049+
20112050
pub const RLIM_SAVED_MAX: ::rlim_t = RLIM_INFINITY;
20122051
pub const RLIM_SAVED_CUR: ::rlim_t = RLIM_INFINITY;
20132052

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

+3
Original file line numberDiff line numberDiff line change
@@ -895,6 +895,9 @@ pub const XSK_UNALIGNED_BUF_ADDR_MASK: ::c_ulonglong = (1 << XSK_UNALIGNED_BUF_O
895895

896896
pub const XDP_PKT_CONTD: ::__u32 = 1 << 0;
897897

898+
pub const _CS_V6_ENV: ::c_int = 1148;
899+
pub const _CS_V7_ENV: ::c_int = 1149;
900+
898901
cfg_if! {
899902
if #[cfg(target_arch = "s390x")] {
900903
pub const POSIX_FADV_DONTNEED: ::c_int = 6;

src/unix/mod.rs

+12
Original file line numberDiff line numberDiff line change
@@ -1443,6 +1443,18 @@ cfg_if! {
14431443
}
14441444
}
14451445

1446+
cfg_if! {
1447+
if #[cfg(not(target_os = "android"))] {
1448+
extern "C" {
1449+
#[cfg_attr(
1450+
all(target_os = "macos", target_arch = "x86"),
1451+
link_name = "confstr$UNIX2003"
1452+
)]
1453+
pub fn confstr(name: ::c_int, buf: *mut ::c_char, len: ::size_t) -> ::size_t;
1454+
}
1455+
}
1456+
}
1457+
14461458
cfg_if! {
14471459
if #[cfg(not(target_os = "aix"))] {
14481460
extern "C" {

0 commit comments

Comments
 (0)