Skip to content

Commit 8f3da76

Browse files
snoggetgross35
authored andcommitted
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 (backport <rust-lang#4433>) (cherry picked from commit 4c58e4b)
1 parent e9f0ad2 commit 8f3da76

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
@@ -1177,12 +1177,14 @@ extern "C" {
11771177
compar: Option<unsafe extern "C" fn(*const c_void, *const c_void, *mut c_void) -> c_int>,
11781178
arg: *mut c_void,
11791179
);
1180+
#[cfg_attr(gnu_time_bits64, link_name = "__sendmmsg64")]
11801181
pub fn sendmmsg(
11811182
sockfd: c_int,
11821183
msgvec: *mut crate::mmsghdr,
11831184
vlen: c_uint,
11841185
flags: c_int,
11851186
) -> c_int;
1187+
#[cfg_attr(gnu_time_bits64, link_name = "__recvmmsg64")]
11861188
pub fn recvmmsg(
11871189
sockfd: c_int,
11881190
msgvec: *mut crate::mmsghdr,
@@ -1221,15 +1223,20 @@ extern "C" {
12211223
pub fn endutxent();
12221224
pub fn getpt() -> c_int;
12231225
pub fn mallopt(param: c_int, value: c_int) -> c_int;
1226+
#[cfg_attr(gnu_time_bits64, link_name = "__gettimeofday64")]
12241227
pub fn gettimeofday(tp: *mut crate::timeval, tz: *mut crate::timezone) -> c_int;
12251228
pub fn getentropy(buf: *mut c_void, buflen: size_t) -> c_int;
12261229
pub fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t;
12271230
pub fn getauxval(type_: c_ulong) -> c_ulong;
12281231

1232+
#[cfg_attr(gnu_time_bits64, link_name = "___adjtimex64")]
12291233
pub fn adjtimex(buf: *mut timex) -> c_int;
1234+
#[cfg_attr(gnu_time_bits64, link_name = "___adjtimex64")]
12301235
pub fn ntp_adjtime(buf: *mut timex) -> c_int;
1231-
#[link_name = "ntp_gettimex"]
1236+
#[cfg_attr(not(gnu_time_bits64), link_name = "ntp_gettimex")]
1237+
#[cfg_attr(gnu_time_bits64, link_name = "__ntp_gettime64")]
12321238
pub fn ntp_gettime(buf: *mut ntptimeval) -> c_int;
1239+
#[cfg_attr(gnu_time_bits64, link_name = "__clock_adjtime64")]
12331240
pub fn clock_adjtime(clk_id: crate::clockid_t, buf: *mut crate::timex) -> c_int;
12341241

12351242
pub fn fanotify_mark(
@@ -1284,12 +1291,14 @@ extern "C" {
12841291

12851292
pub fn ctermid(s: *mut c_char) -> *mut c_char;
12861293
pub fn backtrace(buf: *mut *mut c_void, sz: c_int) -> c_int;
1294+
#[cfg_attr(gnu_time_bits64, link_name = "__glob64_time64")]
12871295
pub fn glob64(
12881296
pattern: *const c_char,
12891297
flags: c_int,
12901298
errfunc: Option<extern "C" fn(epath: *const c_char, errno: c_int) -> c_int>,
12911299
pglob: *mut glob64_t,
12921300
) -> c_int;
1301+
#[cfg_attr(gnu_time_bits64, link_name = "__globfree64_time64")]
12931302
pub fn globfree64(pglob: *mut glob64_t);
12941303
pub fn ptrace(request: c_uint, ...) -> c_long;
12951304
pub fn pthread_attr_getaffinity_np(
@@ -1357,6 +1366,7 @@ extern "C" {
13571366
pub fn eaccess(pathname: *const c_char, mode: c_int) -> c_int;
13581367

13591368
pub fn asctime_r(tm: *const crate::tm, buf: *mut c_char) -> *mut c_char;
1369+
#[cfg_attr(gnu_time_bits64, link_name = "__ctime64_r")]
13601370
pub fn ctime_r(timep: *const time_t, buf: *mut c_char) -> *mut c_char;
13611371

13621372
pub fn dirname(path: *mut c_char) -> *mut c_char;
@@ -1421,6 +1431,7 @@ extern "C" {
14211431

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

1434+
#[cfg_attr(gnu_time_bits64, link_name = "__epoll_pwait2_time64")]
14241435
pub fn epoll_pwait2(
14251436
epfd: c_int,
14261437
events: *mut crate::epoll_event,

src/unix/linux_like/linux/mod.rs

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6316,6 +6316,7 @@ cfg_if! {
63166316
pub fn aio_error(aiocbp: *const aiocb) -> c_int;
63176317
#[cfg_attr(gnu_file_offset_bits64, link_name = "aio_return64")]
63186318
pub fn aio_return(aiocbp: *mut aiocb) -> ssize_t;
6319+
#[cfg_attr(gnu_time_bits64, link_name = "__aio_suspend_time64")]
63196320
pub fn aio_suspend(
63206321
aiocb_list: *const *const aiocb,
63216322
nitems: c_int,
@@ -6377,6 +6378,7 @@ cfg_if! {
63776378
riovcnt: c_ulong,
63786379
flags: c_ulong,
63796380
) -> isize;
6381+
#[cfg_attr(gnu_time_bits64, link_name = "__futimes64")]
63806382
pub fn futimes(fd: c_int, times: *const crate::timeval) -> c_int;
63816383
}
63826384
}
@@ -6406,6 +6408,7 @@ cfg_if! {
64066408
msg_len: size_t,
64076409
msg_prio: *mut c_uint,
64086410
) -> ssize_t;
6411+
#[cfg_attr(gnu_time_bits64, link_name = "__mq_timedreceive_time64")]
64096412
pub fn mq_timedreceive(
64106413
mqd: crate::mqd_t,
64116414
msg_ptr: *mut c_char,
@@ -6419,6 +6422,7 @@ cfg_if! {
64196422
msg_len: size_t,
64206423
msg_prio: c_uint,
64216424
) -> c_int;
6425+
#[cfg_attr(gnu_time_bits64, link_name = "__mq_timedsend_time64")]
64226426
pub fn mq_timedsend(
64236427
mqd: crate::mqd_t,
64246428
msg_ptr: *const c_char,
@@ -6469,6 +6473,7 @@ extern "C" {
64696473
pub fn seed48(xseed: *mut c_ushort) -> *mut c_ushort;
64706474
pub fn lcong48(p: *mut c_ushort);
64716475

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

64746479
pub fn setpwent();
@@ -6490,11 +6495,14 @@ extern "C" {
64906495
pub fn shmget(key: crate::key_t, size: size_t, shmflg: c_int) -> c_int;
64916496
pub fn shmat(shmid: c_int, shmaddr: *const c_void, shmflg: c_int) -> *mut c_void;
64926497
pub fn shmdt(shmaddr: *const c_void) -> c_int;
6498+
#[cfg_attr(gnu_time_bits64, link_name = "__shmctl64")]
64936499
pub fn shmctl(shmid: c_int, cmd: c_int, buf: *mut crate::shmid_ds) -> c_int;
64946500
pub fn ftok(pathname: *const c_char, proj_id: c_int) -> crate::key_t;
64956501
pub fn semget(key: crate::key_t, nsems: c_int, semflag: c_int) -> c_int;
64966502
pub fn semop(semid: c_int, sops: *mut crate::sembuf, nsops: size_t) -> c_int;
6503+
#[cfg_attr(gnu_time_bits64, link_name = "__semctl64")]
64976504
pub fn semctl(semid: c_int, semnum: c_int, cmd: c_int, ...) -> c_int;
6505+
#[cfg_attr(gnu_time_bits64, link_name = "__msgctl64")]
64986506
pub fn msgctl(msqid: c_int, cmd: c_int, buf: *mut msqid_ds) -> c_int;
64996507
pub fn msgget(key: crate::key_t, msgflg: c_int) -> c_int;
65006508
pub fn msgrcv(
@@ -6561,7 +6569,9 @@ extern "C" {
65616569
pub fn fremovexattr(filedes: c_int, name: *const c_char) -> c_int;
65626570
pub fn signalfd(fd: c_int, mask: *const crate::sigset_t, flags: c_int) -> c_int;
65636571
pub fn timerfd_create(clockid: crate::clockid_t, flags: c_int) -> c_int;
6572+
#[cfg_attr(gnu_time_bits64, link_name = "__timerfd_gettime64")]
65646573
pub fn timerfd_gettime(fd: c_int, curr_value: *mut itimerspec) -> c_int;
6574+
#[cfg_attr(gnu_time_bits64, link_name = "__timerfd_settime64")]
65656575
pub fn timerfd_settime(
65666576
fd: c_int,
65676577
flags: c_int,
@@ -6577,6 +6587,7 @@ extern "C" {
65776587
sigmask: *const crate::sigset_t,
65786588
) -> c_int;
65796589
pub fn dup3(oldfd: c_int, newfd: c_int, flags: c_int) -> c_int;
6590+
#[cfg_attr(gnu_time_bits64, link_name = "__sigtimedwait64")]
65806591
pub fn sigtimedwait(
65816592
set: *const sigset_t,
65826593
info: *mut siginfo_t,
@@ -6618,14 +6629,22 @@ extern "C" {
66186629
...
66196630
) -> *mut c_void;
66206631

6621-
#[cfg_attr(gnu_file_offset_bits64, link_name = "glob64")]
6632+
#[cfg_attr(gnu_time_bits64, link_name = "__glob64_time64")]
6633+
#[cfg_attr(
6634+
all(not(gnu_time_bits64), gnu_file_offset_bits64),
6635+
link_name = "glob64"
6636+
)]
66226637
pub fn glob(
66236638
pattern: *const c_char,
66246639
flags: c_int,
66256640
errfunc: Option<extern "C" fn(epath: *const c_char, errno: c_int) -> c_int>,
66266641
pglob: *mut crate::glob_t,
66276642
) -> c_int;
6628-
#[cfg_attr(gnu_file_offset_bits64, link_name = "globfree64")]
6643+
#[cfg_attr(gnu_time_bits64, link_name = "__globfree64_time64")]
6644+
#[cfg_attr(
6645+
all(not(gnu_time_bits64), gnu_file_offset_bits64),
6646+
link_name = "globfree64"
6647+
)]
66296648
pub fn globfree(pglob: *mut crate::glob_t);
66306649

66316650
pub fn posix_madvise(addr: *mut c_void, len: size_t, advice: c_int) -> c_int;
@@ -6688,6 +6707,7 @@ extern "C" {
66886707
pub fn umount(target: *const c_char) -> c_int;
66896708
pub fn sched_get_priority_max(policy: c_int) -> c_int;
66906709
pub fn tee(fd_in: c_int, fd_out: c_int, len: size_t, flags: c_uint) -> ssize_t;
6710+
#[cfg_attr(gnu_time_bits64, link_name = "__settimeofday64")]
66916711
pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int;
66926712
pub fn splice(
66936713
fd_in: c_int,
@@ -6701,7 +6721,9 @@ extern "C" {
67016721
pub fn eventfd_read(fd: c_int, value: *mut eventfd_t) -> c_int;
67026722
pub fn eventfd_write(fd: c_int, value: eventfd_t) -> c_int;
67036723

6724+
#[cfg_attr(gnu_time_bits64, link_name = "__sched_rr_get_interval64")]
67046725
pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int;
6726+
#[cfg_attr(gnu_time_bits64, link_name = "__sem_timedwait64")]
67056727
pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int;
67066728
pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int;
67076729
pub fn sched_setparam(pid: crate::pid_t, param: *const crate::sched_param) -> c_int;
@@ -6717,8 +6739,10 @@ extern "C" {
67176739
data: *const c_void,
67186740
) -> c_int;
67196741
pub fn personality(persona: c_ulong) -> c_int;
6742+
#[cfg_attr(gnu_time_bits64, link_name = "__prctl_time64")]
67206743
pub fn prctl(option: c_int, ...) -> c_int;
67216744
pub fn sched_getparam(pid: crate::pid_t, param: *mut crate::sched_param) -> c_int;
6745+
#[cfg_attr(gnu_time_bits64, link_name = "__ppoll64")]
67226746
pub fn ppoll(
67236747
fds: *mut crate::pollfd,
67246748
nfds: nfds_t,
@@ -6731,6 +6755,7 @@ extern "C" {
67316755
) -> c_int;
67326756
pub fn pthread_mutexattr_setprotocol(attr: *mut pthread_mutexattr_t, protocol: c_int) -> c_int;
67336757

6758+
#[cfg_attr(gnu_time_bits64, link_name = "__pthread_mutex_timedlock64")]
67346759
pub fn pthread_mutex_timedlock(
67356760
lock: *mut pthread_mutex_t,
67366761
abstime: *const crate::timespec,
@@ -6765,6 +6790,7 @@ extern "C" {
67656790
...
67666791
) -> c_int;
67676792
pub fn sched_getscheduler(pid: crate::pid_t) -> c_int;
6793+
#[cfg_attr(gnu_time_bits64, link_name = "__clock_nanosleep_time64")]
67686794
pub fn clock_nanosleep(
67696795
clk_id: crate::clockid_t,
67706796
flags: c_int,
@@ -7022,7 +7048,9 @@ extern "C" {
70227048
) -> c_int;
70237049
pub fn timer_delete(timerid: crate::timer_t) -> c_int;
70247050
pub fn timer_getoverrun(timerid: crate::timer_t) -> c_int;
7051+
#[cfg_attr(gnu_time_bits64, link_name = "__timer_gettime64")]
70257052
pub fn timer_gettime(timerid: crate::timer_t, curr_value: *mut crate::itimerspec) -> c_int;
7053+
#[cfg_attr(gnu_time_bits64, link_name = "__timer_settime64")]
70267054
pub fn timer_settime(
70277055
timerid: crate::timer_t,
70287056
flags: c_int,

src/unix/linux_like/mod.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1826,6 +1826,7 @@ cfg_if! {
18261826
}
18271827

18281828
extern "C" {
1829+
#[cfg_attr(gnu_time_bits64, link_name = "__ioctl_time64")]
18291830
pub fn ioctl(fd: c_int, request: Ioctl, ...) -> c_int;
18301831
}
18311832
}
@@ -1971,8 +1972,11 @@ extern "C" {
19711972
pub fn fdatasync(fd: c_int) -> c_int;
19721973
pub fn mincore(addr: *mut c_void, len: size_t, vec: *mut c_uchar) -> c_int;
19731974

1975+
#[cfg_attr(gnu_time_bits64, link_name = "__clock_getres64")]
19741976
pub fn clock_getres(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int;
1977+
#[cfg_attr(gnu_time_bits64, link_name = "__clock_gettime64")]
19751978
pub fn clock_gettime(clk_id: crate::clockid_t, tp: *mut crate::timespec) -> c_int;
1979+
#[cfg_attr(gnu_time_bits64, link_name = "__clock_settime64")]
19761980
pub fn clock_settime(clk_id: crate::clockid_t, tp: *const crate::timespec) -> c_int;
19771981
pub fn clock_getcpuclockid(pid: crate::pid_t, clk_id: *mut crate::clockid_t) -> c_int;
19781982

@@ -1999,7 +2003,9 @@ extern "C" {
19992003
pub fn memrchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void;
20002004
#[cfg_attr(gnu_file_offset_bits64, link_name = "posix_fadvise64")]
20012005
pub fn posix_fadvise(fd: c_int, offset: off_t, len: off_t, advise: c_int) -> c_int;
2006+
#[cfg_attr(gnu_time_bits64, link_name = "__futimens64")]
20022007
pub fn futimens(fd: c_int, times: *const crate::timespec) -> c_int;
2008+
#[cfg_attr(gnu_time_bits64, link_name = "__utimensat64")]
20032009
pub fn utimensat(
20042010
dirfd: c_int,
20052011
path: *const c_char,
@@ -2054,6 +2060,7 @@ extern "C" {
20542060
pub fn vfork() -> crate::pid_t;
20552061
pub fn setresgid(rgid: crate::gid_t, egid: crate::gid_t, sgid: crate::gid_t) -> c_int;
20562062
pub fn setresuid(ruid: crate::uid_t, euid: crate::uid_t, suid: crate::uid_t) -> c_int;
2063+
#[cfg_attr(gnu_time_bits64, link_name = "__wait4_time64")]
20572064
pub fn wait4(
20582065
pid: crate::pid_t,
20592066
status: *mut c_int,
@@ -2081,7 +2088,9 @@ extern "C" {
20812088
pub fn writev(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t;
20822089
pub fn readv(fd: c_int, iov: *const crate::iovec, iovcnt: c_int) -> ssize_t;
20832090

2091+
#[cfg_attr(gnu_time_bits64, link_name = "__sendmsg64")]
20842092
pub fn sendmsg(fd: c_int, msg: *const crate::msghdr, flags: c_int) -> ssize_t;
2093+
#[cfg_attr(gnu_time_bits64, link_name = "__recvmsg64")]
20852094
pub fn recvmsg(fd: c_int, msg: *mut crate::msghdr, flags: c_int) -> ssize_t;
20862095
pub fn uname(buf: *mut crate::utsname) -> c_int;
20872096

@@ -2123,7 +2132,9 @@ cfg_if! {
21232132
pub fn fstatvfs64(fd: c_int, buf: *mut statvfs64) -> c_int;
21242133
pub fn statfs64(path: *const c_char, buf: *mut statfs64) -> c_int;
21252134
pub fn creat64(path: *const c_char, mode: mode_t) -> c_int;
2135+
#[cfg_attr(gnu_time_bits64, link_name = "__fstat64_time64")]
21262136
pub fn fstat64(fildes: c_int, buf: *mut stat64) -> c_int;
2137+
#[cfg_attr(gnu_time_bits64, link_name = "__fstatat64_time64")]
21272138
pub fn fstatat64(
21282139
dirfd: c_int,
21292140
pathname: *const c_char,
@@ -2132,6 +2143,7 @@ cfg_if! {
21322143
) -> c_int;
21332144
pub fn ftruncate64(fd: c_int, length: off64_t) -> c_int;
21342145
pub fn lseek64(fd: c_int, offset: off64_t, whence: c_int) -> off64_t;
2146+
#[cfg_attr(gnu_time_bits64, link_name = "__lstat64_time64")]
21352147
pub fn lstat64(path: *const c_char, buf: *mut stat64) -> c_int;
21362148
pub fn mmap64(
21372149
addr: *mut c_void,
@@ -2162,6 +2174,7 @@ cfg_if! {
21622174
entry: *mut crate::dirent64,
21632175
result: *mut *mut crate::dirent64,
21642176
) -> c_int;
2177+
#[cfg_attr(gnu_time_bits64, link_name = "__stat64_time64")]
21652178
pub fn stat64(path: *const c_char, buf: *mut stat64) -> c_int;
21662179
pub fn truncate64(path: *const c_char, length: off64_t) -> c_int;
21672180
}

0 commit comments

Comments
 (0)