Skip to content

Commit eb0ce7d

Browse files
committed
gnu: Use _TIME_BITS=64 versions of glibc symbols
Set the link names of relevant symbols to use be the same as when a C program is built against GNU libc with -D_TIME_BITS=64 -- which also requires -D_FILE_OFFSET_BITS=64. References: https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/io/fcntl.h fcntl on line 190 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/io/sys/poll.h ppoll on line 71 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/io/sys/stat.h difftime on line 86 fstat on line 218 fstat64 on line 249 fstatat on line 270 fstatat64 on line 296 futimens on line 456 gmtime on line 140 gmtime_r on line 163 localtime on line 141 localtime_r on line 167 lstat on line 318 lstat64 on line 318 mktime on line 88 stat on line 214 stat64 on line 214 time on line 85 timegm on line 249 utimensat on line 439 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/io/utime.h utime on line 56 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/misc/sys/ioctl.h ioctl on line 45 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/misc/sys/select.h pselect on line 134 select on line 108 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/posix/glob.h glob on line 154 glob64 on line 174 globfree on line 160 globfree64 on line 180 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/posix/sched.h sched_rr_get_interval on line 81 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/posix/sys/wait.h wait4 on line 163 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/resource/sys/resource.h getrusage on line 93 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/rt/aio.h aio_suspend on line 197 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/rt/mqueue.h mq_timedreceive on line 91 mq_timedsend on line 99 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/signal/signal.h sigtimedwait on line 279 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/socket/sys/socket.h getsockopt on line 260 recvmmsg on line 219 recvmsg on line 219 sendmmsg on line 199 sendmsg on line 178 setsockopt on line 281 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/nptl/pthread.h pthread_cond_timedwait on line 1151 pthread_mutex_timedlock on line 805 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/pthread/semaphore.h sem_timedwait on line 68 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/bits/time.h clock_adjtime on line 82 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sys/epoll.h epoll_pwait2 on line 146 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sys/prctl.h prctl on line 45 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sys/timerfd.h timerfd_gettime on line 67 timerfd_settime on line 52 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysdeps/unix/sysv/linux/sys/timex.h adjtimex on line 70 ntp_adjtime on line 76 ntp_gettime on line 72 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysvipc/sys/msg.h msgctl on line 65 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysvipc/sys/sem.h semctl on line 55 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/sysvipc/sys/shm.h shmctl on line 53 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/time/sys/time.h adjtime on line 102 futimes on line 200 gettimeofday on line 71 lutimes on line 196 settimeofday on line 98 utimes on line 176 https://github.com/bminor/glibc/blob/e78caeb4ff812ae19d24d65f4d4d48508154277b/time/time.h clock_getres on line 299 clock_gettime on line 302 clock_nanosleep on line 328 clock_settime on line 305 ctime_r on line 206 nanosleep on line 328 timer_gettime on line 366 timer_settime on line 361
1 parent de7076e commit eb0ce7d

File tree

4 files changed

+98
-8
lines changed

4 files changed

+98
-8
lines changed

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

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1216,12 +1216,14 @@ extern "C" {
12161216
compar: Option<unsafe extern "C" fn(*const c_void, *const c_void, *mut c_void) -> c_int>,
12171217
arg: *mut c_void,
12181218
);
1219+
#[cfg_attr(gnu_time_bits64, link_name = "__sendmmsg64")]
12191220
pub fn sendmmsg(
12201221
sockfd: c_int,
12211222
msgvec: *mut crate::mmsghdr,
12221223
vlen: c_uint,
12231224
flags: c_int,
12241225
) -> c_int;
1226+
#[cfg_attr(gnu_time_bits64, link_name = "__recvmmsg64")]
12251227
pub fn recvmmsg(
12261228
sockfd: c_int,
12271229
msgvec: *mut crate::mmsghdr,
@@ -1260,15 +1262,20 @@ extern "C" {
12601262
pub fn endutxent();
12611263
pub fn getpt() -> c_int;
12621264
pub fn mallopt(param: c_int, value: c_int) -> c_int;
1265+
#[cfg_attr(gnu_time_bits64, link_name = "__gettimeofday64")]
12631266
pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut crate::timezone) -> c_int;
12641267
pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int;
12651268
pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t;
12661269
pub fn getauxval(type_: c_ulong) -> c_ulong;
12671270

1271+
#[cfg_attr(gnu_time_bits64, link_name = "___adjtimex64")]
12681272
pub fn adjtimex(buf: *mut timex) -> c_int;
1273+
#[cfg_attr(gnu_time_bits64, link_name = "___adjtimex64")]
12691274
pub fn ntp_adjtime(buf: *mut timex) -> c_int;
1270-
#[link_name = "ntp_gettimex"]
1275+
#[cfg_attr(not(gnu_time_bits64), link_name = "ntp_gettimex")]
1276+
#[cfg_attr(gnu_time_bits64, link_name = "__ntp_gettime64")]
12711277
pub fn ntp_gettime(buf: *mut ntptimeval) -> c_int;
1278+
#[cfg_attr(gnu_time_bits64, link_name = "__clock_adjtime64")]
12721279
pub fn clock_adjtime(clk_id: crate::clockid_t, buf: *mut crate::timex) -> c_int;
12731280

12741281
pub fn fanotify_mark(
@@ -1323,12 +1330,14 @@ extern "C" {
13231330

13241331
pub fn ctermid(s: *mut c_char) -> *mut c_char;
13251332
pub fn backtrace(buf: *mut *mut c_void, sz: c_int) -> c_int;
1333+
#[cfg_attr(gnu_time_bits64, link_name = "__glob64_time64")]
13261334
pub fn glob64(
13271335
pattern: *const c_char,
13281336
flags: c_int,
13291337
errfunc: Option<extern "C" fn(epath: *const c_char, errno: c_int) -> c_int>,
13301338
pglob: *mut glob64_t,
13311339
) -> c_int;
1340+
#[cfg_attr(gnu_time_bits64, link_name = "__globfree64_time64")]
13321341
pub fn globfree64(pglob: *mut glob64_t);
13331342
pub fn ptrace(request: c_uint, ...) -> c_long;
13341343
pub fn pthread_attr_getaffinity_np(
@@ -1396,6 +1405,7 @@ extern "C" {
13961405
pub fn eaccess(pathname: *const c_char, mode: c_int) -> c_int;
13971406

13981407
pub fn asctime_r(tm: *const crate::tm, buf: *mut c_char) -> *mut c_char;
1408+
#[cfg_attr(gnu_time_bits64, link_name = "__ctime64_r")]
13991409
pub fn ctime_r(timep: *const time_t, buf: *mut c_char) -> *mut c_char;
14001410

14011411
pub fn dirname(path: *mut c_char) -> *mut c_char;
@@ -1460,6 +1470,7 @@ extern "C" {
14601470

14611471
pub fn mq_notify(mqdes: crate::mqd_t, sevp: *const crate::sigevent) -> c_int;
14621472

1473+
#[cfg_attr(gnu_time_bits64, link_name = "__epoll_pwait2_time64")]
14631474
pub fn epoll_pwait2(
14641475
epfd: c_int,
14651476
events: *mut crate::epoll_event,

src/unix/linux_like/linux/mod.rs

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6265,6 +6265,7 @@ cfg_if! {
62656265
pub fn aio_error(aiocbp: *const aiocb) -> c_int;
62666266
#[cfg_attr(gnu_file_offset_bits64, link_name = "aio_return64")]
62676267
pub fn aio_return(aiocbp: *mut aiocb) -> ssize_t;
6268+
#[cfg_attr(gnu_time_bits64, link_name = "__aio_suspend_time64")]
62686269
pub fn aio_suspend(
62696270
aiocb_list: *const *const aiocb,
62706271
nitems: c_int,
@@ -6326,6 +6327,7 @@ cfg_if! {
63266327
riovcnt: c_ulong,
63276328
flags: c_ulong,
63286329
) -> isize;
6330+
#[cfg_attr(gnu_time_bits64, link_name = "__futimes64")]
63296331
pub fn futimes(fd: c_int, times: *const crate::timeval) -> c_int;
63306332
}
63316333
}
@@ -6355,6 +6357,7 @@ cfg_if! {
63556357
msg_len: size_t,
63566358
msg_prio: *mut c_uint,
63576359
) -> ssize_t;
6360+
#[cfg_attr(gnu_time_bits64, link_name = "__mq_timedreceive_time64")]
63586361
pub fn mq_timedreceive(
63596362
mqd: crate::mqd_t,
63606363
msg_ptr: *mut c_char,
@@ -6368,6 +6371,7 @@ cfg_if! {
63686371
msg_len: size_t,
63696372
msg_prio: c_uint,
63706373
) -> c_int;
6374+
#[cfg_attr(gnu_time_bits64, link_name = "__mq_timedsend_time64")]
63716375
pub fn mq_timedsend(
63726376
mqd: crate::mqd_t,
63736377
msg_ptr: *const c_char,
@@ -6418,6 +6422,7 @@ extern "C" {
64186422
pub fn seed48(xseed: *mut c_ushort) -> *mut c_ushort;
64196423
pub fn lcong48(p: *mut c_ushort);
64206424

6425+
#[cfg_attr(gnu_time_bits64, link_name = "__lutimes64")]
64216426
pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int;
64226427

64236428
pub fn setpwent();
@@ -6439,11 +6444,14 @@ extern "C" {
64396444
pub fn shmget(key: crate::key_t, size: size_t, shmflg: c_int) -> c_int;
64406445
pub fn shmat(shmid: c_int, shmaddr: *const c_void, shmflg: c_int) -> *mut c_void;
64416446
pub fn shmdt(shmaddr: *const c_void) -> c_int;
6447+
#[cfg_attr(gnu_time_bits64, link_name = "__shmctl64")]
64426448
pub fn shmctl(shmid: c_int, cmd: c_int, buf: *mut crate::shmid_ds) -> c_int;
64436449
pub fn ftok(pathname: *const c_char, proj_id: c_int) -> crate::key_t;
64446450
pub fn semget(key: crate::key_t, nsems: c_int, semflag: c_int) -> c_int;
64456451
pub fn semop(semid: c_int, sops: *mut crate::sembuf, nsops: size_t) -> c_int;
6452+
#[cfg_attr(gnu_time_bits64, link_name = "__semctl64")]
64466453
pub fn semctl(semid: c_int, semnum: c_int, cmd: c_int, ...) -> c_int;
6454+
#[cfg_attr(gnu_time_bits64, link_name = "__msgctl64")]
64476455
pub fn msgctl(msqid: c_int, cmd: c_int, buf: *mut msqid_ds) -> c_int;
64486456
pub fn msgget(key: crate::key_t, msgflg: c_int) -> c_int;
64496457
pub fn msgrcv(
@@ -6510,7 +6518,9 @@ extern "C" {
65106518
pub fn fremovexattr(filedes: c_int, name: *const c_char) -> c_int;
65116519
pub fn signalfd(fd: c_int, mask: *const crate::sigset_t, flags: c_int) -> c_int;
65126520
pub fn timerfd_create(clockid: crate::clockid_t, flags: c_int) -> c_int;
6521+
#[cfg_attr(gnu_time_bits64, link_name = "__timerfd_gettime64")]
65136522
pub fn timerfd_gettime(fd: c_int, curr_value: *mut itimerspec) -> c_int;
6523+
#[cfg_attr(gnu_time_bits64, link_name = "__timerfd_settime64")]
65146524
pub fn timerfd_settime(
65156525
fd: c_int,
65166526
flags: c_int,
@@ -6526,6 +6536,7 @@ extern "C" {
65266536
sigmask: *const crate::sigset_t,
65276537
) -> c_int;
65286538
pub fn dup3(oldfd: c_int, newfd: c_int, flags: c_int) -> c_int;
6539+
#[cfg_attr(gnu_time_bits64, link_name = "__sigtimedwait64")]
65296540
pub fn sigtimedwait(
65306541
set: *const sigset_t,
65316542
info: *mut siginfo_t,
@@ -6567,14 +6578,22 @@ extern "C" {
65676578
...
65686579
) -> *mut c_void;
65696580

6570-
#[cfg_attr(gnu_file_offset_bits64, link_name = "glob64")]
6581+
#[cfg_attr(gnu_time_bits64, link_name = "__glob64_time64")]
6582+
#[cfg_attr(
6583+
all(not(gnu_time_bits64), gnu_file_offset_bits64),
6584+
link_name = "glob64"
6585+
)]
65716586
pub fn glob(
65726587
pattern: *const c_char,
65736588
flags: c_int,
65746589
errfunc: Option<extern "C" fn(epath: *const c_char, errno: c_int) -> c_int>,
65756590
pglob: *mut crate::glob_t,
65766591
) -> c_int;
6577-
#[cfg_attr(gnu_file_offset_bits64, link_name = "globfree64")]
6592+
#[cfg_attr(gnu_time_bits64, link_name = "__globfree64_time64")]
6593+
#[cfg_attr(
6594+
all(not(gnu_time_bits64), gnu_file_offset_bits64),
6595+
link_name = "globfree64"
6596+
)]
65786597
pub fn globfree(pglob: *mut crate::glob_t);
65796598

65806599
pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int;
@@ -6637,6 +6656,7 @@ extern "C" {
66376656
pub fn umount(target: *const c_char) -> c_int;
66386657
pub fn sched_get_priority_max(policy: c_int) -> c_int;
66396658
pub fn tee(fd_in: c_int, fd_out: c_int, len: size_t, flags: c_uint) -> ssize_t;
6659+
#[cfg_attr(gnu_time_bits64, link_name = "__settimeofday64")]
66406660
pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int;
66416661
pub fn splice(
66426662
fd_in: c_int,
@@ -6650,7 +6670,9 @@ extern "C" {
66506670
pub fn eventfd_read(fd: c_int, value: *mut eventfd_t) -> c_int;
66516671
pub fn eventfd_write(fd: c_int, value: eventfd_t) -> c_int;
66526672

6673+
#[cfg_attr(gnu_time_bits64, link_name = "__sched_rr_get_interval64")]
66536674
pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int;
6675+
#[cfg_attr(gnu_time_bits64, link_name = "__sem_timedwait64")]
66546676
pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int;
66556677
pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int;
66566678
pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int;
@@ -6666,8 +6688,10 @@ extern "C" {
66666688
data: *const c_void,
66676689
) -> c_int;
66686690
pub fn personality(persona: c_ulong) -> c_int;
6691+
#[cfg_attr(gnu_time_bits64, link_name = "__prctl_time64")]
66696692
pub fn prctl(option: c_int, ...) -> c_int;
66706693
pub fn sched_getparam(pid: crate::pid_t, param: *mut crate::sched_param) -> c_int;
6694+
#[cfg_attr(gnu_time_bits64, link_name = "__ppoll64")]
66716695
pub fn ppoll(
66726696
fds: *mut crate::pollfd,
66736697
nfds: nfds_t,
@@ -6680,6 +6704,7 @@ extern "C" {
66806704
) -> c_int;
66816705
pub fn pthread_mutexattr_setprotocol(attr: *mut pthread_mutexattr_t, protocol: c_int) -> c_int;
66826706

6707+
#[cfg_attr(gnu_time_bits64, link_name = "__pthread_mutex_timedlock64")]
66836708
pub fn pthread_mutex_timedlock(
66846709
lock: *mut pthread_mutex_t,
66856710
abstime: *const crate::timespec,
@@ -6714,6 +6739,7 @@ extern "C" {
67146739
...
67156740
) -> c_int;
67166741
pub fn sched_getscheduler(pid: crate::pid_t) -> c_int;
6742+
#[cfg_attr(gnu_time_bits64, link_name = "__clock_nanosleep_time64")]
67176743
pub fn clock_nanosleep(
67186744
clk_id: crate::clockid_t,
67196745
flags: c_int,
@@ -6971,7 +6997,9 @@ extern "C" {
69716997
) -> c_int;
69726998
pub fn timer_delete(timerid: crate::timer_t) -> c_int;
69736999
pub fn timer_getoverrun(timerid: crate::timer_t) -> c_int;
7000+
#[cfg_attr(gnu_time_bits64, link_name = "__timer_gettime64")]
69747001
pub fn timer_gettime(timerid: crate::timer_t, curr_value: *mut crate::itimerspec) -> c_int;
7002+
#[cfg_attr(gnu_time_bits64, link_name = "__timer_settime64")]
69757003
pub fn timer_settime(
69767004
timerid: crate::timer_t,
69777005
flags: c_int,
@@ -7013,6 +7041,7 @@ extern "C" {
70137041

70147042
pub fn klogctl(syslog_type: c_int, bufp: *mut c_char, len: c_int) -> c_int;
70157043

7044+
#[cfg_attr(gnu_time_bits64, link_name = "__ioctl_time64")]
70167045
pub fn ioctl(fd: c_int, request: Ioctl, ...) -> c_int;
70177046
}
70187047

src/unix/linux_like/mod.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1837,8 +1837,11 @@ extern "C" {
18371837
pub fn fdatasync(fd: c_int) -> c_int;
18381838
pub fn mincore(addr: *mut c_void, len: size_t, vec: *mut c_uchar) -> c_int;
18391839

1840+
#[cfg_attr(gnu_time_bits64, link_name = "__clock_getres64")]
18401841
pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int;
1842+
#[cfg_attr(gnu_time_bits64, link_name = "__clock_gettime64")]
18411843
pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int;
1844+
#[cfg_attr(gnu_time_bits64, link_name = "__clock_settime64")]
18421845
pub fn clock_settime(clk_id: crate::clockid_t, tp: *const crate::timespec) -> c_int;
18431846
pub fn clock_getcpuclockid(pid: crate::pid_t, clk_id: *mut crate::clockid_t) -> c_int;
18441847

@@ -1865,7 +1868,9 @@ extern "C" {
18651868
pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void;
18661869
#[cfg_attr(gnu_file_offset_bits64, link_name = "posix_fadvise64")]
18671870
pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int;
1871+
#[cfg_attr(gnu_time_bits64, link_name = "__futimens64")]
18681872
pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int;
1873+
#[cfg_attr(gnu_time_bits64, link_name = "__utimensat64")]
18691874
pub fn utimensat(
18701875
dirfd: c_int,
18711876
path: *const c_char,
@@ -1915,6 +1920,7 @@ extern "C" {
19151920
pub fn sbrk(increment: intptr_t) -> *mut c_void;
19161921
pub fn setresgid(rgid: crate::gid_t, egid: crate::gid_t, sgid: crate::gid_t) -> c_int;
19171922
pub fn setresuid(ruid: crate::uid_t, euid: crate::uid_t, suid: crate::uid_t) -> c_int;
1923+
#[cfg_attr(gnu_time_bits64, link_name = "__wait4_time64")]
19181924
pub fn wait4(
19191925
pid: crate::pid_t,
19201926
status: *mut c_int,
@@ -1939,7 +1945,9 @@ extern "C" {
19391945
pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t;
19401946
pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t;
19411947

1948+
#[cfg_attr(gnu_time_bits64, link_name = "__sendmsg64")]
19421949
pub fn sendmsg(fd: c_int, msg: *const crate::msghdr, flags: c_int) -> ssize_t;
1950+
#[cfg_attr(gnu_time_bits64, link_name = "__recvmsg64")]
19431951
pub fn recvmsg(fd: c_int, msg: *mut crate::msghdr, flags: c_int) -> ssize_t;
19441952
pub fn uname(buf: *mut crate::utsname) -> c_int;
19451953

@@ -1981,7 +1989,9 @@ cfg_if! {
19811989
pub fn fstatvfs64(fd: c_int, buf: *mut statvfs64) -> c_int;
19821990
pub fn statfs64(path: *const c_char, buf: *mut statfs64) -> c_int;
19831991
pub fn creat64(path: *const c_char, mode: mode_t) -> c_int;
1992+
#[cfg_attr(gnu_time_bits64, link_name = "__fstat64_time64")]
19841993
pub fn fstat64(fildes: c_int, buf: *mut stat64) -> c_int;
1994+
#[cfg_attr(gnu_time_bits64, link_name = "__fstatat64_time64")]
19851995
pub fn fstatat64(
19861996
dirfd: c_int,
19871997
pathname: *const c_char,
@@ -1990,6 +2000,7 @@ cfg_if! {
19902000
) -> c_int;
19912001
pub fn ftruncate64(fd: c_int, length: off64_t) -> c_int;
19922002
pub fn lseek64(fd: c_int, offset: off64_t, whence: c_int) -> off64_t;
2003+
#[cfg_attr(gnu_time_bits64, link_name = "__lstat64_time64")]
19932004
pub fn lstat64(path: *const c_char, buf: *mut stat64) -> c_int;
19942005
pub fn mmap64(
19952006
addr: *mut c_void,
@@ -2020,6 +2031,7 @@ cfg_if! {
20202031
entry: *mut crate::dirent64,
20212032
result: *mut *mut crate::dirent64,
20222033
) -> c_int;
2034+
#[cfg_attr(gnu_time_bits64, link_name = "__stat64_time64")]
20232035
pub fn stat64(path: *const c_char, buf: *mut stat64) -> c_int;
20242036
pub fn truncate64(path: *const c_char, length: off64_t) -> c_int;
20252037
}

0 commit comments

Comments
 (0)