[38/52] y2038: Add support for 64 bit time on legacy ABIs
Commit Message
A new build flag, _TIME_BITS, enables the usage of the newer 64 bit
time symbols for legacy ABI (where 32 bit time_t is default). The 64
bit time support is only enabled if LFS (_FILE_OFFSET_BITS=64) is
also used.
Different than LFS support, the y2038 symbols are added only for the
required ABIs (armhf, csky, hppa, i386, m68k, microblaze, mips32,
mips64-n32, nios2, powerpc32, sparc32, s390-32, and sh). The ABIs with
64 bit time support are unchanged, both for symbol and types
redirection.
On Linux the full 64 bit time support requires a minimum of kernel
version v5.1. Otherwise, the 32 bit fallbacks are used and might
results in error with overflow return code (EOVERFLOW).
The i686-gnu does not yet support 64 bit time.
This patch exports following rediretions to support 64 bit time:
* libc:
- adjtimex
- adjtime
- clock_adjtime
- clock_getres
- clock_gettime
- clock_nanosleep
- clock_settime
- ctime
- ctime_r
- difftime
- futimens
- futimes
- futimesat
- getitimer
- getrusage
- gettimeofday
- gmtime
- gmtime_r
- localtime
- localtime_r
- lutimes
- mktime
- msgctl
- nanosleep
- ntp_gettime
- ntp_gettimex
- ppoll
- pselect
- recvmmsg
- sched_rr_get_interval
- select
- semctl
- semtimedop
- setitimer
- settimeofday
- shmctl
- sigtimedwait
- thrd_sleep
- time
- timegm
- timelocal (alias to mktime)
- timerfd_gettime
- timerfd_settime
- timespec_get
- utime
- utimensat
- utimes
- wait3
- wait4
* libpthread:
- mtx_timedlock
- pthread_clockjoin_np
- pthread_cond_clockwait
- pthread_cond_timedwait
- pthread_mutex_clocklock
- pthread_mutex_timedlock
- pthread_rwlock_clockrdlock
- pthread_rwlock_clockwrlock
- pthread_rwlock_timedrdlock
- pthread_rwlock_timedwrlock
- pthread_timedjoin_np
- sem_clockwait
- sem_timedwait
* librt:
- aio_suspend
- mq_timedreceive
- mq_timedsend
- timer_gettime
- timer_settime
* libanl:
- gai_suspend
---
Makefile | 2 +-
NEWS | 5 +
include/features-time64.h | 1 +
include/features.h | 2 +
io/sys/poll.h | 11 ++
io/sys/stat.h | 113 ++++++++++++++--
io/utime.h | 11 ++
manual/creature.texi | 44 ++++++
misc/sys/select.h | 27 ++++
posix/sched.h | 11 +-
posix/sys/wait.h | 20 +++
resolv/netdb.h | 11 ++
resource/sys/resource.h | 10 ++
rt/aio.h | 15 +-
rt/mqueue.h | 22 +++
signal/signal.h | 13 ++
socket/sys/socket.h | 11 ++
sysdeps/generic/features-time64.h | 19 +++
sysdeps/generic/time64-compat.h | 3 +
sysdeps/nptl/pthread.h | 119 ++++++++++++++++
sysdeps/pthread/semaphore.h | 25 ++++
sysdeps/pthread/threads.h | 33 +++++
sysdeps/unix/sysv/linux/Versions | 113 ++++++++++++++++
sysdeps/unix/sysv/linux/arm/be/libanl.abilist | 1 +
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 52 +++++++
.../unix/sysv/linux/arm/be/libpthread.abilist | 14 ++
sysdeps/unix/sysv/linux/arm/be/librt.abilist | 5 +
sysdeps/unix/sysv/linux/arm/le/libanl.abilist | 1 +
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 52 +++++++
.../unix/sysv/linux/arm/le/libpthread.abilist | 14 ++
sysdeps/unix/sysv/linux/arm/le/librt.abilist | 5 +
sysdeps/unix/sysv/linux/arm/time64-compat.h | 2 +
sysdeps/unix/sysv/linux/bits/msq.h | 1 +
sysdeps/unix/sysv/linux/bits/sem.h | 1 +
sysdeps/unix/sysv/linux/bits/shm.h | 1 +
sysdeps/unix/sysv/linux/bits/time.h | 10 ++
sysdeps/unix/sysv/linux/csky/libanl.abilist | 1 +
sysdeps/unix/sysv/linux/csky/libc.abilist | 52 +++++++
.../unix/sysv/linux/csky/libpthread.abilist | 14 ++
sysdeps/unix/sysv/linux/csky/librt.abilist | 5 +
sysdeps/unix/sysv/linux/csky/time64-compat.h | 2 +
sysdeps/unix/sysv/linux/features-time64.h | 37 +++++
sysdeps/unix/sysv/linux/hppa/libanl.abilist | 1 +
sysdeps/unix/sysv/linux/hppa/libc.abilist | 52 +++++++
.../unix/sysv/linux/hppa/libpthread.abilist | 14 ++
sysdeps/unix/sysv/linux/hppa/librt.abilist | 5 +
sysdeps/unix/sysv/linux/hppa/time64-compat.h | 2 +
sysdeps/unix/sysv/linux/i386/Makefile | 2 +
sysdeps/unix/sysv/linux/i386/libanl.abilist | 1 +
sysdeps/unix/sysv/linux/i386/libc.abilist | 52 +++++++
.../unix/sysv/linux/i386/libpthread.abilist | 14 ++
sysdeps/unix/sysv/linux/i386/librt.abilist | 5 +
sysdeps/unix/sysv/linux/i386/time64-compat.h | 2 +
sysdeps/unix/sysv/linux/include/sys/msg.h | 2 -
sysdeps/unix/sysv/linux/include/sys/shm.h | 2 -
sysdeps/unix/sysv/linux/include/sys/timex.h | 2 +
.../sysv/linux/m68k/coldfire/libanl.abilist | 1 +
.../sysv/linux/m68k/coldfire/libc.abilist | 52 +++++++
.../linux/m68k/coldfire/libpthread.abilist | 14 ++
.../sysv/linux/m68k/coldfire/librt.abilist | 5 +
.../sysv/linux/m68k/m680x0/libanl.abilist | 1 +
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 52 +++++++
.../sysv/linux/m68k/m680x0/libpthread.abilist | 14 ++
.../unix/sysv/linux/m68k/m680x0/librt.abilist | 5 +
sysdeps/unix/sysv/linux/m68k/time64-compat.h | 2 +
.../sysv/linux/microblaze/be/libanl.abilist | 1 +
.../sysv/linux/microblaze/be/libc.abilist | 52 +++++++
.../linux/microblaze/be/libpthread.abilist | 14 ++
.../sysv/linux/microblaze/be/librt.abilist | 5 +
.../sysv/linux/microblaze/le/libanl.abilist | 1 +
.../sysv/linux/microblaze/le/libc.abilist | 52 +++++++
.../linux/microblaze/le/libpthread.abilist | 14 ++
.../sysv/linux/microblaze/le/librt.abilist | 5 +
.../sysv/linux/microblaze/time64-compat.h | 2 +
.../sysv/linux/mips/mips32/fpu/libc.abilist | 52 +++++++
.../sysv/linux/mips/mips32/libanl.abilist | 1 +
.../sysv/linux/mips/mips32/libpthread.abilist | 14 ++
.../unix/sysv/linux/mips/mips32/librt.abilist | 5 +
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 52 +++++++
.../sysv/linux/mips/mips32/time64-compat.h | 2 +
.../sysv/linux/mips/mips64/n32/libanl.abilist | 1 +
.../sysv/linux/mips/mips64/n32/libc.abilist | 52 +++++++
.../linux/mips/mips64/n32/libpthread.abilist | 14 ++
.../sysv/linux/mips/mips64/n32/librt.abilist | 5 +
.../linux/mips/mips64/n32/time64-compat.h | 2 +
sysdeps/unix/sysv/linux/nios2/libanl.abilist | 1 +
sysdeps/unix/sysv/linux/nios2/libc.abilist | 52 +++++++
.../unix/sysv/linux/nios2/libpthread.abilist | 14 ++
sysdeps/unix/sysv/linux/nios2/librt.abilist | 5 +
sysdeps/unix/sysv/linux/nios2/time64-compat.h | 2 +
.../linux/powerpc/powerpc32/fpu/libc.abilist | 52 +++++++
.../linux/powerpc/powerpc32/libanl.abilist | 1 +
.../powerpc/powerpc32/libpthread.abilist | 14 ++
.../linux/powerpc/powerpc32/librt.abilist | 5 +
.../powerpc/powerpc32/nofpu/libc.abilist | 52 +++++++
.../linux/powerpc/powerpc32/time64-compat.h | 2 +
.../sysv/linux/s390/s390-32/libanl.abilist | 1 +
.../unix/sysv/linux/s390/s390-32/libc.abilist | 52 +++++++
.../linux/s390/s390-32/libpthread.abilist | 14 ++
.../sysv/linux/s390/s390-32/librt.abilist | 5 +
.../sysv/linux/s390/s390-32/time64-compat.h | 2 +
sysdeps/unix/sysv/linux/semctl.c | 1 -
sysdeps/unix/sysv/linux/sh/be/libanl.abilist | 1 +
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 52 +++++++
.../unix/sysv/linux/sh/be/libpthread.abilist | 14 ++
sysdeps/unix/sysv/linux/sh/be/librt.abilist | 5 +
sysdeps/unix/sysv/linux/sh/le/libanl.abilist | 1 +
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 52 +++++++
.../unix/sysv/linux/sh/le/libpthread.abilist | 14 ++
sysdeps/unix/sysv/linux/sh/le/librt.abilist | 5 +
sysdeps/unix/sysv/linux/sh/time64-compat.h | 2 +
.../sysv/linux/sparc/sparc32/libanl.abilist | 1 +
.../sysv/linux/sparc/sparc32/libc.abilist | 52 +++++++
.../linux/sparc/sparc32/libpthread.abilist | 14 ++
.../sysv/linux/sparc/sparc32/librt.abilist | 5 +
.../sysv/linux/sparc/sparc32/time64-compat.h | 2 +
sysdeps/unix/sysv/linux/sys/timerfd.h | 22 +++
sysdeps/unix/sysv/linux/sys/timex.h | 28 +++-
sysvipc/sys/msg.h | 10 ++
sysvipc/sys/sem.h | 21 +++
sysvipc/sys/shm.h | 10 ++
time/sys/time.h | 71 ++++++++++
time/time.h | 128 +++++++++++++++++-
123 files changed, 2315 insertions(+), 29 deletions(-)
create mode 100644 include/features-time64.h
create mode 100644 sysdeps/generic/features-time64.h
create mode 100644 sysdeps/generic/time64-compat.h
create mode 100644 sysdeps/unix/sysv/linux/arm/time64-compat.h
create mode 100644 sysdeps/unix/sysv/linux/csky/time64-compat.h
create mode 100644 sysdeps/unix/sysv/linux/features-time64.h
create mode 100644 sysdeps/unix/sysv/linux/hppa/time64-compat.h
create mode 100644 sysdeps/unix/sysv/linux/i386/time64-compat.h
create mode 100644 sysdeps/unix/sysv/linux/m68k/time64-compat.h
create mode 100644 sysdeps/unix/sysv/linux/microblaze/time64-compat.h
create mode 100644 sysdeps/unix/sysv/linux/mips/mips32/time64-compat.h
create mode 100644 sysdeps/unix/sysv/linux/mips/mips64/n32/time64-compat.h
create mode 100644 sysdeps/unix/sysv/linux/nios2/time64-compat.h
create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/time64-compat.h
create mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/time64-compat.h
create mode 100644 sysdeps/unix/sysv/linux/sh/time64-compat.h
create mode 100644 sysdeps/unix/sysv/linux/sparc/sparc32/time64-compat.h
Comments
On Fri, 5 Mar 2021 17:15:04 -0300
Adhemerval Zanella via Libc-alpha <libc-alpha@sourceware.org> wrote:
> A new build flag, _TIME_BITS, enables the usage of the newer 64 bit
> time symbols for legacy ABI (where 32 bit time_t is default). The 64
> bit time support is only enabled if LFS (_FILE_OFFSET_BITS=64) is
> also used.
>
> Different than LFS support, the y2038 symbols are added only for the
> required ABIs (armhf, csky, hppa, i386, m68k, microblaze, mips32,
> mips64-n32, nios2, powerpc32, sparc32, s390-32, and sh). The ABIs
> with 64 bit time support are unchanged, both for symbol and types
> redirection.
>
> On Linux the full 64 bit time support requires a minimum of kernel
> version v5.1. Otherwise, the 32 bit fallbacks are used and might
> results in error with overflow return code (EOVERFLOW).
>
> The i686-gnu does not yet support 64 bit time.
>
> This patch exports following rediretions to support 64 bit time:
>
> * libc:
> - adjtimex
> - adjtime
> - clock_adjtime
> - clock_getres
> - clock_gettime
> - clock_nanosleep
> - clock_settime
> - ctime
> - ctime_r
> - difftime
> - futimens
> - futimes
> - futimesat
> - getitimer
> - getrusage
> - gettimeofday
> - gmtime
> - gmtime_r
> - localtime
> - localtime_r
> - lutimes
> - mktime
> - msgctl
> - nanosleep
> - ntp_gettime
> - ntp_gettimex
> - ppoll
> - pselect
> - recvmmsg
> - sched_rr_get_interval
> - select
> - semctl
> - semtimedop
> - setitimer
> - settimeofday
> - shmctl
> - sigtimedwait
> - thrd_sleep
> - time
> - timegm
> - timelocal (alias to mktime)
> - timerfd_gettime
> - timerfd_settime
> - timespec_get
> - utime
> - utimensat
> - utimes
> - wait3
> - wait4
>
> * libpthread:
> - mtx_timedlock
> - pthread_clockjoin_np
> - pthread_cond_clockwait
> - pthread_cond_timedwait
> - pthread_mutex_clocklock
> - pthread_mutex_timedlock
> - pthread_rwlock_clockrdlock
> - pthread_rwlock_clockwrlock
> - pthread_rwlock_timedrdlock
> - pthread_rwlock_timedwrlock
> - pthread_timedjoin_np
> - sem_clockwait
> - sem_timedwait
>
> * librt:
> - aio_suspend
> - mq_timedreceive
> - mq_timedsend
> - timer_gettime
> - timer_settime
>
> * libanl:
> - gai_suspend
> ---
> Makefile | 2 +-
> NEWS | 5 +
> include/features-time64.h | 1 +
> include/features.h | 2 +
> io/sys/poll.h | 11 ++
> io/sys/stat.h | 113 ++++++++++++++--
> io/utime.h | 11 ++
> manual/creature.texi | 44 ++++++
> misc/sys/select.h | 27 ++++
> posix/sched.h | 11 +-
> posix/sys/wait.h | 20 +++
> resolv/netdb.h | 11 ++
> resource/sys/resource.h | 10 ++
> rt/aio.h | 15 +-
> rt/mqueue.h | 22 +++
> signal/signal.h | 13 ++
> socket/sys/socket.h | 11 ++
> sysdeps/generic/features-time64.h | 19 +++
> sysdeps/generic/time64-compat.h | 3 +
> sysdeps/nptl/pthread.h | 119 ++++++++++++++++
> sysdeps/pthread/semaphore.h | 25 ++++
> sysdeps/pthread/threads.h | 33 +++++
> sysdeps/unix/sysv/linux/Versions | 113 ++++++++++++++++
> sysdeps/unix/sysv/linux/arm/be/libanl.abilist | 1 +
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 52 +++++++
> .../unix/sysv/linux/arm/be/libpthread.abilist | 14 ++
> sysdeps/unix/sysv/linux/arm/be/librt.abilist | 5 +
> sysdeps/unix/sysv/linux/arm/le/libanl.abilist | 1 +
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 52 +++++++
> .../unix/sysv/linux/arm/le/libpthread.abilist | 14 ++
> sysdeps/unix/sysv/linux/arm/le/librt.abilist | 5 +
> sysdeps/unix/sysv/linux/arm/time64-compat.h | 2 +
> sysdeps/unix/sysv/linux/bits/msq.h | 1 +
> sysdeps/unix/sysv/linux/bits/sem.h | 1 +
> sysdeps/unix/sysv/linux/bits/shm.h | 1 +
> sysdeps/unix/sysv/linux/bits/time.h | 10 ++
> sysdeps/unix/sysv/linux/csky/libanl.abilist | 1 +
> sysdeps/unix/sysv/linux/csky/libc.abilist | 52 +++++++
> .../unix/sysv/linux/csky/libpthread.abilist | 14 ++
> sysdeps/unix/sysv/linux/csky/librt.abilist | 5 +
> sysdeps/unix/sysv/linux/csky/time64-compat.h | 2 +
> sysdeps/unix/sysv/linux/features-time64.h | 37 +++++
> sysdeps/unix/sysv/linux/hppa/libanl.abilist | 1 +
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 52 +++++++
> .../unix/sysv/linux/hppa/libpthread.abilist | 14 ++
> sysdeps/unix/sysv/linux/hppa/librt.abilist | 5 +
> sysdeps/unix/sysv/linux/hppa/time64-compat.h | 2 +
> sysdeps/unix/sysv/linux/i386/Makefile | 2 +
> sysdeps/unix/sysv/linux/i386/libanl.abilist | 1 +
> sysdeps/unix/sysv/linux/i386/libc.abilist | 52 +++++++
> .../unix/sysv/linux/i386/libpthread.abilist | 14 ++
> sysdeps/unix/sysv/linux/i386/librt.abilist | 5 +
> sysdeps/unix/sysv/linux/i386/time64-compat.h | 2 +
> sysdeps/unix/sysv/linux/include/sys/msg.h | 2 -
> sysdeps/unix/sysv/linux/include/sys/shm.h | 2 -
> sysdeps/unix/sysv/linux/include/sys/timex.h | 2 +
> .../sysv/linux/m68k/coldfire/libanl.abilist | 1 +
> .../sysv/linux/m68k/coldfire/libc.abilist | 52 +++++++
> .../linux/m68k/coldfire/libpthread.abilist | 14 ++
> .../sysv/linux/m68k/coldfire/librt.abilist | 5 +
> .../sysv/linux/m68k/m680x0/libanl.abilist | 1 +
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 52 +++++++
> .../sysv/linux/m68k/m680x0/libpthread.abilist | 14 ++
> .../unix/sysv/linux/m68k/m680x0/librt.abilist | 5 +
> sysdeps/unix/sysv/linux/m68k/time64-compat.h | 2 +
> .../sysv/linux/microblaze/be/libanl.abilist | 1 +
> .../sysv/linux/microblaze/be/libc.abilist | 52 +++++++
> .../linux/microblaze/be/libpthread.abilist | 14 ++
> .../sysv/linux/microblaze/be/librt.abilist | 5 +
> .../sysv/linux/microblaze/le/libanl.abilist | 1 +
> .../sysv/linux/microblaze/le/libc.abilist | 52 +++++++
> .../linux/microblaze/le/libpthread.abilist | 14 ++
> .../sysv/linux/microblaze/le/librt.abilist | 5 +
> .../sysv/linux/microblaze/time64-compat.h | 2 +
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 52 +++++++
> .../sysv/linux/mips/mips32/libanl.abilist | 1 +
> .../sysv/linux/mips/mips32/libpthread.abilist | 14 ++
> .../unix/sysv/linux/mips/mips32/librt.abilist | 5 +
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 52 +++++++
> .../sysv/linux/mips/mips32/time64-compat.h | 2 +
> .../sysv/linux/mips/mips64/n32/libanl.abilist | 1 +
> .../sysv/linux/mips/mips64/n32/libc.abilist | 52 +++++++
> .../linux/mips/mips64/n32/libpthread.abilist | 14 ++
> .../sysv/linux/mips/mips64/n32/librt.abilist | 5 +
> .../linux/mips/mips64/n32/time64-compat.h | 2 +
> sysdeps/unix/sysv/linux/nios2/libanl.abilist | 1 +
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 52 +++++++
> .../unix/sysv/linux/nios2/libpthread.abilist | 14 ++
> sysdeps/unix/sysv/linux/nios2/librt.abilist | 5 +
> sysdeps/unix/sysv/linux/nios2/time64-compat.h | 2 +
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 52 +++++++
> .../linux/powerpc/powerpc32/libanl.abilist | 1 +
> .../powerpc/powerpc32/libpthread.abilist | 14 ++
> .../linux/powerpc/powerpc32/librt.abilist | 5 +
> .../powerpc/powerpc32/nofpu/libc.abilist | 52 +++++++
> .../linux/powerpc/powerpc32/time64-compat.h | 2 +
> .../sysv/linux/s390/s390-32/libanl.abilist | 1 +
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 52 +++++++
> .../linux/s390/s390-32/libpthread.abilist | 14 ++
> .../sysv/linux/s390/s390-32/librt.abilist | 5 +
> .../sysv/linux/s390/s390-32/time64-compat.h | 2 +
> sysdeps/unix/sysv/linux/semctl.c | 1 -
> sysdeps/unix/sysv/linux/sh/be/libanl.abilist | 1 +
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 52 +++++++
> .../unix/sysv/linux/sh/be/libpthread.abilist | 14 ++
> sysdeps/unix/sysv/linux/sh/be/librt.abilist | 5 +
> sysdeps/unix/sysv/linux/sh/le/libanl.abilist | 1 +
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 52 +++++++
> .../unix/sysv/linux/sh/le/libpthread.abilist | 14 ++
> sysdeps/unix/sysv/linux/sh/le/librt.abilist | 5 +
> sysdeps/unix/sysv/linux/sh/time64-compat.h | 2 +
> .../sysv/linux/sparc/sparc32/libanl.abilist | 1 +
> .../sysv/linux/sparc/sparc32/libc.abilist | 52 +++++++
> .../linux/sparc/sparc32/libpthread.abilist | 14 ++
> .../sysv/linux/sparc/sparc32/librt.abilist | 5 +
> .../sysv/linux/sparc/sparc32/time64-compat.h | 2 +
> sysdeps/unix/sysv/linux/sys/timerfd.h | 22 +++
> sysdeps/unix/sysv/linux/sys/timex.h | 28 +++-
> sysvipc/sys/msg.h | 10 ++
> sysvipc/sys/sem.h | 21 +++
> sysvipc/sys/shm.h | 10 ++
> time/sys/time.h | 71 ++++++++++
> time/time.h | 128
> +++++++++++++++++- 123 files changed, 2315 insertions(+), 29
> deletions(-) create mode 100644 include/features-time64.h
> create mode 100644 sysdeps/generic/features-time64.h
> create mode 100644 sysdeps/generic/time64-compat.h
> create mode 100644 sysdeps/unix/sysv/linux/arm/time64-compat.h
> create mode 100644 sysdeps/unix/sysv/linux/csky/time64-compat.h
> create mode 100644 sysdeps/unix/sysv/linux/features-time64.h
> create mode 100644 sysdeps/unix/sysv/linux/hppa/time64-compat.h
> create mode 100644 sysdeps/unix/sysv/linux/i386/time64-compat.h
> create mode 100644 sysdeps/unix/sysv/linux/m68k/time64-compat.h
> create mode 100644 sysdeps/unix/sysv/linux/microblaze/time64-compat.h
> create mode 100644
> sysdeps/unix/sysv/linux/mips/mips32/time64-compat.h create mode
> 100644 sysdeps/unix/sysv/linux/mips/mips64/n32/time64-compat.h create
> mode 100644 sysdeps/unix/sysv/linux/nios2/time64-compat.h create mode
> 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/time64-compat.h
> create mode 100644
> sysdeps/unix/sysv/linux/s390/s390-32/time64-compat.h create mode
> 100644 sysdeps/unix/sysv/linux/sh/time64-compat.h create mode 100644
> sysdeps/unix/sysv/linux/sparc/sparc32/time64-compat.h
>
> diff --git a/Makefile b/Makefile
> index 71c7d8b5ec..2fd88294f5 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -68,7 +68,7 @@ endif # $(AUTOCONF) = no
> subdir_objs subdir_stubs subdir_testclean
> \ $(addprefix install-, no-libc.a bin lib data headers others)
>
> -headers := limits.h values.h features.h gnu-versions.h \
> +headers := limits.h values.h features.h features-time64.h
> gnu-versions.h \ bits/xopen_lim.h gnu/libc-version.h stdc-predef.h \
> bits/libc-header-start.h
>
> diff --git a/NEWS b/NEWS
> index 73a1a0df97..7766db65a5 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -18,6 +18,11 @@ Major new features:
> a dump of information related to IFUNC resolver operation and
> glibc-hwcaps subdirectory selection.
>
> +* Add support for 64 bit time_t for ABIs with defaults to 32 bit
> time_t.
> + This is enabled with the _TIME_BITS preprocessor set to 64 and only
> + supported when LFS (_FILE_OFFSET_BITS=64) is also enabled. It is
> only
> + enabled for Linux and the full support requires a minimum version
> of 5.1. +
> Deprecated and removed features, and other changes affecting
> compatibility:
> [Add deprecations, removals and changes affecting compatibility
> here] diff --git a/include/features-time64.h
> b/include/features-time64.h new file mode 100644
> index 0000000000..06115b7c86
> --- /dev/null
> +++ b/include/features-time64.h
> @@ -0,0 +1 @@
> +#include_next <features-time64.h>
> diff --git a/include/features.h b/include/features.h
> index eb97470afa..9d39e11345 100644
> --- a/include/features.h
> +++ b/include/features.h
> @@ -387,6 +387,8 @@
> # define __USE_FILE_OFFSET64 1
> #endif
>
> +#include <features-time64.h>
> +
> #if defined _DEFAULT_SOURCE
> # define __USE_MISC 1
> #endif
> diff --git a/io/sys/poll.h b/io/sys/poll.h
> index 2431dd1e14..4a0ce7eaad 100644
> --- a/io/sys/poll.h
> +++ b/io/sys/poll.h
> @@ -63,6 +63,17 @@ extern int poll (struct pollfd *__fds, nfds_t
> __nfds, int __timeout); extern int ppoll (struct pollfd *__fds,
> nfds_t __nfds, const struct timespec *__timeout,
> const __sigset_t *__ss);
> +
> +# ifdef __USE_TIME_BITS64
> +# ifdef __REDIRECT
> +extern int __REDIRECT (ppoll, (struct pollfd *__fds, nfds_t __nfds,
> + const struct timespec *__timeout,
> + const __sigset_t *__ss),
> + __ppoll64);
> +# else
> +# define ppoll __ppoll64
> +# endif
> +# endif
> #endif
>
> __END_DECLS
> diff --git a/io/sys/stat.h b/io/sys/stat.h
> index 549375c087..f7874ec5ba 100644
> --- a/io/sys/stat.h
> +++ b/io/sys/stat.h
> @@ -209,21 +209,51 @@ extern int stat (const char *__restrict __file,
> that file descriptor FD is open on and put them in BUF. */
> extern int fstat (int __fd, struct stat *__buf) __THROW __nonnull
> ((2)); #else
> -# ifdef __REDIRECT_NTH
> +# ifdef __USE_TIME_BITS64
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (stat, (const char *__restrict __file,
> + struct stat *__restrict __buf),
> + __stat64_time64)
> + __nonnull ((1, 2));
> +extern int __REDIRECT_NTH (fstat, (int __fd, struct stat *__buf),
> + __fstat64_time64)
> + __nonnull ((2));
> +# else
> +# define stat __stat64_time64
> +# define fstat __fstat64_time64
> +# endif
> +# else
> +# ifdef __REDIRECT_NTH
> extern int __REDIRECT_NTH (stat, (const char *__restrict __file,
> struct stat *__restrict __buf),
> stat64) __nonnull ((1, 2));
> extern int __REDIRECT_NTH (fstat, (int __fd, struct stat *__buf),
> fstat64) __nonnull ((2));
> -# else
> -# define stat stat64
> -# define fstat fstat64
> +# else
> +# define stat stat64
> +# define fstat fstat64
> +# endif
> # endif
> #endif
> #ifdef __USE_LARGEFILE64
> +# ifndef __USE_TIME_BITS64
> extern int stat64 (const char *__restrict __file,
> struct stat64 *__restrict __buf) __THROW
> __nonnull ((1, 2)); extern int fstat64 (int __fd, struct stat64
> *__buf) __THROW __nonnull ((2)); +# else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (stat64, (const char *__restrict __file,
> + struct stat64 *__restrict __buf),
> + __stat64_time64)
> + __nonnull ((1, 2));
> +extern int __REDIRECT_NTH (fstat64, (int __fd, struct stat64 *__buf),
> + __fstat64_time64)
> + __nonnull ((2));
> +# else
> +# define stat64 __stat64_time64
> +# define fstat64 __fstat64_time
> +# endif
> +# endif
> #endif
>
> #ifdef __USE_ATFILE
> @@ -235,20 +265,44 @@ extern int fstatat (int __fd, const char
> *__restrict __file, struct stat *__restrict __buf, int __flag)
> __THROW __nonnull ((2, 3));
> # else
> -# ifdef __REDIRECT_NTH
> +# ifdef __USE_TIME_BITS64
> +# ifdef __REDIRECT_NTH
> extern int __REDIRECT_NTH (fstatat, (int __fd, const char
> *__restrict __file, struct stat *__restrict __buf,
> int __flag),
> - fstatat64) __nonnull ((2, 3));
> + __fstatat64_time64) __nonnull ((2, 3));
> +# else
> +# define fstatat __fstatat64_time64
> +# endif
> # else
> -# define fstatat fstatat64
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (fstatat, (int __fd, const char
> *__restrict __file,
> + struct stat *__restrict __buf,
> + int __flag),
> + fstatat64) __nonnull ((2, 3));
> +# else
> +# define fstatat fstatat64
> +# endif
> # endif
> # endif
>
> # ifdef __USE_LARGEFILE64
> +# ifndef __USE_TIME_BITS64
> extern int fstatat64 (int __fd, const char *__restrict __file,
> struct stat64 *__restrict __buf, int __flag)
> __THROW __nonnull ((2, 3));
> +# else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (fstatat64, (int __fd,
> + const char *__restrict __file,
> + struct stat64 *__restrict
> __buf,
> + int __flag),
> + __fstatat64_time64)
> + __nonnull ((2, 3));
> +# else
> +# define fstatat64 __fstatat64_time64
> +# endif
> +# endif
> # endif
> #endif
>
> @@ -259,19 +313,37 @@ extern int fstatat64 (int __fd, const char
> *__restrict __file, extern int lstat (const char *__restrict __file,
> struct stat *__restrict __buf) __THROW __nonnull
> ((1, 2)); # else
> -# ifdef __REDIRECT_NTH
> +# ifdef __USE_TIME_BITS64
> +# ifdef __REDIRECT_NTH
> extern int __REDIRECT_NTH (lstat,
> (const char *__restrict __file,
> - struct stat *__restrict __buf), lstat64)
> + struct stat *__restrict __buf),
> __lstat64_time64) __nonnull ((1, 2));
> +# else
> +# define lstat __lstat64_time64
> +# endif
> # else
> -# define lstat lstat64
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (lstat,
> + (const char *__restrict __file,
> + struct stat *__restrict __buf), lstat64)
> + __nonnull ((1, 2));
> +# else
> +# define lstat lstat64
> +# endif
> # endif
> # endif
> # ifdef __USE_LARGEFILE64
> +# ifndef __USE_TIME_BITS64
> extern int lstat64 (const char *__restrict __file,
> struct stat64 *__restrict __buf)
> __THROW __nonnull ((1, 2));
> +# else
> +extern int __REDIRECT_NTH (lstat64, (const char *__restrict __file,
> + struct stat64 *__restrict
> __buf),
> + __lstat64_time64)
> + __nonnull ((1, 2));
> +# endif
> # endif
> #endif
>
> @@ -355,17 +427,38 @@ extern int mkfifoat (int __fd, const char
> *__path, __mode_t __mode) #endif
>
> #ifdef __USE_ATFILE
> +# ifndef __USE_TIME_BITS64
> /* Set file access and modification times relative to directory file
> descriptor. */
> extern int utimensat (int __fd, const char *__path,
> const struct timespec __times[2],
> int __flags)
> __THROW __nonnull ((2));
> +# else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (utimensat, (int fd, const char *__path,
> + const struct timespec
> __times[2],
> + int flags),
> + __utimensat64) __nonnull ((2));
> +# else
> +# define utimensat __utimensat64
> +# endif
> +# endif
> #endif
>
> #ifdef __USE_XOPEN2K8
> +# ifndef __USE_TIME_BITS64
> /* Set file access and modification times of the file associated
> with FD. */ extern int futimens (int __fd, const struct timespec
> __times[2]) __THROW; +
> +# else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (futimens, (int fd, const struct timespec
> __times[2]),
> + __futimens64);
> +# else
> +# define futimens __futimens64
> +# endif
> +# endif
> #endif
>
> #ifdef __USE_GNU
> diff --git a/io/utime.h b/io/utime.h
> index c7612d0838..1a645a3fff 100644
> --- a/io/utime.h
> +++ b/io/utime.h
> @@ -46,10 +46,21 @@ struct utimbuf
>
> /* Set the access and modification times of FILE to those given in
> *FILE_TIMES. If FILE_TIMES is NULL, set them to the current
> time. */ +#ifndef __USE_TIME_BITS64
> extern int utime (const char *__file,
> const struct utimbuf *__file_times)
> __THROW __nonnull ((1));
>
> +#else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (utime, (const char *__file,
> + const struct utimbuf
> *__file_times),
> + __utime64);
> +# else
> +# define utime __utime64
> +# endif
> +#endif
> +
> __END_DECLS
>
> #endif /* utime.h */
> diff --git a/manual/creature.texi b/manual/creature.texi
> index 5090735e4f..606b73d184 100644
> --- a/manual/creature.texi
> +++ b/manual/creature.texi
> @@ -165,6 +165,50 @@ This macro was introduced as part of the Large
> File Support extension (LFS).
> @end defvr
>
> +@defvr Macro _TIME_BITS
> +This macro determines the bit size of @code{time_t} (and therefore
> the +bit size of all @code{time_t} derived types and the prototypes
> of all +related functions). If @code{_TIME_BITS} is undefined, the
> bit size of +@code{time_t} is architecture dependent.
> +
> +Possible values of @code{_TIME_BITS}:
> +@enumerate
> +@item
> +@code{_TIME_BITS=64} and port from the outset uses 64-bit
> +@code{time_t} and word size equals to @w{64 bits} (e.g. x86_64) - no
> +action
> +
> +@item
> +@code{_TIME_BITS=32} and port from the outset uses 32-bit
> +@code{time_t} and word size equals to @w{64 bits} (e.g. ARM) - no
> +action
> +
> +@item
> +@code{_TIME_BITS=64} and port from the outset uses 64-bit
> +@code{time_t} and word size equals to @w{32 bits} (e.g. ARC, RV32)
> +- no action
> +
> +@item
> +@code{_TIME_BITS=64} and port from the outset uses 32-bit
> +@code{time_t} and word size equals to @w{32 bits} (e.g. ARM)
> +- the @code{time_t} is modified to be able to hold 64-bit time.
> +
> +@item
> +For any other use case the compile-time error is emitted.
> +@end enumerate
> +
> +The @code{_TIME_BITS} can be only used when
> @code{_FILE_OFFSET_BITS=64} +is also defined.
> +
> +For the point @b{4} above, calls to proper syscalls depend on the
> +Linux kernel version on which the system is running. For Linux kernel
> +version above @b{5.1} syscalls supporting 64-bit time are used.
> Otherwise, +a fallback code is used with legacy (i.e. 32-bit)
> syscalls. +
> +By using this macro certain ports gain support for 64-bit time and as
> +a result become immune to Y2038 problem.
> +@end defvr
> +
> @defvr Macro _ISOC99_SOURCE
> @standards{GNU, (none)}
> If this macro is defined, features from ISO C99 are included. Since
> diff --git a/misc/sys/select.h b/misc/sys/select.h
> index 188a7fe607..e9c0e8fc20 100644
> --- a/misc/sys/select.h
> +++ b/misc/sys/select.h
> @@ -98,10 +98,23 @@ __BEGIN_DECLS
>
> This function is a cancellation point and therefore not marked
> with __THROW. */
> +#ifndef __USE_TIME_BITS64
> extern int select (int __nfds, fd_set *__restrict __readfds,
> fd_set *__restrict __writefds,
> fd_set *__restrict __exceptfds,
> struct timeval *__restrict __timeout);
> +#else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (select,
> + (int __nfds, fd_set *__restrict __readfds,
> + fd_set *__restrict __writefds,
> + fd_set *__restrict __exceptfds,
> + struct timeval *__restrict __timeout),
> + __select64);
> +# else
> +# define select __select64
> +# endif
> +#endif
>
> #ifdef __USE_XOPEN2K
> /* Same as above only that the TIMEOUT value is given with higher
> @@ -110,11 +123,25 @@ extern int select (int __nfds, fd_set
> *__restrict __readfds,
> This function is a cancellation point and therefore not marked
> with __THROW. */
> +# ifndef __USE_TIME_BITS64
> extern int pselect (int __nfds, fd_set *__restrict __readfds,
> fd_set *__restrict __writefds,
> fd_set *__restrict __exceptfds,
> const struct timespec *__restrict __timeout,
> const __sigset_t *__restrict __sigmask);
> +# else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (pselect,
> + (int __nfds, fd_set *__restrict __readfds,
> + fd_set *__restrict __writefds,
> + fd_set *__restrict __exceptfds,
> + const struct timespec *__restrict __timeout,
> + const __sigset_t *__restrict __sigmask),
> + __pselect64);
> +# else
> +# define pselect __pselect64
> +# endif
> +# endif
> #endif
>
>
> diff --git a/posix/sched.h b/posix/sched.h
> index d8ce08a3ea..7dd97a49b2 100644
> --- a/posix/sched.h
> +++ b/posix/sched.h
> @@ -74,8 +74,17 @@ extern int sched_get_priority_max (int
> __algorithm) __THROW; extern int sched_get_priority_min (int
> __algorithm) __THROW;
> /* Get the SCHED_RR interval for the named process. */
> +#ifndef __USE_TIME_BITS64
> extern int sched_rr_get_interval (__pid_t __pid, struct timespec
> *__t) __THROW; -
> +#else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (sched_rr_get_interval,
> + (__pid_t __pid, struct timespec *__t),
> + __sched_rr_get_interval64);
> +# else
> +# define sched_rr_get_interval __sched_rr_get_interval64
> +# endif
> +#endif
>
> #ifdef __USE_GNU
> /* Access macros for `cpu_set'. */
> diff --git a/posix/sys/wait.h b/posix/sys/wait.h
> index 9e7bb7f154..5325bfa4d2 100644
> --- a/posix/sys/wait.h
> +++ b/posix/sys/wait.h
> @@ -144,14 +144,34 @@ struct rusage;
> nil, store information about the child's resource usage there.
> If the WUNTRACED bit is set in OPTIONS, return status for stopped
> children; otherwise don't. */
> +# ifndef __USE_TIME_BITS64
> extern __pid_t wait3 (int *__stat_loc, int __options,
> struct rusage * __usage) __THROWNL;
> +# else
> +# ifdef __REDIRECT_NTHNL
> +extern __pid_t __REDIRECT_NTHNL (wait3, (int *__stat_loc, int
> __options,
> + struct rusage * __usage),
> + __wait3_time64);
> +# else
> +# define wait3 __wait3_time64
> +# endif
> +# endif
> #endif
>
> #ifdef __USE_MISC
> +# ifndef __USE_TIME_BITS64
> /* PID is like waitpid. Other args are like wait3. */
> extern __pid_t wait4 (__pid_t __pid, int *__stat_loc, int __options,
> struct rusage *__usage) __THROWNL;
> +# else
> +# ifdef __REDIRECT_NTHNL
> +extern __pid_t __REDIRECT_NTHNL (wait4, (__pid_t __pid, int
> *__stat_loc,
> + int __options, struct
> rusage *__usage),
> + __wait4_time64);
> +# else
> +# define wait4 __wait4_time64
> +# endif
> +# endif
> #endif /* Use misc. */
>
>
> diff --git a/resolv/netdb.h b/resolv/netdb.h
> index 1f36f25d4a..9b242ce3d1 100644
> --- a/resolv/netdb.h
> +++ b/resolv/netdb.h
> @@ -701,6 +701,17 @@ extern int getaddrinfo_a (int __mode, struct
> gaicb *__list[__restrict_arr], extern int gai_suspend (const struct
> gaicb *const __list[], int __ent, const struct timespec *__timeout);
>
> +# ifdef __USE_TIME_BITS64
> +# if defined(__REDIRECT)
> +extern int __REDIRECT (gai_suspend, (const struct gaicb *const
> __list[],
> + int __ent,
> + const struct timespec
> *__timeout),
> + __gai_suspend_time64);
> +# else
> +# define gai_suspend __gai_suspend_time64
> +# endif
> +# endif
> +
> /* Get the error status of the request REQ. */
> extern int gai_error (struct gaicb *__req) __THROW;
>
> diff --git a/resource/sys/resource.h b/resource/sys/resource.h
> index d30379d085..551d25e275 100644
> --- a/resource/sys/resource.h
> +++ b/resource/sys/resource.h
> @@ -88,6 +88,16 @@ extern int setrlimit64 (__rlimit_resource_t
> __resource, and put it in *USAGE. Returns 0 for success, -1 for
> failure. */ extern int getrusage (__rusage_who_t __who, struct
> rusage *__usage) __THROW;
> +#ifdef __USE_TIME_BITS64
> +# if defined(__REDIRECT_NTH)
> +extern int __REDIRECT_NTH (getrusage, (__rusage_who_t __who,
> + struct rusage *__usage),
> + __getrusage64);
> +# else
> +# define getrusage __getrusage64
> +# endif
> +#endif
> +
> /* Return the highest priority of any process specified by WHICH and
> WHO (see above); if WHO is zero, the current process, process group,
> or user (as specified by WHO) is used. A lower priority number means
> higher diff --git a/rt/aio.h b/rt/aio.h
> index 3a107b2783..72cf626690 100644
> --- a/rt/aio.h
> +++ b/rt/aio.h
> @@ -193,12 +193,17 @@ extern __ssize_t __REDIRECT_NTH (aio_return,
> (struct aiocb *__aiocbp), extern int __REDIRECT_NTH (aio_cancel,
> (int __fildes, struct aiocb *__aiocbp),
> aio_cancel64);
> -
> +# ifdef __USE_TIME_BITS64
> +extern int __REDIRECT_NTH (aio_suspend,
> + (const struct aiocb *const __list[], int
> __nent,
> + const struct timespec *__restrict
> __timeout),
> + __aio_suspend_time64) __nonnull ((1));
> +# else
> extern int __REDIRECT_NTH (aio_suspend,
> (const struct aiocb *const __list[], int
> __nent, const struct timespec *__restrict __timeout),
> aio_suspend64) __nonnull ((1));
> -
> +# endif
> extern int __REDIRECT_NTH (aio_fsync,
> (int __operation, struct aiocb *__aiocbp),
> aio_fsync64) __nonnull ((2));
> @@ -210,7 +215,11 @@ extern int __REDIRECT_NTH (aio_fsync,
> # define aio_error aio_error64
> # define aio_return aio_return64
> # define aio_cancel aio_cancel64
> -# define aio_suspend aio_suspend64
> +# ifdef __USE_TIME_BITS64
> +# define aio_suspend __aio_suspend_time64
> +# else
> +# define aio_suspend aio_suspend64
> +# endif
> # define aio_fsync aio_fsync64
> # endif
> #endif
> diff --git a/rt/mqueue.h b/rt/mqueue.h
> index 8a62d99f50..e8a85637e4 100644
> --- a/rt/mqueue.h
> +++ b/rt/mqueue.h
> @@ -71,6 +71,7 @@ extern int mq_send (mqd_t __mqdes, const char
> *__msg_ptr, size_t __msg_len, unsigned int __msg_prio) __nonnull
> ((2));
> #ifdef __USE_XOPEN2K
> +# ifndef __USE_TIME_BITS64
> /* Receive the oldest from highest priority messages in message queue
> MQDES, stop waiting if ABS_TIMEOUT expires. */
> extern ssize_t mq_timedreceive (mqd_t __mqdes, char *__restrict
> __msg_ptr, @@ -85,6 +86,27 @@ extern int mq_timedsend (mqd_t __mqdes,
> const char *__msg_ptr, size_t __msg_len, unsigned int __msg_prio,
> const struct timespec *__abs_timeout)
> __nonnull ((2, 5));
> +# else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (mq_timedreceive, (mqd_t __mqdes,
> + char *__restrict __msg_ptr,
> + size_t __msg_len,
> + unsigned int *__restrict __msg_prio,
> + const struct timespec *__restrict
> __abs_timeout),
> + __mq_timedreceive_time64)
> + __nonnull ((2, 5));
> +
> +extern int __REDIRECT (mq_timedsend, (mqd_t __mqdes,
> + const char *__msg_ptr, size_t __msg_len,
> + unsigned int __msg_prio,
> + const struct timespec *__abs_timeout),
> + __mq_timedsend_time64)
> + __nonnull ((2, 5));
> +# else
> +# define mq_timedreceive __mq_timedreceive_time64
> +# define mq_timedsend __mq_timedsend_time64
> +# endif
> +# endif
> #endif
>
> /* Define some inlines helping to catch common problems. */
> diff --git a/signal/signal.h b/signal/signal.h
> index b17203c99c..5fd93382fc 100644
> --- a/signal/signal.h
> +++ b/signal/signal.h
> @@ -269,10 +269,23 @@ extern int sigwaitinfo (const sigset_t
> *__restrict __set,
> This function is a cancellation point and therefore not marked
> with __THROW. */
> +# ifndef __USE_TIME_BITS64
> extern int sigtimedwait (const sigset_t *__restrict __set,
> siginfo_t *__restrict __info,
> const struct timespec *__restrict __timeout)
> __nonnull ((1));
> +# else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (sigtimedwait,
> + (const sigset_t *__restrict __set,
> + siginfo_t *__restrict __info,
> + const struct timespec *__restrict __timeout),
> + __sigtimedwait64)
> + __nonnull ((1));
> +# else
> +# define sigtimedwait __sigtimedwait64
> +# endif
> +# endif
>
> /* Send signal SIG to the process PID. Associate data in VAL with
> the signal. */
> diff --git a/socket/sys/socket.h b/socket/sys/socket.h
> index 949851a6ce..5577e75b80 100644
> --- a/socket/sys/socket.h
> +++ b/socket/sys/socket.h
> @@ -196,9 +196,20 @@ extern ssize_t recvmsg (int __fd, struct msghdr
> *__message, int __flags);
> This function is a cancellation point and therefore not marked
> with __THROW. */
> +# ifndef __USE_TIME_BITS64
> extern int recvmmsg (int __fd, struct mmsghdr *__vmessages,
> unsigned int __vlen, int __flags,
> struct timespec *__tmo);
> +# else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (recvmmsg, (int __fd, struct mmsghdr
> *__vmessages,
> + unsigned int __vlen, int __flags,
> + struct timespec *__tmo),
> + __recvmmsg64);
> +# else
> +# define recvmmsg __recvmmsg64
> +# endif
> +# endif
> #endif
>
>
> diff --git a/sysdeps/generic/features-time64.h
> b/sysdeps/generic/features-time64.h new file mode 100644
> index 0000000000..a5a677f837
> --- /dev/null
> +++ b/sysdeps/generic/features-time64.h
> @@ -0,0 +1,19 @@
> +/* Features part to handle 64-bit time_t support. Generic version.
> + Copyright (C) 2021 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be
> useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, see
> + <https://www.gnu.org/licenses/>. */
> +
> +/* The generic configuration only support _TIME_BITS=32. */
> diff --git a/sysdeps/generic/time64-compat.h
> b/sysdeps/generic/time64-compat.h new file mode 100644
> index 0000000000..e44b6b68e3
> --- /dev/null
> +++ b/sysdeps/generic/time64-compat.h
> @@ -0,0 +1,3 @@
> +/* Header included by Versions to generate the 64 bit time_t compat
> symbols.
> + Legacy ABIs with default 32 bit time support define
> TIME64_NON_DEFAULT to
> + generate the 64 bit symbols. */
> diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h
> index a04a3a2754..8f3a41279f 100644
> --- a/sysdeps/nptl/pthread.h
> +++ b/sysdeps/nptl/pthread.h
> @@ -221,6 +221,7 @@ extern int pthread_join (pthread_t __th, void
> **__thread_return); the thread in *THREAD_RETURN, if THREAD_RETURN is
> not NULL. */ extern int pthread_tryjoin_np (pthread_t __th, void
> **__thread_return) __THROW;
> +# ifndef __USE_TIME_BITS64
> /* Make calling thread wait for termination of the thread TH, but
> only until TIMEOUT. The exit status of the thread is stored in
> *THREAD_RETURN, if THREAD_RETURN is not NULL.
> @@ -240,6 +241,23 @@ extern int pthread_timedjoin_np (pthread_t __th,
> void **__thread_return, extern int pthread_clockjoin_np (pthread_t
> __th, void **__thread_return, clockid_t __clockid,
> const struct timespec *__abstime);
> +# else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (pthread_timedjoin_np,
> + (pthread_t __th, void **__thread_return,
> + const struct timespec *__abstime),
> + __pthread_timedjoin_np64);
> +
> +extern int __REDIRECT (pthread_clockjoin_np,
> + (pthread_t __th, void **__thread_return,
> + clockid_t __clockid,
> + const struct timespec *__abstime),
> + __pthread_clockjoin_np64);
> +# else
> +# define pthread_timedjoin_np __pthread_timedjoin_np64
> +# define pthread_clockjoin_np __pthread_clockjoin_np64
> +# endif
> +# endif
> #endif
>
> /* Indicate that the thread TH is never to be joined with
> PTHREAD_JOIN. @@ -773,16 +791,39 @@ extern int pthread_mutex_lock
> (pthread_mutex_t *__mutex)
> #ifdef __USE_XOPEN2K
> /* Wait until lock becomes available, or specified time passes. */
> +# ifndef __USE_TIME_BITS64
> extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict
> __mutex, const struct timespec *__restrict
> __abstime) __THROWNL __nonnull
> ((1, 2)); +# else
> +# ifdef __REDIRECT_NTHNL
> +extern int __REDIRECT_NTHNL (pthread_mutex_timedlock,
> + (pthread_mutex_t *__restrict __mutex,
> + const struct timespec *__restrict
> __abstime),
> + __pthread_mutex_timedlock64) __nonnull
> ((1, 2)); +# else
> +# define pthread_mutex_timedlock __pthread_mutex_timedlock64
> +# endif
> +# endif
> #endif
>
> #ifdef __USE_GNU
> +# ifndef __USE_TIME_BITS64
> extern int pthread_mutex_clocklock (pthread_mutex_t *__restrict
> __mutex, clockid_t __clockid,
> const struct timespec *__restrict
> __abstime) __THROWNL __nonnull
> ((1, 3)); +# else
> +# ifdef __REDIRECT_NTHNL
> +extern int __REDIRECT_NTHNL (pthread_mutex_clocklock,
> + (pthread_mutex_t *__restrict __mutex,
> + clockid_t __clockid,
> + const struct timespec *__restrict
> __abstime),
> + __pthread_mutex_clocklock64) __nonnull
> ((1, 3)); +# else
> +# define pthread_mutex_clocklock __pthread_mutex_clocklock64
> +# endif
> +# endif
> #endif
>
> /* Unlock a mutex. */
> @@ -919,16 +960,41 @@ extern int pthread_rwlock_tryrdlock
> (pthread_rwlock_t *__rwlock)
> # ifdef __USE_XOPEN2K
> /* Try to acquire read lock for RWLOCK or return after specfied
> time. */ +# ifndef __USE_TIME_BITS64
> extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict
> __rwlock, const struct timespec *__restrict
> __abstime) __THROWNL
> __nonnull ((1, 2)); +# else
> +# ifdef __REDIRECT_NTHNL
> +extern int __REDIRECT_NTHNL (pthread_rwlock_timedrdlock,
> + (pthread_rwlock_t *__restrict __rwlock,
> + const struct timespec *__restrict
> __abstime),
> + __pthread_rwlock_timedrdlock64)
> + __nonnull ((1, 2));
> +# else
> +# define pthread_rwlock_timedrdlock __pthread_rwlock_timedrdlock64
> +# endif
> +# endif
> # endif
>
> # ifdef __USE_GNU
> +# ifndef __USE_TIME_BITS64
> extern int pthread_rwlock_clockrdlock (pthread_rwlock_t *__restrict
> __rwlock, clockid_t __clockid,
> const struct timespec
> *__restrict __abstime) __THROWNL __nonnull ((1, 3));
> +# else
> +# ifdef __REDIRECT_NTHNL
> +extern int __REDIRECT_NTHNL (pthread_rwlock_clockrdlock,
> + (pthread_rwlock_t *__restrict __rwlock,
> + clockid_t __clockid,
> + const struct timespec *__restrict
> __abstime),
> + __pthread_rwlock_clockrdlock64)
> + __nonnull ((1, 3));
> +# else
> +# define pthread_rwlock_clockrdlock __pthread_rwlock_clockrdlock64
> +# endif
> +# endif
> # endif
>
> /* Acquire write lock for RWLOCK. */
> @@ -941,16 +1007,42 @@ extern int pthread_rwlock_trywrlock
> (pthread_rwlock_t *__rwlock)
> # ifdef __USE_XOPEN2K
> /* Try to acquire write lock for RWLOCK or return after specfied
> time. */ +# ifndef __USE_TIME_BITS64
> extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict
> __rwlock, const struct timespec *__restrict
> __abstime) __THROWNL
> __nonnull ((1, 2)); +# else
> +# ifdef __REDIRECT_NTHNL
> +extern int __REDIRECT_NTHNL (pthread_rwlock_timedwrlock,
> + (pthread_rwlock_t *__restrict __rwlock,
> + const struct timespec *__restrict
> __abstime),
> + __pthread_rwlock_timedwrlock64)
> + __nonnull ((1, 2));
> +# else
> +# define pthread_rwlock_timedwrlock __pthread_rwlock_timedwrlock64
> +# endif
> +# endif
> # endif
>
> # ifdef __USE_GNU
> +# ifndef __USE_TIME_BITS64
> extern int pthread_rwlock_clockwrlock (pthread_rwlock_t *__restrict
> __rwlock, clockid_t __clockid,
> const struct timespec
> *__restrict __abstime) __THROWNL __nonnull ((1, 3));
> +
> +# else
> +# ifdef __REDIRECT_NTHNL
> +extern int __REDIRECT_NTHNL (pthread_rwlock_clockwrlock,
> + (pthread_rwlock_t *__restrict __rwlock,
> + clockid_t __clockid,
> + const struct timespec *__restrict
> __abstime),
> + __pthread_rwlock_clockwrlock64)
> + __nonnull ((1, 3));
> +# else
> +# define pthread_rwlock_clockwrlock __pthread_rwlock_clockwrlock64
> +# endif
> +# endif
> # endif
>
> /* Unlock RWLOCK. */
> @@ -1027,10 +1119,23 @@ extern int pthread_cond_wait (pthread_cond_t
> *__restrict __cond,
> This function is a cancellation point and therefore not marked
> with __THROW. */
> +# ifndef __USE_TIME_BITS64
> extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
> pthread_mutex_t *__restrict
> __mutex, const struct timespec *__restrict __abstime)
> __nonnull ((1, 2, 3));
> +# else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (pthread_cond_timedwait,
> + (pthread_cond_t *__restrict __cond,
> + pthread_mutex_t *__restrict __mutex,
> + const struct timespec *__restrict __abstime),
> + __pthread_cond_timedwait64)
> + __nonnull ((1, 2, 3));
> +# else
> +# define pthread_cond_timedwait __pthread_cond_timedwait64
> +# endif
> +# endif
>
> # ifdef __USE_GNU
> /* Wait for condition variable COND to be signaled or broadcast until
> @@ -1040,11 +1145,25 @@ extern int pthread_cond_timedwait
> (pthread_cond_t *__restrict __cond,
> This function is a cancellation point and therefore not marked
> with __THROW. */
> +# ifndef __USE_TIME_BITS64
> extern int pthread_cond_clockwait (pthread_cond_t *__restrict __cond,
> pthread_mutex_t *__restrict
> __mutex, __clockid_t __clock_id,
> const struct timespec *__restrict
> __abstime) __nonnull ((1, 2, 4));
> +# else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (pthread_cond_clockwait,
> + (pthread_cond_t *__restrict __cond,
> + pthread_mutex_t *__restrict __mutex,
> + __clockid_t __clock_id,
> + const struct timespec *__restrict __abstime),
> + __pthread_cond_clockwait64)
> + __nonnull ((1, 2, 4));
> +# else
> +# define pthread_cond_clockwait __pthread_cond_clockwait64
> +# endif
> +# endif
> # endif
>
> /* Functions for handling condition variable attributes. */
> diff --git a/sysdeps/pthread/semaphore.h b/sysdeps/pthread/semaphore.h
> index 7fb0e5c103..35780e7c4e 100644
> --- a/sysdeps/pthread/semaphore.h
> +++ b/sysdeps/pthread/semaphore.h
> @@ -59,16 +59,41 @@ extern int sem_wait (sem_t *__sem) __nonnull
> ((1));
> This function is a cancellation point and therefore not marked
> with __THROW. */
> +# ifndef __USE_TIME_BITS64
> extern int sem_timedwait (sem_t *__restrict __sem,
> const struct timespec *__restrict
> __abstime) __nonnull ((1, 2));
> +# else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (sem_timedwait,
> + (sem_t *__restrict __sem,
> + const struct timespec *__restrict __abstime),
> + __sem_timedwait64)
> + __nonnull ((1, 2));
> +# else
> +# define sem_timedwait __sem_timedwait64
> +# endif
> +# endif
> #endif
>
> #ifdef __USE_GNU
> +# ifndef __USE_TIME_BITS64
> extern int sem_clockwait (sem_t *__restrict __sem,
> clockid_t clock,
> const struct timespec *__restrict
> __abstime) __nonnull ((1, 3));
> +# else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (sem_clockwait,
> + (sem_t *__restrict __sem,
> + clockid_t clock,
> + const struct timespec *__restrict __abstime),
> + __sem_clockwait64)
> + __nonnull ((1, 3));
> +# else
> +# define sem_clockwait __sem_clockwait64
> +# endif
> +# endif
> #endif
>
> /* Test whether SEM is posted. */
> diff --git a/sysdeps/pthread/threads.h b/sysdeps/pthread/threads.h
> index 46929a025e..bf251c9db4 100644
> --- a/sysdeps/pthread/threads.h
> +++ b/sysdeps/pthread/threads.h
> @@ -88,8 +88,18 @@ extern thrd_t thrd_current (void);
> __TIME_POINT. The current thread may resume if receives a
> signal. In that case, if __REMAINING is not NULL, the remaining time
> is stored in the object pointed by it. */
> +#ifndef __USE_TIME_BITS64
> extern int thrd_sleep (const struct timespec *__time_point,
> struct timespec *__remaining);
> +#else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (thrd_sleep, (const struct timespec
> *__time_point,
> + struct timespec *__remaining),
> + __thrd_sleep64);
> +# else
> +# define thrd_sleep __thrd_sleep64
> +# endif
> +#endif
>
> /* Terminate current thread execution, cleaning up any thread local
> storage and freeing resources. Returns the value specified in
> __RES. */ @@ -131,8 +141,19 @@ extern int mtx_lock (mtx_t *__mutex);
> /* Block the current thread until the mutex pointed by __MUTEX is
> unlocked or time pointed by __TIME_POINT is reached. In case the
> mutex is unlock, the current thread will not be blocked. */
> +#ifndef __USE_TIME_BITS64
> extern int mtx_timedlock (mtx_t *__restrict __mutex,
> const struct timespec *__restrict
> __time_point); +#else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (mtx_timedlock, (mtx_t *__restrict __mutex,
> + const struct timespec
> *__restrict
> + __time_point),
> + __mtx_timedlock64);
> +# else
> +# define mtx_timedlock __mtx_timedlock64
> +# endif
> +#endif
>
> /* Try to lock the mutex pointed by __MUTEX without blocking. If
> the mutex is free the current threads takes control of it, otherwise
> it returns @@ -171,9 +192,21 @@ extern int cnd_wait (cnd_t *__cond,
> mtx_t *__mutex); /* Block current thread on the condition variable
> until condition variable pointed by __COND is signaled or time
> pointed by __TIME_POINT is reached. */
> +#ifndef __USE_TIME_BITS64
> extern int cnd_timedwait (cnd_t *__restrict __cond,
> mtx_t *__restrict __mutex,
> const struct timespec *__restrict
> __time_point); +#else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (cnd_timedwait, (cnd_t *__restrict __cond,
> + mtx_t *__restrict __mutex,
> + const struct timespec
> *__restrict
> + __time_point),
> + __cnd_timedwait64);
> +# else
> +# define cnd_timedwait __cnd_timedwait64
> +# endif
> +#endif
>
> /* Destroy condition variable pointed by __cond and free all of its
> resources. */
> diff --git a/sysdeps/unix/sysv/linux/Versions
> b/sysdeps/unix/sysv/linux/Versions index 257ccbd3b4..45d31a46bc 100644
> --- a/sysdeps/unix/sysv/linux/Versions
> +++ b/sysdeps/unix/sysv/linux/Versions
> @@ -1,3 +1,4 @@
> +%include <time64-compat.h>
> libc {
> GLIBC_2.0 {
> # functions used in inline functions or macros
> @@ -168,6 +169,75 @@ libc {
> getdents64; gettid; tgkill;
> }
> GLIBC_2.32 {
> + }
> + GLIBC_2.34 {
> +%ifdef TIME64_NON_DEFAULT
> + # 64 bit time_t support
> + # io
> + __ppoll64;
> + __utime64;
> + __stat64_time64;
> + __lstat64_time64;
> + __fstat64_time64;
> + __fstatat64_time64;
> + # misc
> + __futimes64;
> + __futimesat64;
> + __lutimes64;
> + __select64;
> + __utimes64;
> + # posix
> + __nanosleep64;
> + __pselec64;
> + __wait3_time64;
> + __wait4_time64;
> + # nptl
> + __thrd_sleep64;
> + # resouces
> + __getrusage64;
> + # signal
> + __sigtimedwait64;
> + # sysvipc
> + __msgctl64;
> + __semctl64;
> + __semtimedop64;
> + __shmctl64;
> + # time
> + ___adjtimex64;
> + __adjtime64;
> + __clock_adjtime64;
> + __clock_getres64;
> + __clock_gettime64;
> + __clock_nanosleep_time64;
> + __clock_settime64;
> + __ctime64;
> + __ctime64_r;
> + __difftime64;
> + __futimens64;
> + __localtime64;
> + __localtime64_r;
> + __getitimer64;
> + __gettimeofday64;
> + __gmtime64;
> + __gmtime64_r;
> + __mktime64;
> + __nanosleep64;
> + __setitimer64;
> + __settimeofday64;
> + __time64;
> + __timegm64;
> + __timespec_get64;
> + __utimensat64;
> + __utimes64;
> + # misc
> + __ntp_gettime64;
> + __ntp_gettimex64;
> + __pselect64;
> + __recvmmsg64;
> + __sched_rr_get_interval64;
> + __timerfd_gettime64;
> + __timerfd_settime64;
> +%endif
> }
> GLIBC_PRIVATE {
> # functions used in other libraries
> @@ -182,3 +252,46 @@ libc {
> __netlink_assert_response;
> }
> }
> +
> +libpthread {
> + GLIBC_2.34 {
> +%ifdef TIME64_NON_DEFAULT
> + # 64 bit time_t support
> + __cnd_timedwait64;
> + __mtx_timedlock64;
> + __pthread_clockjoin_np64;
> + __pthread_cond_timedwait64;
> + __pthread_cond_clockwait64;
> + __pthread_mutex_timedlock64;
> + __pthread_mutex_clocklock64;
> + __pthread_rwlock_clockrdlock64;
> + __pthread_rwlock_clockwrlock64;
> + __pthread_rwlock_timedrdlock64;
> + __pthread_rwlock_timedwrlock64;
> + __pthread_timedjoin_np64;
> + __sem_clockwait64;
> + __sem_timedwait64;
> +%endif
> + }
> +}
> +
> +librt {
> + GLIBC_2.34 {
> +%ifdef TIME64_NON_DEFAULT
> + # 64 bit time_t support
> + __aio_suspend_time64;
> + __mq_timedsend_time64;
> + __mq_timedreceive_time64;
> + __timer_gettime64;
> + __timer_settime64;
> +%endif
> + }
> +}
> +
> +libanl {
> +%ifdef TIME64_NON_DEFAULT
> + GLIBC_2.34 {
> + __gai_suspend_time64;
> + }
> +%endif
> +}
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libanl.abilist
> b/sysdeps/unix/sysv/linux/arm/be/libanl.abilist index
> a8fafedb66..37f9b49e52 100644 ---
> a/sysdeps/unix/sysv/linux/arm/be/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/arm/be/libanl.abilist @@ -1,3 +1,4 @@
> +GLIBC_2.34 __gai_suspend_time64 F
> GLIBC_2.4 gai_cancel F
> GLIBC_2.4 gai_error F
> GLIBC_2.4 gai_suspend F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> b/sysdeps/unix/sysv/linux/arm/be/libc.abilist index
> 8111b49085..d63e0dee75 100644 ---
> a/sysdeps/unix/sysv/linux/arm/be/libc.abilist +++
> b/sysdeps/unix/sysv/linux/arm/be/libc.abilist @@ -155,7 +155,59 @@
> GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist index
> b6c26c7a50..3fe358cc31 100644 ---
> a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist @@ -33,6 +33,20
> @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> GLIBC_2.4 _IO_flockfile F
> GLIBC_2.4 _IO_ftrylockfile F
> GLIBC_2.4 _IO_funlockfile F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
> b/sysdeps/unix/sysv/linux/arm/be/librt.abilist index
> 3c0647b251..8cb1ed626c 100644 ---
> a/sysdeps/unix/sysv/linux/arm/be/librt.abilist +++
> b/sysdeps/unix/sysv/linux/arm/be/librt.abilist @@ -1,3 +1,8 @@
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 aio_cancel F
> GLIBC_2.4 aio_cancel64 F
> GLIBC_2.4 aio_error F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libanl.abilist
> b/sysdeps/unix/sysv/linux/arm/le/libanl.abilist index
> a8fafedb66..37f9b49e52 100644 ---
> a/sysdeps/unix/sysv/linux/arm/le/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/arm/le/libanl.abilist @@ -1,3 +1,4 @@
> +GLIBC_2.34 __gai_suspend_time64 F
> GLIBC_2.4 gai_cancel F
> GLIBC_2.4 gai_error F
> GLIBC_2.4 gai_suspend F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> b/sysdeps/unix/sysv/linux/arm/le/libc.abilist index
> 4dba1f2f46..1a0f0d1312 100644 ---
> a/sysdeps/unix/sysv/linux/arm/le/libc.abilist +++
> b/sysdeps/unix/sysv/linux/arm/le/libc.abilist @@ -152,7 +152,59 @@
> GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist index
> b6c26c7a50..3fe358cc31 100644 ---
> a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist @@ -33,6 +33,20
> @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> GLIBC_2.4 _IO_flockfile F
> GLIBC_2.4 _IO_ftrylockfile F
> GLIBC_2.4 _IO_funlockfile F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
> b/sysdeps/unix/sysv/linux/arm/le/librt.abilist index
> 3c0647b251..8cb1ed626c 100644 ---
> a/sysdeps/unix/sysv/linux/arm/le/librt.abilist +++
> b/sysdeps/unix/sysv/linux/arm/le/librt.abilist @@ -1,3 +1,8 @@
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 aio_cancel F
> GLIBC_2.4 aio_cancel64 F
> GLIBC_2.4 aio_error F
> diff --git a/sysdeps/unix/sysv/linux/arm/time64-compat.h
> b/sysdeps/unix/sysv/linux/arm/time64-compat.h new file mode 100644
> index 0000000000..700f854597
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/arm/time64-compat.h
> @@ -0,0 +1,2 @@
> +/* ABI support 64-bit in non-default mode. */
> +#define TIME64_NON_DEFAULT
> diff --git a/sysdeps/unix/sysv/linux/bits/msq.h
> b/sysdeps/unix/sysv/linux/bits/msq.h index 3313b69d78..7c9c479551
> 100644 --- a/sysdeps/unix/sysv/linux/bits/msq.h
> +++ b/sysdeps/unix/sysv/linux/bits/msq.h
> @@ -26,6 +26,7 @@ typedef __syscall_ulong_t msgqnum_t;
> typedef __syscall_ulong_t msglen_t;
>
> #include <bits/types/struct_msqid_ds.h>
> +#include <bits/types/struct_msqid64_ds.h>
>
> /* Define options for message queue functions. */
> #define MSG_NOERROR 010000 /* no error if message is
> too big */ diff --git a/sysdeps/unix/sysv/linux/bits/sem.h
> b/sysdeps/unix/sysv/linux/bits/sem.h index ad13287e66..776524b876
> 100644 --- a/sysdeps/unix/sysv/linux/bits/sem.h
> +++ b/sysdeps/unix/sysv/linux/bits/sem.h
> @@ -22,6 +22,7 @@
> #include <sys/types.h>
> #include <bits/timesize.h>
> #include <bits/types/struct_semid_ds.h>
> +#include <bits/types/struct_semid64_ds.h>
>
> /* Flags for `semop'. */
> #define SEM_UNDO 0x1000 /* undo the operation
> on exit */ diff --git a/sysdeps/unix/sysv/linux/bits/shm.h
> b/sysdeps/unix/sysv/linux/bits/shm.h index a50c79d7be..454fc3f366
> 100644 --- a/sysdeps/unix/sysv/linux/bits/shm.h
> +++ b/sysdeps/unix/sysv/linux/bits/shm.h
> @@ -43,6 +43,7 @@ __BEGIN_DECLS
> typedef __syscall_ulong_t shmatt_t;
>
> #include <bits/types/struct_shmid_ds.h>
> +#include <bits/types/struct_shmid64_ds.h>
>
> #ifdef __USE_MISC
>
> diff --git a/sysdeps/unix/sysv/linux/bits/time.h
> b/sysdeps/unix/sysv/linux/bits/time.h index ee5a8b3ef4..d0c98a7864
> 100644 --- a/sysdeps/unix/sysv/linux/bits/time.h
> +++ b/sysdeps/unix/sysv/linux/bits/time.h
> @@ -77,6 +77,16 @@ __BEGIN_DECLS
> /* Tune a POSIX clock. */
> extern int clock_adjtime (__clockid_t __clock_id, struct timex
> *__utx) __THROW;
> +#ifdef __USE_TIME_BITS64
> +# if defined(__REDIRECT_NTH)
> +extern int __REDIRECT_NTH (clock_adjtime, (__clockid_t __clock_id,
> + struct timex *__utx),
> + __clock_adjtime64);
> +# else
> +# define clock_adjtime __clock_adjtime64
> +# endif
> +#endif
> +
> __END_DECLS
> #endif /* use GNU */
>
> diff --git a/sysdeps/unix/sysv/linux/csky/libanl.abilist
> b/sysdeps/unix/sysv/linux/csky/libanl.abilist index
> 416a6f8ddb..01f2e6cbf0 100644 ---
> a/sysdeps/unix/sysv/linux/csky/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/csky/libanl.abilist @@ -2,3 +2,4 @@
> GLIBC_2.29 gai_cancel F GLIBC_2.29 gai_error F
> GLIBC_2.29 gai_suspend F
> GLIBC_2.29 getaddrinfo_a F
> +GLIBC_2.34 __gai_suspend_time64 F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist
> b/sysdeps/unix/sysv/linux/csky/libc.abilist index
> a5ff3d90ca..120a3fc1ce 100644 ---
> a/sysdeps/unix/sysv/linux/csky/libc.abilist +++
> b/sysdeps/unix/sysv/linux/csky/libc.abilist @@ -2115,7 +2115,59 @@
> GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> b/sysdeps/unix/sysv/linux/csky/libpthread.abilist index
> 6ce59276a7..51d5822091 100644 ---
> a/sysdeps/unix/sysv/linux/csky/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/csky/libpthread.abilist @@ -211,3 +211,17
> @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist
> b/sysdeps/unix/sysv/linux/csky/librt.abilist index
> c6690ef7c1..b60deca65a 100644 ---
> a/sysdeps/unix/sysv/linux/csky/librt.abilist +++
> b/sysdeps/unix/sysv/linux/csky/librt.abilist @@ -33,3 +33,8 @@
> GLIBC_2.29 timer_delete F GLIBC_2.29 timer_getoverrun F
> GLIBC_2.29 timer_gettime F
> GLIBC_2.29 timer_settime F
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> diff --git a/sysdeps/unix/sysv/linux/csky/time64-compat.h
> b/sysdeps/unix/sysv/linux/csky/time64-compat.h new file mode 100644
> index 0000000000..700f854597
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/csky/time64-compat.h
> @@ -0,0 +1,2 @@
> +/* ABI support 64-bit in non-default mode. */
> +#define TIME64_NON_DEFAULT
> diff --git a/sysdeps/unix/sysv/linux/features-time64.h
> b/sysdeps/unix/sysv/linux/features-time64.h new file mode 100644
> index 0000000000..c6a0a1874c
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/features-time64.h
> @@ -0,0 +1,37 @@
> +/* Features part to handle 64-bit time_t support.
> + Copyright (C) 2021 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be
> useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, see
> + <https://www.gnu.org/licenses/>. */
> +
> +/* We need to know the word size in order to check the time size. */
> +#include <bits/wordsize.h>
> +#include <bits/timesize.h>
> +
> +#if defined _TIME_BITS
> +# if _TIME_BITS == 64
> +# if ! defined (_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64
> +# error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
> +# elif __TIMESIZE == 32
> +# define __USE_TIME_BITS64 1
> +# endif
> +# elif _TIME_BITS == 32
> +# if __TIMESIZE > 32
> +# error "_TIME_BITS=32 is not compatible with __TIMESIZE > 32"
> +# endif
> +# else
> +# error Invalid _TIME_BITS value (can only be 32 or 64 bits)
> +# endif
> +#endif
> diff --git a/sysdeps/unix/sysv/linux/hppa/libanl.abilist
> b/sysdeps/unix/sysv/linux/hppa/libanl.abilist index
> d9a5ed015d..ff719e7605 100644 ---
> a/sysdeps/unix/sysv/linux/hppa/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/hppa/libanl.abilist @@ -2,3 +2,4 @@
> GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F
> GLIBC_2.2.3 gai_suspend F
> GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.34 __gai_suspend_time64 F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> b/sysdeps/unix/sysv/linux/hppa/libc.abilist index
> 89a0f11166..77c7d2faf3 100644 ---
> a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++
> b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -2074,7 +2074,59 @@
> GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist index
> cabc5af858..0cdb30a3c1 100644 ---
> a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist @@ -218,6 +218,20
> @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> GLIBC_2.4 pthread_mutex_consistent_np F
> GLIBC_2.4 pthread_mutex_getprioceiling F
> GLIBC_2.4 pthread_mutex_setprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist
> b/sysdeps/unix/sysv/linux/hppa/librt.abilist index
> bb03781dcc..463a88a1df 100644 ---
> a/sysdeps/unix/sysv/linux/hppa/librt.abilist +++
> b/sysdeps/unix/sysv/linux/hppa/librt.abilist @@ -32,6 +32,11 @@
> GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 lio_listio F
> GLIBC_2.4 lio_listio64 F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/hppa/time64-compat.h
> b/sysdeps/unix/sysv/linux/hppa/time64-compat.h new file mode 100644
> index 0000000000..700f854597
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/hppa/time64-compat.h
> @@ -0,0 +1,2 @@
> +/* ABI support 64-bit in non-default mode. */
> +#define TIME64_NON_DEFAULT
> diff --git a/sysdeps/unix/sysv/linux/i386/Makefile
> b/sysdeps/unix/sysv/linux/i386/Makefile index da716e2c1b..8d5efb4f65
> 100644 --- a/sysdeps/unix/sysv/linux/i386/Makefile
> +++ b/sysdeps/unix/sysv/linux/i386/Makefile
> @@ -1,6 +1,8 @@
> # The default ABI is 32.
> default-abi := 32
>
> +extra-version := Versions-y2038
> +
> ifeq ($(subdir),misc)
> sysdep_routines += ioperm iopl vm86
>
> diff --git a/sysdeps/unix/sysv/linux/i386/libanl.abilist
> b/sysdeps/unix/sysv/linux/i386/libanl.abilist index
> d9a5ed015d..ff719e7605 100644 ---
> a/sysdeps/unix/sysv/linux/i386/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/i386/libanl.abilist @@ -2,3 +2,4 @@
> GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F
> GLIBC_2.2.3 gai_suspend F
> GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.34 __gai_suspend_time64 F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist
> b/sysdeps/unix/sysv/linux/i386/libc.abilist index
> a7c408d18c..7d1a9691e7 100644 ---
> a/sysdeps/unix/sysv/linux/i386/libc.abilist +++
> b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2241,7 +2241,59 @@
> GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> b/sysdeps/unix/sysv/linux/i386/libpthread.abilist index
> 18177307c8..b3a825d60e 100644 ---
> a/sysdeps/unix/sysv/linux/i386/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/i386/libpthread.abilist @@ -226,6 +226,20
> @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> GLIBC_2.4 pthread_mutex_consistent_np F
> GLIBC_2.4 pthread_mutex_getprioceiling F
> GLIBC_2.4 pthread_mutex_setprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist
> b/sysdeps/unix/sysv/linux/i386/librt.abilist index
> bb03781dcc..463a88a1df 100644 ---
> a/sysdeps/unix/sysv/linux/i386/librt.abilist +++
> b/sysdeps/unix/sysv/linux/i386/librt.abilist @@ -32,6 +32,11 @@
> GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 lio_listio F
> GLIBC_2.4 lio_listio64 F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/i386/time64-compat.h
> b/sysdeps/unix/sysv/linux/i386/time64-compat.h new file mode 100644
> index 0000000000..700f854597
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/i386/time64-compat.h
> @@ -0,0 +1,2 @@
> +/* ABI support 64-bit in non-default mode. */
> +#define TIME64_NON_DEFAULT
> diff --git a/sysdeps/unix/sysv/linux/include/sys/msg.h
> b/sysdeps/unix/sysv/linux/include/sys/msg.h index
> 522903f818..c460be0dc9 100644 ---
> a/sysdeps/unix/sysv/linux/include/sys/msg.h +++
> b/sysdeps/unix/sysv/linux/include/sys/msg.h @@ -7,8 +7,6 @@ extern
> ssize_t __libc_msgrcv (int msqid, void *msgp, size_t msgsz, extern
> int __libc_msgsnd (int msqid, const void *msgp, size_t msgsz, int
> msgflg);
> -# include <bits/types/struct_msqid64_ds.h>
> -
> # if __TIMESIZE == 64
> # define __msgctl64 __msgctl
> # else
> diff --git a/sysdeps/unix/sysv/linux/include/sys/shm.h
> b/sysdeps/unix/sysv/linux/include/sys/shm.h index
> 530a1cdfc9..85177a632d 100644 ---
> a/sysdeps/unix/sysv/linux/include/sys/shm.h +++
> b/sysdeps/unix/sysv/linux/include/sys/shm.h @@ -3,8 +3,6 @@
>
> #ifndef _ISOMAC
>
> -# include <bits/types/struct_shmid64_ds.h>
> -
> # if __TIMESIZE == 64
> # define __shmctl64 __shmctl
> # else
> diff --git a/sysdeps/unix/sysv/linux/include/sys/timex.h
> b/sysdeps/unix/sysv/linux/include/sys/timex.h index
> e136ed172e..c554248ed9 100644 ---
> a/sysdeps/unix/sysv/linux/include/sys/timex.h +++
> b/sysdeps/unix/sysv/linux/include/sys/timex.h @@ -23,10 +23,12 @@
>
> # ifndef _ISOMAC
>
> +extern int __adjtimex (struct timex *__ntx);
> libc_hidden_proto (__adjtimex)
>
> # include <time.h>
> # include <struct___timeval64.h>
> +
> /* Local definition of 64 bit time supporting timex struct */
> # if __TIMESIZE == 64
> # define __timex64 timex
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist
> b/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist index
> a8fafedb66..37f9b49e52 100644 ---
> a/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist @@ -1,3 +1,4 @@
> +GLIBC_2.34 __gai_suspend_time64 F
> GLIBC_2.4 gai_cancel F
> GLIBC_2.4 gai_error F
> GLIBC_2.4 gai_suspend F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index
> e1171a34aa..da00a3d3c3 100644 ---
> a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++
> b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -156,7
> +156,59 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist index
> b6c26c7a50..3fe358cc31 100644 ---
> a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist @@ -33,6
> +33,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> GLIBC_2.4 _IO_flockfile F
> GLIBC_2.4 _IO_ftrylockfile F
> GLIBC_2.4 _IO_funlockfile F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
> b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist index
> 3c0647b251..8cb1ed626c 100644 ---
> a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist +++
> b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist @@ -1,3 +1,8 @@
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 aio_cancel F
> GLIBC_2.4 aio_cancel64 F
> GLIBC_2.4 aio_error F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist
> b/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist index
> d9a5ed015d..ff719e7605 100644 ---
> a/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist @@ -2,3 +2,4 @@
> GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F
> GLIBC_2.2.3 gai_suspend F
> GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.34 __gai_suspend_time64 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index
> a521506506..3e0f00210f 100644 ---
> a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++
> b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -2186,7
> +2186,59 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist index
> 18177307c8..b3a825d60e 100644 ---
> a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist @@ -226,6
> +226,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> GLIBC_2.4 pthread_mutex_consistent_np F
> GLIBC_2.4 pthread_mutex_getprioceiling F
> GLIBC_2.4 pthread_mutex_setprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
> b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist index
> bb03781dcc..463a88a1df 100644 ---
> a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist +++
> b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist @@ -32,6 +32,11
> @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 lio_listio F
> GLIBC_2.4 lio_listio64 F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/m68k/time64-compat.h
> b/sysdeps/unix/sysv/linux/m68k/time64-compat.h new file mode 100644
> index 0000000000..700f854597
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/m68k/time64-compat.h
> @@ -0,0 +1,2 @@
> +/* ABI support 64-bit in non-default mode. */
> +#define TIME64_NON_DEFAULT
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist
> b/sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist index
> 67c7554803..c06e33a1cf 100644 ---
> a/sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/microblaze/be/libanl.abilist @@ -2,3 +2,4
> @@ GLIBC_2.18 gai_cancel F GLIBC_2.18 gai_error F
> GLIBC_2.18 gai_suspend F
> GLIBC_2.18 getaddrinfo_a F
> +GLIBC_2.34 __gai_suspend_time64 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist index
> aba642460c..9bed39a8e8 100644 ---
> a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +++
> b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist @@ -2166,7
> +2166,59 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist index
> 60397187b6..855c469c63 100644 ---
> a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist @@ -218,3
> +218,17 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
> b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist index
> 889dfbc0ee..1b8fc10087 100644 ---
> a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist +++
> b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist @@ -33,3 +33,8
> @@ GLIBC_2.18 timer_delete F GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist
> b/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist index
> 67c7554803..c06e33a1cf 100644 ---
> a/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/microblaze/le/libanl.abilist @@ -2,3 +2,4
> @@ GLIBC_2.18 gai_cancel F GLIBC_2.18 gai_error F
> GLIBC_2.18 gai_suspend F
> GLIBC_2.18 getaddrinfo_a F
> +GLIBC_2.34 __gai_suspend_time64 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist index
> d3d653d144..872321bbab 100644 ---
> a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +++
> b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist @@ -2163,7
> +2163,59 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist index
> 60397187b6..855c469c63 100644 ---
> a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist @@ -218,3
> +218,17 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
> b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist index
> 889dfbc0ee..1b8fc10087 100644 ---
> a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist +++
> b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist @@ -33,3 +33,8
> @@ GLIBC_2.18 timer_delete F GLIBC_2.18 timer_getoverrun F
> GLIBC_2.18 timer_gettime F
> GLIBC_2.18 timer_settime F
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/time64-compat.h
> b/sysdeps/unix/sysv/linux/microblaze/time64-compat.h new file mode
> 100644 index 0000000000..700f854597
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/microblaze/time64-compat.h
> @@ -0,0 +1,2 @@
> +/* ABI support 64-bit in non-default mode. */
> +#define TIME64_NON_DEFAULT
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index
> a4ce56c34f..77dcc8ab7d 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -2157,7
> +2157,59 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist
> b/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist index
> d9a5ed015d..ff719e7605 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist @@ -2,3 +2,4 @@
> GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F
> GLIBC_2.2.3 gai_suspend F
> GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.34 __gai_suspend_time64 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist index
> b35d7f19ca..887a32a376 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist @@ -227,6
> +227,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> GLIBC_2.4 pthread_mutex_consistent_np F
> GLIBC_2.4 pthread_mutex_getprioceiling F
> GLIBC_2.4 pthread_mutex_setprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
> b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist index
> 1539c1cef9..c4dd28e3b2 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist @@ -32,6 +32,11
> @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 lio_listio F
> GLIBC_2.4 lio_listio64 F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index
> 51fbf0b1e1..c41f85ce01 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -2155,7
> +2155,59 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/time64-compat.h
> b/sysdeps/unix/sysv/linux/mips/mips32/time64-compat.h new file mode
> 100644 index 0000000000..700f854597
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/time64-compat.h
> @@ -0,0 +1,2 @@
> +/* ABI support 64-bit in non-default mode. */
> +#define TIME64_NON_DEFAULT
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libanl.abilist
> b/sysdeps/unix/sysv/linux/mips/mips64/n32/libanl.abilist index
> d9a5ed015d..ff719e7605 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips64/n32/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips64/n32/libanl.abilist @@ -2,3 +2,4
> @@ GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F
> GLIBC_2.2.3 gai_suspend F
> GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.34 __gai_suspend_time64 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index
> 5642781479..4208f9df82 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -2163,7
> +2163,59 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git
> a/sysdeps/unix/sysv/linux/mips/mips64/n32/libpthread.abilist
> b/sysdeps/unix/sysv/linux/mips/mips64/n32/libpthread.abilist index
> b35d7f19ca..887a32a376 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips64/n32/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips64/n32/libpthread.abilist @@
> -227,6 +227,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F GLIBC_2.31
> pthread_clockjoin_np F +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> GLIBC_2.4 pthread_mutex_consistent_np F
> GLIBC_2.4 pthread_mutex_getprioceiling F
> GLIBC_2.4 pthread_mutex_setprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
> b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist index
> 1539c1cef9..c4dd28e3b2 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist @@ -32,6
> +32,11 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 lio_listio F
> GLIBC_2.4 lio_listio64 F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/time64-compat.h
> b/sysdeps/unix/sysv/linux/mips/mips64/n32/time64-compat.h new file
> mode 100644 index 0000000000..700f854597
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/time64-compat.h
> @@ -0,0 +1,2 @@
> +/* ABI support 64-bit in non-default mode. */
> +#define TIME64_NON_DEFAULT
> diff --git a/sysdeps/unix/sysv/linux/nios2/libanl.abilist
> b/sysdeps/unix/sysv/linux/nios2/libanl.abilist index
> 6ff9c2d94e..6b080bd075 100644 ---
> a/sysdeps/unix/sysv/linux/nios2/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/nios2/libanl.abilist @@ -2,3 +2,4 @@
> GLIBC_2.21 gai_cancel F GLIBC_2.21 gai_error F
> GLIBC_2.21 gai_suspend F
> GLIBC_2.21 getaddrinfo_a F
> +GLIBC_2.34 __gai_suspend_time64 F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> b/sysdeps/unix/sysv/linux/nios2/libc.abilist index
> 848cb2e599..ff0bb57cb6 100644 ---
> a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++
> b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2204,7 +2204,59 @@
> GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist index
> 924ad6e451..18407317e6 100644 ---
> a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist @@ -218,3 +218,17
> @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist
> b/sysdeps/unix/sysv/linux/nios2/librt.abilist index
> b4ae7a2dc2..2458614125 100644 ---
> a/sysdeps/unix/sysv/linux/nios2/librt.abilist +++
> b/sysdeps/unix/sysv/linux/nios2/librt.abilist @@ -33,3 +33,8 @@
> GLIBC_2.21 timer_delete F GLIBC_2.21 timer_getoverrun F
> GLIBC_2.21 timer_gettime F
> GLIBC_2.21 timer_settime F
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> diff --git a/sysdeps/unix/sysv/linux/nios2/time64-compat.h
> b/sysdeps/unix/sysv/linux/nios2/time64-compat.h new file mode 100644
> index 0000000000..700f854597
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/nios2/time64-compat.h
> @@ -0,0 +1,2 @@
> +/* ABI support 64-bit in non-default mode. */
> +#define TIME64_NON_DEFAULT
> diff --git
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index
> 93e83fa602..57f1fe012a 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@
> -2213,7 +2213,59 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist index
> d9a5ed015d..ff719e7605 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist @@ -2,3
> +2,4 @@ GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F
> GLIBC_2.2.3 gai_suspend F
> GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.34 __gai_suspend_time64 F
> diff --git
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist index
> 13b41dafb6..711812931d 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist @@
> -228,6 +228,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F GLIBC_2.31
> pthread_clockjoin_np F +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> GLIBC_2.4 pthread_mutex_consistent_np F
> GLIBC_2.4 pthread_mutex_getprioceiling F
> GLIBC_2.4 pthread_mutex_setprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist index
> bb03781dcc..463a88a1df 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist +++
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist @@ -32,6
> +32,11 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 lio_listio F
> GLIBC_2.4 lio_listio64 F
> GLIBC_2.7 __mq_open_2 F
> diff --git
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index
> ec0b6d69b1..6c9fa9c098 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@
> -2246,7 +2246,59 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/time64-compat.h
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/time64-compat.h new file
> mode 100644 index 0000000000..700f854597 --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/time64-compat.h
> @@ -0,0 +1,2 @@
> +/* ABI support 64-bit in non-default mode. */
> +#define TIME64_NON_DEFAULT
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist
> b/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist index
> d9a5ed015d..ff719e7605 100644 ---
> a/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist @@ -2,3 +2,4 @@
> GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F
> GLIBC_2.2.3 gai_suspend F
> GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.34 __gai_suspend_time64 F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index
> 7bc5c8866b..d357619c55 100644 ---
> a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++
> b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -2211,7
> +2211,59 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 lastlog_read F
> GLIBC_2.34 lastlog_write F
> GLIBC_2.4 _IO_fprintf F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist index
> 0a60f1cca2..28db1e4b6d 100644 ---
> a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist @@ -228,6
> +228,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> GLIBC_2.4 pthread_mutex_consistent_np F
> GLIBC_2.4 pthread_mutex_getprioceiling F
> GLIBC_2.4 pthread_mutex_setprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
> b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist index
> bb03781dcc..463a88a1df 100644 ---
> a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist +++
> b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist @@ -32,6 +32,11
> @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 lio_listio F
> GLIBC_2.4 lio_listio64 F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/time64-compat.h
> b/sysdeps/unix/sysv/linux/s390/s390-32/time64-compat.h new file mode
> 100644 index 0000000000..700f854597
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/time64-compat.h
> @@ -0,0 +1,2 @@
> +/* ABI support 64-bit in non-default mode. */
> +#define TIME64_NON_DEFAULT
> diff --git a/sysdeps/unix/sysv/linux/semctl.c
> b/sysdeps/unix/sysv/linux/semctl.c index 1043b2b80d..bb2690d30f 100644
> --- a/sysdeps/unix/sysv/linux/semctl.c
> +++ b/sysdeps/unix/sysv/linux/semctl.c
> @@ -21,7 +21,6 @@
> #include <ipc_priv.h>
> #include <sysdep.h>
> #include <shlib-compat.h>
> -#include <bits/types/struct_semid64_ds.h> /* For __semid64_ds. */
> #include <linux/posix_types.h> /* For __kernel_mode_t.
> */
> /* The struct used to issue the syscall. For architectures that
> assume diff --git a/sysdeps/unix/sysv/linux/sh/be/libanl.abilist
> b/sysdeps/unix/sysv/linux/sh/be/libanl.abilist index
> d9a5ed015d..ff719e7605 100644 ---
> a/sysdeps/unix/sysv/linux/sh/be/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/sh/be/libanl.abilist @@ -2,3 +2,4 @@
> GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F
> GLIBC_2.2.3 gai_suspend F
> GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.34 __gai_suspend_time64 F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> b/sysdeps/unix/sysv/linux/sh/be/libc.abilist index
> 06143b0283..725952a763 100644 ---
> a/sysdeps/unix/sysv/linux/sh/be/libc.abilist +++
> b/sysdeps/unix/sysv/linux/sh/be/libc.abilist @@ -2081,7 +2081,59 @@
> GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist index
> cabc5af858..0cdb30a3c1 100644 ---
> a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist @@ -218,6 +218,20
> @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> GLIBC_2.4 pthread_mutex_consistent_np F
> GLIBC_2.4 pthread_mutex_getprioceiling F
> GLIBC_2.4 pthread_mutex_setprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
> b/sysdeps/unix/sysv/linux/sh/be/librt.abilist index
> bb03781dcc..463a88a1df 100644 ---
> a/sysdeps/unix/sysv/linux/sh/be/librt.abilist +++
> b/sysdeps/unix/sysv/linux/sh/be/librt.abilist @@ -32,6 +32,11 @@
> GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 lio_listio F
> GLIBC_2.4 lio_listio64 F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libanl.abilist
> b/sysdeps/unix/sysv/linux/sh/le/libanl.abilist index
> d9a5ed015d..ff719e7605 100644 ---
> a/sysdeps/unix/sysv/linux/sh/le/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/sh/le/libanl.abilist @@ -2,3 +2,4 @@
> GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F
> GLIBC_2.2.3 gai_suspend F
> GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.34 __gai_suspend_time64 F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> b/sysdeps/unix/sysv/linux/sh/le/libc.abilist index
> eab2af349b..7f07b96287 100644 ---
> a/sysdeps/unix/sysv/linux/sh/le/libc.abilist +++
> b/sysdeps/unix/sysv/linux/sh/le/libc.abilist @@ -2078,7 +2078,59 @@
> GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist index
> cabc5af858..0cdb30a3c1 100644 ---
> a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist @@ -218,6 +218,20
> @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> GLIBC_2.4 pthread_mutex_consistent_np F
> GLIBC_2.4 pthread_mutex_getprioceiling F
> GLIBC_2.4 pthread_mutex_setprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
> b/sysdeps/unix/sysv/linux/sh/le/librt.abilist index
> bb03781dcc..463a88a1df 100644 ---
> a/sysdeps/unix/sysv/linux/sh/le/librt.abilist +++
> b/sysdeps/unix/sysv/linux/sh/le/librt.abilist @@ -32,6 +32,11 @@
> GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 lio_listio F
> GLIBC_2.4 lio_listio64 F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/sh/time64-compat.h
> b/sysdeps/unix/sysv/linux/sh/time64-compat.h new file mode 100644
> index 0000000000..700f854597
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/sh/time64-compat.h
> @@ -0,0 +1,2 @@
> +/* ABI support 64-bit in non-default mode. */
> +#define TIME64_NON_DEFAULT
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist
> b/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist index
> d9a5ed015d..ff719e7605 100644 ---
> a/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist +++
> b/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist @@ -2,3 +2,4
> @@ GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F
> GLIBC_2.2.3 gai_suspend F
> GLIBC_2.2.3 getaddrinfo_a F
> +GLIBC_2.34 __gai_suspend_time64 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index
> 4783a8fa97..3b7af990d4 100644 ---
> a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++
> b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -2202,7
> +2202,59 @@ GLIBC_2.33 mknod F GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> +GLIBC_2.34 ___adjtimex64 F
> +GLIBC_2.34 __adjtime64 F
> +GLIBC_2.34 __clock_adjtime64 F
> +GLIBC_2.34 __clock_getres64 F
> +GLIBC_2.34 __clock_gettime64 F
> +GLIBC_2.34 __clock_nanosleep_time64 F
> +GLIBC_2.34 __clock_settime64 F
> +GLIBC_2.34 __ctime64 F
> +GLIBC_2.34 __ctime64_r F
> +GLIBC_2.34 __difftime64 F
> +GLIBC_2.34 __fstat64_time64 F
> +GLIBC_2.34 __fstatat64_time64 F
> +GLIBC_2.34 __futimens64 F
> +GLIBC_2.34 __futimes64 F
> +GLIBC_2.34 __futimesat64 F
> +GLIBC_2.34 __getitimer64 F
> +GLIBC_2.34 __getrusage64 F
> +GLIBC_2.34 __gettimeofday64 F
> +GLIBC_2.34 __gmtime64 F
> +GLIBC_2.34 __gmtime64_r F
> GLIBC_2.34 __libc_start_main F
> +GLIBC_2.34 __localtime64 F
> +GLIBC_2.34 __localtime64_r F
> +GLIBC_2.34 __lstat64_time64 F
> +GLIBC_2.34 __lutimes64 F
> +GLIBC_2.34 __mktime64 F
> +GLIBC_2.34 __msgctl64 F
> +GLIBC_2.34 __nanosleep64 F
> +GLIBC_2.34 __ntp_gettime64 F
> +GLIBC_2.34 __ntp_gettimex64 F
> +GLIBC_2.34 __ppoll64 F
> +GLIBC_2.34 __pselect64 F
> +GLIBC_2.34 __recvmmsg64 F
> +GLIBC_2.34 __sched_rr_get_interval64 F
> +GLIBC_2.34 __select64 F
> +GLIBC_2.34 __semctl64 F
> +GLIBC_2.34 __semtimedop64 F
> +GLIBC_2.34 __setitimer64 F
> +GLIBC_2.34 __settimeofday64 F
> +GLIBC_2.34 __shmctl64 F
> +GLIBC_2.34 __sigtimedwait64 F
> +GLIBC_2.34 __stat64_time64 F
> +GLIBC_2.34 __thrd_sleep64 F
> +GLIBC_2.34 __time64 F
> +GLIBC_2.34 __timegm64 F
> +GLIBC_2.34 __timerfd_gettime64 F
> +GLIBC_2.34 __timerfd_settime64 F
> +GLIBC_2.34 __timespec_get64 F
> +GLIBC_2.34 __utime64 F
> +GLIBC_2.34 __utimensat64 F
> +GLIBC_2.34 __utimes64 F
> +GLIBC_2.34 __wait3_time64 F
> +GLIBC_2.34 __wait4_time64 F
> GLIBC_2.34 getutent F
> GLIBC_2.34 getutent_r F
> GLIBC_2.34 getutid F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist index
> 390b6384d0..b5f763d9fd 100644 ---
> a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist +++
> b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist @@ -228,6
> +228,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F GLIBC_2.30
> pthread_rwlock_clockwrlock F GLIBC_2.30 sem_clockwait F
> GLIBC_2.31 pthread_clockjoin_np F
> +GLIBC_2.34 __cnd_timedwait64 F
> +GLIBC_2.34 __mtx_timedlock64 F
> +GLIBC_2.34 __pthread_clockjoin_np64 F
> +GLIBC_2.34 __pthread_cond_clockwait64 F
> +GLIBC_2.34 __pthread_cond_timedwait64 F
> +GLIBC_2.34 __pthread_mutex_clocklock64 F
> +GLIBC_2.34 __pthread_mutex_timedlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
> +GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
> +GLIBC_2.34 __pthread_timedjoin_np64 F
> +GLIBC_2.34 __sem_clockwait64 F
> +GLIBC_2.34 __sem_timedwait64 F
> GLIBC_2.4 pthread_mutex_consistent_np F
> GLIBC_2.4 pthread_mutex_getprioceiling F
> GLIBC_2.4 pthread_mutex_setprioceiling F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
> b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist index
> 38f0aad791..fb2769e87b 100644 ---
> a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist +++
> b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist @@ -34,6 +34,11
> @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F
> GLIBC_2.3.4 mq_timedsend F
> GLIBC_2.3.4 mq_unlink F
> +GLIBC_2.34 __aio_suspend_time64 F
> +GLIBC_2.34 __mq_timedreceive_time64 F
> +GLIBC_2.34 __mq_timedsend_time64 F
> +GLIBC_2.34 __timer_gettime64 F
> +GLIBC_2.34 __timer_settime64 F
> GLIBC_2.4 lio_listio F
> GLIBC_2.4 lio_listio64 F
> GLIBC_2.7 __mq_open_2 F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/time64-compat.h
> b/sysdeps/unix/sysv/linux/sparc/sparc32/time64-compat.h new file mode
> 100644 index 0000000000..700f854597
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/time64-compat.h
> @@ -0,0 +1,2 @@
> +/* ABI support 64-bit in non-default mode. */
> +#define TIME64_NON_DEFAULT
> diff --git a/sysdeps/unix/sysv/linux/sys/timerfd.h
> b/sysdeps/unix/sysv/linux/sys/timerfd.h index 4ad64c2259..790b9d5be6
> 100644 --- a/sysdeps/unix/sysv/linux/sys/timerfd.h
> +++ b/sysdeps/unix/sysv/linux/sys/timerfd.h
> @@ -47,9 +47,31 @@ extern int timerfd_settime (int __ufd, int __flags,
> const struct itimerspec *__utmr,
> struct itimerspec *__otmr) __THROW;
>
> +#ifdef __USE_TIME_BITS64
> +# if defined(__REDIRECT_NTH)
> +extern int __REDIRECT_NTH (timerfd_settime,
> + (int __ufd, int __flags,
> + const struct itimerspec *__restrict
> __value,
> + struct itimerspec *__restrict __ovalue),
> + __timerfd_settime64);
> +# else
> +# define timerfd_settime __timerfd_settime64
> +# endif
> +#endif
> +
> /* Return the next expiration time of UFD. */
> extern int timerfd_gettime (int __ufd, struct itimerspec *__otmr)
> __THROW;
> +#ifdef __USE_TIME_BITS64
> +# if defined(__REDIRECT_NTH)
> +extern int __REDIRECT_NTH (timerfd_gettime, (int __ufd,
> + struct itimerspec
> *__otmr),
> + __timerfd_gettime64);
> +# else
> +# define timerfd_gettime __timerfd_gettime64
> +# endif
> +#endif
> +
> __END_DECLS
>
> #endif /* sys/timerfd.h */
> diff --git a/sysdeps/unix/sysv/linux/sys/timex.h
> b/sysdeps/unix/sysv/linux/sys/timex.h index 37931ff496..298f0ca6e7
> 100644 --- a/sysdeps/unix/sysv/linux/sys/timex.h
> +++ b/sysdeps/unix/sysv/linux/sys/timex.h
> @@ -54,17 +54,33 @@ struct ntptimeval
>
> __BEGIN_DECLS
>
> -extern int __adjtimex (struct timex *__ntx) __THROW;
> +#ifndef __USE_TIME_BITS64
> extern int adjtimex (struct timex *__ntx) __THROW;
>
> -#ifdef __REDIRECT_NTH
> +# ifdef __REDIRECT_NTH
> extern int __REDIRECT_NTH (ntp_gettime, (struct ntptimeval *__ntv),
> - ntp_gettimex);
> + __ntp_gettime64);
> +# else
> +# define ntp_gettime ntp_gettimex
> +# endif
> +extern int ntp_adjtime (struct timex *__tntx) __THROW;
> #else
> -extern int ntp_gettimex (struct ntptimeval *__ntv) __THROW;
> -# define ntp_gettime ntp_gettimex
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (adjtimex, (struct timex *__ntx),
> + ___adjtimex64);
> +extern int __REDIRECT_NTH (ntp_gettime, (struct ntptimeval *__ntv),
> + __ntp_gettime64);
> +extern int __REDIRECT_NTH (ntp_gettimex, (struct ntptimeval *__ntv),
> + __ntp_gettimex64);
> +extern int __REDIRECT_NTH (ntp_adjtime, (struct timex *__ntx),
> + ___adjtimex64);
> +# else
> +# define adjtimex ___adjtimex64
> +# define ntp_adjtime ___adjtimex64
> +# define ntp_gettime __ntp_gettime64
> +# define ntp_gettimex __ntp_gettimex64
> +# endif
> #endif
> -extern int ntp_adjtime (struct timex *__tntx) __THROW;
>
> __END_DECLS
>
> diff --git a/sysvipc/sys/msg.h b/sysvipc/sys/msg.h
> index 9ddedf5e15..f31a43757d 100644
> --- a/sysvipc/sys/msg.h
> +++ b/sysvipc/sys/msg.h
> @@ -58,7 +58,17 @@ struct msgbuf
> __BEGIN_DECLS
>
> /* Message queue control operation. */
> +#ifndef __USE_TIME_BITS64
> extern int msgctl (int __msqid, int __cmd, struct msqid_ds *__buf)
> __THROW; +#else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (msgctl,
> + (int __msqid, int __cmd, struct msqid_ds
> *__buf),
> + __msgctl64);
> +# else
> +# define msgctl __msgctl64
> +# endif
> +#endif
>
> /* Get messages queue. */
> extern int msgget (key_t __key, int __msgflg) __THROW;
> diff --git a/sysvipc/sys/sem.h b/sysvipc/sys/sem.h
> index 03b65dff21..4eb4c51bbe 100644
> --- a/sysvipc/sys/sem.h
> +++ b/sysvipc/sys/sem.h
> @@ -48,7 +48,17 @@ struct sembuf
> __BEGIN_DECLS
>
> /* Semaphore control operation. */
> +#ifndef __USE_TIME_BITS64
> extern int semctl (int __semid, int __semnum, int __cmd, ...)
> __THROW; +#else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (semctl,
> + (int __semid, int __semnum, int __cmd,
> ...),
> + __semctl64);
> +# else
> +# define semctl __semctl64
> +# endif
> +#endif
>
> /* Get semaphore. */
> extern int semget (key_t __key, int __nsems, int __semflg) __THROW;
> @@ -58,8 +68,19 @@ extern int semop (int __semid, struct sembuf
> *__sops, size_t __nsops) __THROW;
> #ifdef __USE_GNU
> /* Operate on semaphore with timeout. */
> +# ifndef __USE_TIME_BITS64
> extern int semtimedop (int __semid, struct sembuf *__sops, size_t
> __nsops, const struct timespec *__timeout) __THROW;
> +# else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (semtimedop, (int __semid, struct sembuf
> *__sops,
> + size_t __nsops,
> + const struct timespec
> *__timeout),
> + __semtimedop64);
> +# else
> +# define semtimedop __semtimedop64
> +# endif
> +# endif
> #endif
>
> __END_DECLS
> diff --git a/sysvipc/sys/shm.h b/sysvipc/sys/shm.h
> index 7506ba67bf..b09e0497e6 100644
> --- a/sysvipc/sys/shm.h
> +++ b/sysvipc/sys/shm.h
> @@ -46,7 +46,17 @@ __BEGIN_DECLS
> facility. The definition is found in XPG4.2. */
>
> /* Shared memory control operation. */
> +#ifndef __USE_TIME_BITS64
> extern int shmctl (int __shmid, int __cmd, struct shmid_ds *__buf)
> __THROW; +#else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (shmctl,
> + (int __shmid, int __cmd, struct shmid_ds
> *__buf),
> + __shmctl64);
> +# else
> +# define shmctl __shmctl64
> +# endif
> +#endif
>
> /* Get shared memory segment. */
> extern int shmget (key_t __key, size_t __size, int __shmflg) __THROW;
> diff --git a/time/sys/time.h b/time/sys/time.h
> index 42f91f186b..d21411c0b4 100644
> --- a/time/sys/time.h
> +++ b/time/sys/time.h
> @@ -63,10 +63,21 @@ struct timezone
> use localtime etc. instead.
> This function itself is semi-obsolete;
> most callers should use time or clock_gettime instead. */
> +#ifndef __USE_TIME_BITS64
> extern int gettimeofday (struct timeval *__restrict __tv,
> void *__restrict __tz) __THROW __nonnull
> ((1)); +#else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (gettimeofday, (struct timeval *__restrict
> __tv,
> + void *__restrict __tz),
> + __gettimeofday64) __nonnull ((1));
> +# else
> +# define gettimeofday __gettimeofday64
> +# endif
> +#endif
>
> #ifdef __USE_MISC
> +# ifndef __USE_TIME_BITS64
> /* Set the current time of day and timezone information.
> This call is restricted to the super-user.
> Setting the timezone in this way is obsolete, but we don't yet
> @@ -82,6 +93,20 @@ extern int settimeofday (const struct timeval
> *__tv, This call is restricted to the super-user. */
> extern int adjtime (const struct timeval *__delta,
> struct timeval *__olddelta) __THROW;
> +# else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (settimeofday, (const struct timeval *__tv,
> + const struct timezone
> *__tz),
> + __settimeofday64);
> +
> +extern int __REDIRECT_NTH (adjtime, (const struct timeval *__delta,
> + struct timeval *__olddelta),
> + __adjtime64);
> +# else
> +# define settimeofday __settimeofday64
> +# define adjtime __adjtime64
> +# endif
> +# endif
> #endif
>
>
> @@ -118,6 +143,7 @@ typedef enum __itimer_which __itimer_which_t;
> typedef int __itimer_which_t;
> #endif
>
> +#ifndef __USE_TIME_BITS64
> /* Set *VALUE to the current setting of timer WHICH.
> Return 0 on success, -1 on errors. */
> extern int getitimer (__itimer_which_t __which,
> @@ -136,21 +162,66 @@ extern int setitimer (__itimer_which_t __which,
> extern int utimes (const char *__file, const struct timeval __tvp[2])
> __THROW __nonnull ((1));
>
> +#else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (getitimer, (__itimer_which_t __which,
> + struct itimerval *__value),
> + __getitimer64);
> +
> +extern int __REDIRECT_NTH (setitimer, (__itimer_which_t __which,
> + const struct itimerval
> *__restrict __new,
> + struct itimerval *__restrict
> __old),
> + __setitimer64);
> +
> +extern int __REDIRECT_NTH (utimes, (const char *__file,
> + const struct timeval __tvp[2]),
> + __utimes64) __nonnull ((1));
> +# else
> +# define getitimer __getitimer64
> +# define setitimer __setitimer64
> +# define utimes __utimes64
> +# endif
> +#endif
> +
> #ifdef __USE_MISC
> +# ifndef __USE_TIME_BITS64
> /* Same as `utimes', but does not follow symbolic links. */
> extern int lutimes (const char *__file, const struct timeval
> __tvp[2]) __THROW __nonnull ((1));
>
> /* Same as `utimes', but takes an open file descriptor instead of a
> name. */ extern int futimes (int __fd, const struct timeval
> __tvp[2]) __THROW; +# else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (lutimes, (const char *__file,
> + const struct timeval __tvp[2]),
> + __lutimes64) __nonnull ((1));
> +
> +extern int __REDIRECT_NTH (futimes, (int __fd, const struct timeval
> __tvp[2]),
> + __futimes64);
> +# else
> +# define lutimes __lutimes64
> +# define futimes __futimes64
> +# endif
> +# endif
> #endif
>
> #ifdef __USE_GNU
> +# ifndef __USE_TIME_BITS64
> /* Change the access time of FILE relative to FD to TVP[0] and the
> modification time of FILE to TVP[1]. If TVP is a null pointer,
> use the current time instead. Returns 0 on success, -1 on errors. */
> extern int futimesat (int __fd, const char *__file,
> const struct timeval __tvp[2]) __THROW;
> +# else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (futimesat, (int __fd, const char *__file,
> + const struct timeval
> __tvp[2]),
> + __futimesat64);
> +# else
> +# define futimesat __futimesat64
> +# endif
> +# endif
> #endif
>
>
> diff --git a/time/time.h b/time/time.h
> index 3bf206be0b..91b81cb1c6 100644
> --- a/time/time.h
> +++ b/time/time.h
> @@ -71,6 +71,7 @@ __BEGIN_DECLS
> The result / CLOCKS_PER_SEC is program time in seconds. */
> extern clock_t clock (void) __THROW;
>
> +#ifndef __USE_TIME_BITS64
> /* Return the current time and put it in *TIMER if TIMER is not
> NULL. */ extern time_t time (time_t *__timer) __THROW;
>
> @@ -80,7 +81,18 @@ extern double difftime (time_t __time1, time_t
> __time0)
> /* Return the `time_t' representation of TP and normalize TP. */
> extern time_t mktime (struct tm *__tp) __THROW;
> -
> +#else
> +# ifdef __REDIRECT_NTH
> +extern time_t __REDIRECT_NTH (time, (time_t *__timer), __time64);
> +extern double __REDIRECT_NTH (difftime, (time_t __time1, time_t
> __time0),
> + __difftime64) __attribute__
> ((__const__)); +extern time_t __REDIRECT_NTH (mktime, (struct tm
> *__tp), __mktime64); +# else
> +# define time __time64
> +# define difftime __difftime64
> +# define mktime __mktime64
> +# endif
> +#endif
>
> /* Format TP into S according to FORMAT.
> Write no more than MAXSIZE characters and return the number
> @@ -114,6 +126,7 @@ extern char *strptime_l (const char *__restrict
> __s, #endif
>
>
> +#ifndef __USE_TIME_BITS64
> /* Return the `struct tm' representation of *TIMER
> in Universal Coordinated Time (aka Greenwich Mean Time). */
> extern struct tm *gmtime (const time_t *__timer) __THROW;
> @@ -122,7 +135,20 @@ extern struct tm *gmtime (const time_t *__timer)
> __THROW; of *TIMER in the local timezone. */
> extern struct tm *localtime (const time_t *__timer) __THROW;
>
> +#else
> +# ifdef __REDIRECT_NTH
> +extern struct tm*__REDIRECT_NTH (gmtime, (const time_t *__timer),
> __gmtime64); +extern struct tm *__REDIRECT_NTH (localtime, (const
> time_t *__timer),
> + __localtime64);
> +# else
> +# define gmtime __gmtime64
> +# define localtime __localtime64
> +# endif
> +#endif
> +
> +
> #if defined __USE_POSIX || __GLIBC_USE (ISOC2X)
> +# ifndef __USE_TIME_BITS64
> /* Return the `struct tm' representation of *TIMER in UTC,
> using *TP to store the result. */
> extern struct tm *gmtime_r (const time_t *__restrict __timer,
> @@ -132,6 +158,20 @@ extern struct tm *gmtime_r (const time_t
> *__restrict __timer, using *TP to store the result. */
> extern struct tm *localtime_r (const time_t *__restrict __timer,
> struct tm *__restrict __tp) __THROW;
> +# else
> +# ifdef __REDIRECT_NTH
> +extern struct tm*__REDIRECT_NTH (gmtime_r, (const time_t *__restrict
> __timer,
> + struct tm *__restrict
> __tp),
> + __gmtime64_r);
> +
> +extern struct tm*__REDIRECT_NTH (localtime_r, (const time_t
> *__restrict __t,
> + struct tm *__restrict
> __tp),
> + __localtime64_r);
> +# else
> +# define gmtime_r __gmtime64_r
> +# define localtime_r __localtime_r
> +# endif
> +# endif
> #endif /* POSIX || C2X */
>
> /* Return a string of the form "Day Mon dd hh:mm:ss yyyy\n"
> @@ -139,7 +179,15 @@ extern struct tm *localtime_r (const time_t
> *__restrict __timer, extern char *asctime (const struct tm *__tp)
> __THROW;
> /* Equivalent to `asctime (localtime (timer))'. */
> +#ifndef __USE_TIME_BITS64
> extern char *ctime (const time_t *__timer) __THROW;
> +#else
> +# ifdef __REDIRECT_NTH
> +extern char *__REDIRECT_NTH (ctime, (const time_t *__timer),
> __ctime64); +# else
> +# define ctime __ctime64
> +# endif
> +#endif
>
> #if defined __USE_POSIX || __GLIBC_USE (ISOC2X)
> /* Reentrant versions of the above functions. */
> @@ -150,8 +198,18 @@ extern char *asctime_r (const struct tm
> *__restrict __tp, char *__restrict __buf) __THROW;
>
> /* Equivalent to `asctime_r (localtime_r (timer, *TMP*), buf)'. */
> +#ifndef __USE_TIME_BITS64
> extern char *ctime_r (const time_t *__restrict __timer,
> char *__restrict __buf) __THROW;
> +#else
> +# ifdef __REDIRECT_NTH
> +extern char *__REDIRECT_NTH (ctime_r, (const time_t *__restrict
> __timer,
> + char *__restrict __buf),
> __ctime64_r); +# else
> +# define ctime_r __ctime64_r
> +# endif
> +#endif
> +
> #endif /* POSIX || C2X */
>
>
> @@ -186,11 +244,19 @@ extern long int timezone;
> /* Miscellaneous functions many Unices inherited from the public
> domain localtime package. These are included only for compatibility.
> */
> +#ifndef __USE_TIME_BITS64
> /* Like `mktime', but for TP represents Universal Time, not local
> time. */ extern time_t timegm (struct tm *__tp) __THROW;
> -
> /* Another name for `mktime'. */
> extern time_t timelocal (struct tm *__tp) __THROW;
> +#else
> +# ifdef __REDIRECT_NTH
> +extern time_t __REDIRECT_NTH (timegm, (struct tm *__tp), __timegm64);
> +extern time_t __REDIRECT_NTH (timelocal, (struct tm *__tp),
> __mktime64); +# else
> +# define timegm __timegm64
> +# endif
> +#endif
>
> /* Return the number of days in YEAR. */
> extern int dysize (int __year) __THROW __attribute__ ((__const__));
> @@ -198,6 +264,7 @@ extern int dysize (int __year) __THROW
> __attribute__ ((__const__));
>
> #ifdef __USE_POSIX199309
> +# ifndef __USE_TIME_BITS64
> /* Pause execution for a number of nanoseconds.
>
> This function is a cancellation point and therefore not marked
> with @@ -205,7 +272,6 @@ extern int dysize (int __year) __THROW
> __attribute__ ((__const__)); extern int nanosleep (const struct
> timespec *__requested_time, struct timespec *__remaining);
>
> -
> /* Get resolution of clock CLOCK_ID. */
> extern int clock_getres (clockid_t __clock_id, struct timespec
> *__res) __THROW;
> @@ -215,15 +281,46 @@ extern int clock_gettime (clockid_t __clock_id,
> struct timespec *__tp) __THROW; /* Set clock CLOCK_ID to value TP. */
> extern int clock_settime (clockid_t __clock_id, const struct
> timespec *__tp) __THROW;
> +# else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (nanosleep, (const struct timespec
> *__requested_time,
> + struct timespec *__remaining),
> + __nanosleep64);
> +extern int __REDIRECT_NTH (clock_getres, (clockid_t __clock_id,
> + struct timespec *__res),
> + __clock_getres64);
> +extern int __REDIRECT_NTH (clock_gettime, (clockid_t __clock_id,
> struct
> + timespec *__tp),
> __clock_gettime64); +extern int __REDIRECT_NTH (clock_settime,
> (clockid_t __clock_id, const struct
> + timespec *__tp),
> __clock_settime64); +# else
> +# define nanosleep __nanosleep64
> +# define clock_getres __clock_getres64
> +# define clock_gettime __clock_gettime64
> +# define clock_settime __clock_settime64
> +# endif
> +# endif
> +
>
> # ifdef __USE_XOPEN2K
> /* High-resolution sleep with the specified clock.
>
> This function is a cancellation point and therefore not marked
> with __THROW. */
> +# ifndef __USE_TIME_BITS64
> extern int clock_nanosleep (clockid_t __clock_id, int __flags,
> const struct timespec *__req,
> struct timespec *__rem);
> +# else
> +# ifdef __REDIRECT
> +extern int __REDIRECT (clock_nanosleep, (clockid_t __clock_id, int
> __flags,
> + const struct timespec
> *__req,
> + struct timespec *__rem),
> + __clock_nanosleep_time64);
> +# else
> +# define clock_nanosleep __clock_nanosleep_time64
> +# endif
> +# endif
>
> /* Return clock ID for CPU-time clock. */
> extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id)
> __THROW; @@ -239,6 +336,7 @@ extern int timer_create (clockid_t
> __clock_id, extern int timer_delete (timer_t __timerid) __THROW;
>
> /* Set timer TIMERID to VALUE, returning old value in OVALUE. */
> +# ifndef __USE_TIME_BITS64
> extern int timer_settime (timer_t __timerid, int __flags,
> const struct itimerspec *__restrict
> __value, struct itimerspec *__restrict __ovalue) __THROW;
> @@ -246,6 +344,21 @@ extern int timer_settime (timer_t __timerid, int
> __flags, /* Get current value of timer TIMERID and store it in VALUE.
> */ extern int timer_gettime (timer_t __timerid, struct itimerspec
> *__value) __THROW;
> +# else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (timer_settime, (timer_t __timerid, int
> __flags,
> + const struct itimerspec *__restrict __value,
> + struct itimerspec *__restrict __ovalue),
> + __timer_settime64);
> +
> +extern int __REDIRECT_NTH (timer_gettime, (timer_t __timerid,
> + struct itimerspec
> *__value),
> + __timer_gettime64);
> +# else
> +# define timer_settime __timer_settime64
> +# define timer_gettime __timer_gettime64
> +# endif
> +# endif
>
> /* Get expiration overrun for timer TIMERID. */
> extern int timer_getoverrun (timer_t __timerid) __THROW;
> @@ -253,9 +366,18 @@ extern int timer_getoverrun (timer_t __timerid)
> __THROW;
>
> #ifdef __USE_ISOC11
> +# ifndef __USE_TIME_BITS64
> /* Set TS to calendar time based in time base BASE. */
> extern int timespec_get (struct timespec *__ts, int __base)
> __THROW __nonnull ((1));
> +# else
> +# ifdef __REDIRECT_NTH
> +extern int __REDIRECT_NTH (timespec_get, (struct timespec *__ts, int
> __base),
> + __timespec_get64) __nonnull ((1));
> +# else
> +# define timespec_get __timespec_get64
> +# endif
> +# endif
> #endif
>
>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
@@ -68,7 +68,7 @@ endif # $(AUTOCONF) = no
subdir_objs subdir_stubs subdir_testclean \
$(addprefix install-, no-libc.a bin lib data headers others)
-headers := limits.h values.h features.h gnu-versions.h \
+headers := limits.h values.h features.h features-time64.h gnu-versions.h \
bits/xopen_lim.h gnu/libc-version.h stdc-predef.h \
bits/libc-header-start.h
@@ -18,6 +18,11 @@ Major new features:
a dump of information related to IFUNC resolver operation and
glibc-hwcaps subdirectory selection.
+* Add support for 64 bit time_t for ABIs with defaults to 32 bit time_t.
+ This is enabled with the _TIME_BITS preprocessor set to 64 and only
+ supported when LFS (_FILE_OFFSET_BITS=64) is also enabled. It is only
+ enabled for Linux and the full support requires a minimum version of 5.1.
+
Deprecated and removed features, and other changes affecting compatibility:
[Add deprecations, removals and changes affecting compatibility here]
new file mode 100644
@@ -0,0 +1 @@
+#include_next <features-time64.h>
@@ -387,6 +387,8 @@
# define __USE_FILE_OFFSET64 1
#endif
+#include <features-time64.h>
+
#if defined _DEFAULT_SOURCE
# define __USE_MISC 1
#endif
@@ -63,6 +63,17 @@ extern int poll (struct pollfd *__fds, nfds_t __nfds, int __timeout);
extern int ppoll (struct pollfd *__fds, nfds_t __nfds,
const struct timespec *__timeout,
const __sigset_t *__ss);
+
+# ifdef __USE_TIME_BITS64
+# ifdef __REDIRECT
+extern int __REDIRECT (ppoll, (struct pollfd *__fds, nfds_t __nfds,
+ const struct timespec *__timeout,
+ const __sigset_t *__ss),
+ __ppoll64);
+# else
+# define ppoll __ppoll64
+# endif
+# endif
#endif
__END_DECLS
@@ -209,21 +209,51 @@ extern int stat (const char *__restrict __file,
that file descriptor FD is open on and put them in BUF. */
extern int fstat (int __fd, struct stat *__buf) __THROW __nonnull ((2));
#else
-# ifdef __REDIRECT_NTH
+# ifdef __USE_TIME_BITS64
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (stat, (const char *__restrict __file,
+ struct stat *__restrict __buf),
+ __stat64_time64)
+ __nonnull ((1, 2));
+extern int __REDIRECT_NTH (fstat, (int __fd, struct stat *__buf),
+ __fstat64_time64)
+ __nonnull ((2));
+# else
+# define stat __stat64_time64
+# define fstat __fstat64_time64
+# endif
+# else
+# ifdef __REDIRECT_NTH
extern int __REDIRECT_NTH (stat, (const char *__restrict __file,
struct stat *__restrict __buf), stat64)
__nonnull ((1, 2));
extern int __REDIRECT_NTH (fstat, (int __fd, struct stat *__buf), fstat64)
__nonnull ((2));
-# else
-# define stat stat64
-# define fstat fstat64
+# else
+# define stat stat64
+# define fstat fstat64
+# endif
# endif
#endif
#ifdef __USE_LARGEFILE64
+# ifndef __USE_TIME_BITS64
extern int stat64 (const char *__restrict __file,
struct stat64 *__restrict __buf) __THROW __nonnull ((1, 2));
extern int fstat64 (int __fd, struct stat64 *__buf) __THROW __nonnull ((2));
+# else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (stat64, (const char *__restrict __file,
+ struct stat64 *__restrict __buf),
+ __stat64_time64)
+ __nonnull ((1, 2));
+extern int __REDIRECT_NTH (fstat64, (int __fd, struct stat64 *__buf),
+ __fstat64_time64)
+ __nonnull ((2));
+# else
+# define stat64 __stat64_time64
+# define fstat64 __fstat64_time
+# endif
+# endif
#endif
#ifdef __USE_ATFILE
@@ -235,20 +265,44 @@ extern int fstatat (int __fd, const char *__restrict __file,
struct stat *__restrict __buf, int __flag)
__THROW __nonnull ((2, 3));
# else
-# ifdef __REDIRECT_NTH
+# ifdef __USE_TIME_BITS64
+# ifdef __REDIRECT_NTH
extern int __REDIRECT_NTH (fstatat, (int __fd, const char *__restrict __file,
struct stat *__restrict __buf,
int __flag),
- fstatat64) __nonnull ((2, 3));
+ __fstatat64_time64) __nonnull ((2, 3));
+# else
+# define fstatat __fstatat64_time64
+# endif
# else
-# define fstatat fstatat64
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (fstatat, (int __fd, const char *__restrict __file,
+ struct stat *__restrict __buf,
+ int __flag),
+ fstatat64) __nonnull ((2, 3));
+# else
+# define fstatat fstatat64
+# endif
# endif
# endif
# ifdef __USE_LARGEFILE64
+# ifndef __USE_TIME_BITS64
extern int fstatat64 (int __fd, const char *__restrict __file,
struct stat64 *__restrict __buf, int __flag)
__THROW __nonnull ((2, 3));
+# else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (fstatat64, (int __fd,
+ const char *__restrict __file,
+ struct stat64 *__restrict __buf,
+ int __flag),
+ __fstatat64_time64)
+ __nonnull ((2, 3));
+# else
+# define fstatat64 __fstatat64_time64
+# endif
+# endif
# endif
#endif
@@ -259,19 +313,37 @@ extern int fstatat64 (int __fd, const char *__restrict __file,
extern int lstat (const char *__restrict __file,
struct stat *__restrict __buf) __THROW __nonnull ((1, 2));
# else
-# ifdef __REDIRECT_NTH
+# ifdef __USE_TIME_BITS64
+# ifdef __REDIRECT_NTH
extern int __REDIRECT_NTH (lstat,
(const char *__restrict __file,
- struct stat *__restrict __buf), lstat64)
+ struct stat *__restrict __buf), __lstat64_time64)
__nonnull ((1, 2));
+# else
+# define lstat __lstat64_time64
+# endif
# else
-# define lstat lstat64
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (lstat,
+ (const char *__restrict __file,
+ struct stat *__restrict __buf), lstat64)
+ __nonnull ((1, 2));
+# else
+# define lstat lstat64
+# endif
# endif
# endif
# ifdef __USE_LARGEFILE64
+# ifndef __USE_TIME_BITS64
extern int lstat64 (const char *__restrict __file,
struct stat64 *__restrict __buf)
__THROW __nonnull ((1, 2));
+# else
+extern int __REDIRECT_NTH (lstat64, (const char *__restrict __file,
+ struct stat64 *__restrict __buf),
+ __lstat64_time64)
+ __nonnull ((1, 2));
+# endif
# endif
#endif
@@ -355,17 +427,38 @@ extern int mkfifoat (int __fd, const char *__path, __mode_t __mode)
#endif
#ifdef __USE_ATFILE
+# ifndef __USE_TIME_BITS64
/* Set file access and modification times relative to directory file
descriptor. */
extern int utimensat (int __fd, const char *__path,
const struct timespec __times[2],
int __flags)
__THROW __nonnull ((2));
+# else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (utimensat, (int fd, const char *__path,
+ const struct timespec __times[2],
+ int flags),
+ __utimensat64) __nonnull ((2));
+# else
+# define utimensat __utimensat64
+# endif
+# endif
#endif
#ifdef __USE_XOPEN2K8
+# ifndef __USE_TIME_BITS64
/* Set file access and modification times of the file associated with FD. */
extern int futimens (int __fd, const struct timespec __times[2]) __THROW;
+
+# else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (futimens, (int fd, const struct timespec __times[2]),
+ __futimens64);
+# else
+# define futimens __futimens64
+# endif
+# endif
#endif
#ifdef __USE_GNU
@@ -46,10 +46,21 @@ struct utimbuf
/* Set the access and modification times of FILE to those given in
*FILE_TIMES. If FILE_TIMES is NULL, set them to the current time. */
+#ifndef __USE_TIME_BITS64
extern int utime (const char *__file,
const struct utimbuf *__file_times)
__THROW __nonnull ((1));
+#else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (utime, (const char *__file,
+ const struct utimbuf *__file_times),
+ __utime64);
+# else
+# define utime __utime64
+# endif
+#endif
+
__END_DECLS
#endif /* utime.h */
@@ -165,6 +165,50 @@ This macro was introduced as part of the Large File Support extension
(LFS).
@end defvr
+@defvr Macro _TIME_BITS
+This macro determines the bit size of @code{time_t} (and therefore the
+bit size of all @code{time_t} derived types and the prototypes of all
+related functions). If @code{_TIME_BITS} is undefined, the bit size of
+@code{time_t} is architecture dependent.
+
+Possible values of @code{_TIME_BITS}:
+@enumerate
+@item
+@code{_TIME_BITS=64} and port from the outset uses 64-bit
+@code{time_t} and word size equals to @w{64 bits} (e.g. x86_64) - no
+action
+
+@item
+@code{_TIME_BITS=32} and port from the outset uses 32-bit
+@code{time_t} and word size equals to @w{64 bits} (e.g. ARM) - no
+action
+
+@item
+@code{_TIME_BITS=64} and port from the outset uses 64-bit
+@code{time_t} and word size equals to @w{32 bits} (e.g. ARC, RV32)
+- no action
+
+@item
+@code{_TIME_BITS=64} and port from the outset uses 32-bit
+@code{time_t} and word size equals to @w{32 bits} (e.g. ARM)
+- the @code{time_t} is modified to be able to hold 64-bit time.
+
+@item
+For any other use case the compile-time error is emitted.
+@end enumerate
+
+The @code{_TIME_BITS} can be only used when @code{_FILE_OFFSET_BITS=64}
+is also defined.
+
+For the point @b{4} above, calls to proper syscalls depend on the
+Linux kernel version on which the system is running. For Linux kernel
+version above @b{5.1} syscalls supporting 64-bit time are used. Otherwise,
+a fallback code is used with legacy (i.e. 32-bit) syscalls.
+
+By using this macro certain ports gain support for 64-bit time and as
+a result become immune to Y2038 problem.
+@end defvr
+
@defvr Macro _ISOC99_SOURCE
@standards{GNU, (none)}
If this macro is defined, features from ISO C99 are included. Since
@@ -98,10 +98,23 @@ __BEGIN_DECLS
This function is a cancellation point and therefore not marked with
__THROW. */
+#ifndef __USE_TIME_BITS64
extern int select (int __nfds, fd_set *__restrict __readfds,
fd_set *__restrict __writefds,
fd_set *__restrict __exceptfds,
struct timeval *__restrict __timeout);
+#else
+# ifdef __REDIRECT
+extern int __REDIRECT (select,
+ (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout),
+ __select64);
+# else
+# define select __select64
+# endif
+#endif
#ifdef __USE_XOPEN2K
/* Same as above only that the TIMEOUT value is given with higher
@@ -110,11 +123,25 @@ extern int select (int __nfds, fd_set *__restrict __readfds,
This function is a cancellation point and therefore not marked with
__THROW. */
+# ifndef __USE_TIME_BITS64
extern int pselect (int __nfds, fd_set *__restrict __readfds,
fd_set *__restrict __writefds,
fd_set *__restrict __exceptfds,
const struct timespec *__restrict __timeout,
const __sigset_t *__restrict __sigmask);
+# else
+# ifdef __REDIRECT
+extern int __REDIRECT (pselect,
+ (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ const struct timespec *__restrict __timeout,
+ const __sigset_t *__restrict __sigmask),
+ __pselect64);
+# else
+# define pselect __pselect64
+# endif
+# endif
#endif
@@ -74,8 +74,17 @@ extern int sched_get_priority_max (int __algorithm) __THROW;
extern int sched_get_priority_min (int __algorithm) __THROW;
/* Get the SCHED_RR interval for the named process. */
+#ifndef __USE_TIME_BITS64
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
-
+#else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (sched_rr_get_interval,
+ (__pid_t __pid, struct timespec *__t),
+ __sched_rr_get_interval64);
+# else
+# define sched_rr_get_interval __sched_rr_get_interval64
+# endif
+#endif
#ifdef __USE_GNU
/* Access macros for `cpu_set'. */
@@ -144,14 +144,34 @@ struct rusage;
nil, store information about the child's resource usage there. If the
WUNTRACED bit is set in OPTIONS, return status for stopped children;
otherwise don't. */
+# ifndef __USE_TIME_BITS64
extern __pid_t wait3 (int *__stat_loc, int __options,
struct rusage * __usage) __THROWNL;
+# else
+# ifdef __REDIRECT_NTHNL
+extern __pid_t __REDIRECT_NTHNL (wait3, (int *__stat_loc, int __options,
+ struct rusage * __usage),
+ __wait3_time64);
+# else
+# define wait3 __wait3_time64
+# endif
+# endif
#endif
#ifdef __USE_MISC
+# ifndef __USE_TIME_BITS64
/* PID is like waitpid. Other args are like wait3. */
extern __pid_t wait4 (__pid_t __pid, int *__stat_loc, int __options,
struct rusage *__usage) __THROWNL;
+# else
+# ifdef __REDIRECT_NTHNL
+extern __pid_t __REDIRECT_NTHNL (wait4, (__pid_t __pid, int *__stat_loc,
+ int __options, struct rusage *__usage),
+ __wait4_time64);
+# else
+# define wait4 __wait4_time64
+# endif
+# endif
#endif /* Use misc. */
@@ -701,6 +701,17 @@ extern int getaddrinfo_a (int __mode, struct gaicb *__list[__restrict_arr],
extern int gai_suspend (const struct gaicb *const __list[], int __ent,
const struct timespec *__timeout);
+# ifdef __USE_TIME_BITS64
+# if defined(__REDIRECT)
+extern int __REDIRECT (gai_suspend, (const struct gaicb *const __list[],
+ int __ent,
+ const struct timespec *__timeout),
+ __gai_suspend_time64);
+# else
+# define gai_suspend __gai_suspend_time64
+# endif
+# endif
+
/* Get the error status of the request REQ. */
extern int gai_error (struct gaicb *__req) __THROW;
@@ -88,6 +88,16 @@ extern int setrlimit64 (__rlimit_resource_t __resource,
and put it in *USAGE. Returns 0 for success, -1 for failure. */
extern int getrusage (__rusage_who_t __who, struct rusage *__usage) __THROW;
+#ifdef __USE_TIME_BITS64
+# if defined(__REDIRECT_NTH)
+extern int __REDIRECT_NTH (getrusage, (__rusage_who_t __who,
+ struct rusage *__usage),
+ __getrusage64);
+# else
+# define getrusage __getrusage64
+# endif
+#endif
+
/* Return the highest priority of any process specified by WHICH and WHO
(see above); if WHO is zero, the current process, process group, or user
(as specified by WHO) is used. A lower priority number means higher
@@ -193,12 +193,17 @@ extern __ssize_t __REDIRECT_NTH (aio_return, (struct aiocb *__aiocbp),
extern int __REDIRECT_NTH (aio_cancel,
(int __fildes, struct aiocb *__aiocbp),
aio_cancel64);
-
+# ifdef __USE_TIME_BITS64
+extern int __REDIRECT_NTH (aio_suspend,
+ (const struct aiocb *const __list[], int __nent,
+ const struct timespec *__restrict __timeout),
+ __aio_suspend_time64) __nonnull ((1));
+# else
extern int __REDIRECT_NTH (aio_suspend,
(const struct aiocb *const __list[], int __nent,
const struct timespec *__restrict __timeout),
aio_suspend64) __nonnull ((1));
-
+# endif
extern int __REDIRECT_NTH (aio_fsync,
(int __operation, struct aiocb *__aiocbp),
aio_fsync64) __nonnull ((2));
@@ -210,7 +215,11 @@ extern int __REDIRECT_NTH (aio_fsync,
# define aio_error aio_error64
# define aio_return aio_return64
# define aio_cancel aio_cancel64
-# define aio_suspend aio_suspend64
+# ifdef __USE_TIME_BITS64
+# define aio_suspend __aio_suspend_time64
+# else
+# define aio_suspend aio_suspend64
+# endif
# define aio_fsync aio_fsync64
# endif
#endif
@@ -71,6 +71,7 @@ extern int mq_send (mqd_t __mqdes, const char *__msg_ptr, size_t __msg_len,
unsigned int __msg_prio) __nonnull ((2));
#ifdef __USE_XOPEN2K
+# ifndef __USE_TIME_BITS64
/* Receive the oldest from highest priority messages in message queue
MQDES, stop waiting if ABS_TIMEOUT expires. */
extern ssize_t mq_timedreceive (mqd_t __mqdes, char *__restrict __msg_ptr,
@@ -85,6 +86,27 @@ extern int mq_timedsend (mqd_t __mqdes, const char *__msg_ptr,
size_t __msg_len, unsigned int __msg_prio,
const struct timespec *__abs_timeout)
__nonnull ((2, 5));
+# else
+# ifdef __REDIRECT
+extern int __REDIRECT (mq_timedreceive, (mqd_t __mqdes,
+ char *__restrict __msg_ptr,
+ size_t __msg_len,
+ unsigned int *__restrict __msg_prio,
+ const struct timespec *__restrict __abs_timeout),
+ __mq_timedreceive_time64)
+ __nonnull ((2, 5));
+
+extern int __REDIRECT (mq_timedsend, (mqd_t __mqdes,
+ const char *__msg_ptr, size_t __msg_len,
+ unsigned int __msg_prio,
+ const struct timespec *__abs_timeout),
+ __mq_timedsend_time64)
+ __nonnull ((2, 5));
+# else
+# define mq_timedreceive __mq_timedreceive_time64
+# define mq_timedsend __mq_timedsend_time64
+# endif
+# endif
#endif
/* Define some inlines helping to catch common problems. */
@@ -269,10 +269,23 @@ extern int sigwaitinfo (const sigset_t *__restrict __set,
This function is a cancellation point and therefore not marked with
__THROW. */
+# ifndef __USE_TIME_BITS64
extern int sigtimedwait (const sigset_t *__restrict __set,
siginfo_t *__restrict __info,
const struct timespec *__restrict __timeout)
__nonnull ((1));
+# else
+# ifdef __REDIRECT
+extern int __REDIRECT (sigtimedwait,
+ (const sigset_t *__restrict __set,
+ siginfo_t *__restrict __info,
+ const struct timespec *__restrict __timeout),
+ __sigtimedwait64)
+ __nonnull ((1));
+# else
+# define sigtimedwait __sigtimedwait64
+# endif
+# endif
/* Send signal SIG to the process PID. Associate data in VAL with the
signal. */
@@ -196,9 +196,20 @@ extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags);
This function is a cancellation point and therefore not marked with
__THROW. */
+# ifndef __USE_TIME_BITS64
extern int recvmmsg (int __fd, struct mmsghdr *__vmessages,
unsigned int __vlen, int __flags,
struct timespec *__tmo);
+# else
+# ifdef __REDIRECT
+extern int __REDIRECT (recvmmsg, (int __fd, struct mmsghdr *__vmessages,
+ unsigned int __vlen, int __flags,
+ struct timespec *__tmo),
+ __recvmmsg64);
+# else
+# define recvmmsg __recvmmsg64
+# endif
+# endif
#endif
new file mode 100644
@@ -0,0 +1,19 @@
+/* Features part to handle 64-bit time_t support. Generic version.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* The generic configuration only support _TIME_BITS=32. */
new file mode 100644
@@ -0,0 +1,3 @@
+/* Header included by Versions to generate the 64 bit time_t compat symbols.
+ Legacy ABIs with default 32 bit time support define TIME64_NON_DEFAULT to
+ generate the 64 bit symbols. */
@@ -221,6 +221,7 @@ extern int pthread_join (pthread_t __th, void **__thread_return);
the thread in *THREAD_RETURN, if THREAD_RETURN is not NULL. */
extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __THROW;
+# ifndef __USE_TIME_BITS64
/* Make calling thread wait for termination of the thread TH, but only
until TIMEOUT. The exit status of the thread is stored in
*THREAD_RETURN, if THREAD_RETURN is not NULL.
@@ -240,6 +241,23 @@ extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
extern int pthread_clockjoin_np (pthread_t __th, void **__thread_return,
clockid_t __clockid,
const struct timespec *__abstime);
+# else
+# ifdef __REDIRECT
+extern int __REDIRECT (pthread_timedjoin_np,
+ (pthread_t __th, void **__thread_return,
+ const struct timespec *__abstime),
+ __pthread_timedjoin_np64);
+
+extern int __REDIRECT (pthread_clockjoin_np,
+ (pthread_t __th, void **__thread_return,
+ clockid_t __clockid,
+ const struct timespec *__abstime),
+ __pthread_clockjoin_np64);
+# else
+# define pthread_timedjoin_np __pthread_timedjoin_np64
+# define pthread_clockjoin_np __pthread_clockjoin_np64
+# endif
+# endif
#endif
/* Indicate that the thread TH is never to be joined with PTHREAD_JOIN.
@@ -773,16 +791,39 @@ extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
#ifdef __USE_XOPEN2K
/* Wait until lock becomes available, or specified time passes. */
+# ifndef __USE_TIME_BITS64
extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
const struct timespec *__restrict
__abstime) __THROWNL __nonnull ((1, 2));
+# else
+# ifdef __REDIRECT_NTHNL
+extern int __REDIRECT_NTHNL (pthread_mutex_timedlock,
+ (pthread_mutex_t *__restrict __mutex,
+ const struct timespec *__restrict __abstime),
+ __pthread_mutex_timedlock64) __nonnull ((1, 2));
+# else
+# define pthread_mutex_timedlock __pthread_mutex_timedlock64
+# endif
+# endif
#endif
#ifdef __USE_GNU
+# ifndef __USE_TIME_BITS64
extern int pthread_mutex_clocklock (pthread_mutex_t *__restrict __mutex,
clockid_t __clockid,
const struct timespec *__restrict
__abstime) __THROWNL __nonnull ((1, 3));
+# else
+# ifdef __REDIRECT_NTHNL
+extern int __REDIRECT_NTHNL (pthread_mutex_clocklock,
+ (pthread_mutex_t *__restrict __mutex,
+ clockid_t __clockid,
+ const struct timespec *__restrict __abstime),
+ __pthread_mutex_clocklock64) __nonnull ((1, 3));
+# else
+# define pthread_mutex_clocklock __pthread_mutex_clocklock64
+# endif
+# endif
#endif
/* Unlock a mutex. */
@@ -919,16 +960,41 @@ extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
# ifdef __USE_XOPEN2K
/* Try to acquire read lock for RWLOCK or return after specfied time. */
+# ifndef __USE_TIME_BITS64
extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
const struct timespec *__restrict
__abstime) __THROWNL __nonnull ((1, 2));
+# else
+# ifdef __REDIRECT_NTHNL
+extern int __REDIRECT_NTHNL (pthread_rwlock_timedrdlock,
+ (pthread_rwlock_t *__restrict __rwlock,
+ const struct timespec *__restrict __abstime),
+ __pthread_rwlock_timedrdlock64)
+ __nonnull ((1, 2));
+# else
+# define pthread_rwlock_timedrdlock __pthread_rwlock_timedrdlock64
+# endif
+# endif
# endif
# ifdef __USE_GNU
+# ifndef __USE_TIME_BITS64
extern int pthread_rwlock_clockrdlock (pthread_rwlock_t *__restrict __rwlock,
clockid_t __clockid,
const struct timespec *__restrict
__abstime) __THROWNL __nonnull ((1, 3));
+# else
+# ifdef __REDIRECT_NTHNL
+extern int __REDIRECT_NTHNL (pthread_rwlock_clockrdlock,
+ (pthread_rwlock_t *__restrict __rwlock,
+ clockid_t __clockid,
+ const struct timespec *__restrict __abstime),
+ __pthread_rwlock_clockrdlock64)
+ __nonnull ((1, 3));
+# else
+# define pthread_rwlock_clockrdlock __pthread_rwlock_clockrdlock64
+# endif
+# endif
# endif
/* Acquire write lock for RWLOCK. */
@@ -941,16 +1007,42 @@ extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
# ifdef __USE_XOPEN2K
/* Try to acquire write lock for RWLOCK or return after specfied time. */
+# ifndef __USE_TIME_BITS64
extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
const struct timespec *__restrict
__abstime) __THROWNL __nonnull ((1, 2));
+# else
+# ifdef __REDIRECT_NTHNL
+extern int __REDIRECT_NTHNL (pthread_rwlock_timedwrlock,
+ (pthread_rwlock_t *__restrict __rwlock,
+ const struct timespec *__restrict __abstime),
+ __pthread_rwlock_timedwrlock64)
+ __nonnull ((1, 2));
+# else
+# define pthread_rwlock_timedwrlock __pthread_rwlock_timedwrlock64
+# endif
+# endif
# endif
# ifdef __USE_GNU
+# ifndef __USE_TIME_BITS64
extern int pthread_rwlock_clockwrlock (pthread_rwlock_t *__restrict __rwlock,
clockid_t __clockid,
const struct timespec *__restrict
__abstime) __THROWNL __nonnull ((1, 3));
+
+# else
+# ifdef __REDIRECT_NTHNL
+extern int __REDIRECT_NTHNL (pthread_rwlock_clockwrlock,
+ (pthread_rwlock_t *__restrict __rwlock,
+ clockid_t __clockid,
+ const struct timespec *__restrict __abstime),
+ __pthread_rwlock_clockwrlock64)
+ __nonnull ((1, 3));
+# else
+# define pthread_rwlock_clockwrlock __pthread_rwlock_clockwrlock64
+# endif
+# endif
# endif
/* Unlock RWLOCK. */
@@ -1027,10 +1119,23 @@ extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
This function is a cancellation point and therefore not marked with
__THROW. */
+# ifndef __USE_TIME_BITS64
extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
pthread_mutex_t *__restrict __mutex,
const struct timespec *__restrict __abstime)
__nonnull ((1, 2, 3));
+# else
+# ifdef __REDIRECT
+extern int __REDIRECT (pthread_cond_timedwait,
+ (pthread_cond_t *__restrict __cond,
+ pthread_mutex_t *__restrict __mutex,
+ const struct timespec *__restrict __abstime),
+ __pthread_cond_timedwait64)
+ __nonnull ((1, 2, 3));
+# else
+# define pthread_cond_timedwait __pthread_cond_timedwait64
+# endif
+# endif
# ifdef __USE_GNU
/* Wait for condition variable COND to be signaled or broadcast until
@@ -1040,11 +1145,25 @@ extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
This function is a cancellation point and therefore not marked with
__THROW. */
+# ifndef __USE_TIME_BITS64
extern int pthread_cond_clockwait (pthread_cond_t *__restrict __cond,
pthread_mutex_t *__restrict __mutex,
__clockid_t __clock_id,
const struct timespec *__restrict __abstime)
__nonnull ((1, 2, 4));
+# else
+# ifdef __REDIRECT
+extern int __REDIRECT (pthread_cond_clockwait,
+ (pthread_cond_t *__restrict __cond,
+ pthread_mutex_t *__restrict __mutex,
+ __clockid_t __clock_id,
+ const struct timespec *__restrict __abstime),
+ __pthread_cond_clockwait64)
+ __nonnull ((1, 2, 4));
+# else
+# define pthread_cond_clockwait __pthread_cond_clockwait64
+# endif
+# endif
# endif
/* Functions for handling condition variable attributes. */
@@ -59,16 +59,41 @@ extern int sem_wait (sem_t *__sem) __nonnull ((1));
This function is a cancellation point and therefore not marked with
__THROW. */
+# ifndef __USE_TIME_BITS64
extern int sem_timedwait (sem_t *__restrict __sem,
const struct timespec *__restrict __abstime)
__nonnull ((1, 2));
+# else
+# ifdef __REDIRECT
+extern int __REDIRECT (sem_timedwait,
+ (sem_t *__restrict __sem,
+ const struct timespec *__restrict __abstime),
+ __sem_timedwait64)
+ __nonnull ((1, 2));
+# else
+# define sem_timedwait __sem_timedwait64
+# endif
+# endif
#endif
#ifdef __USE_GNU
+# ifndef __USE_TIME_BITS64
extern int sem_clockwait (sem_t *__restrict __sem,
clockid_t clock,
const struct timespec *__restrict __abstime)
__nonnull ((1, 3));
+# else
+# ifdef __REDIRECT
+extern int __REDIRECT (sem_clockwait,
+ (sem_t *__restrict __sem,
+ clockid_t clock,
+ const struct timespec *__restrict __abstime),
+ __sem_clockwait64)
+ __nonnull ((1, 3));
+# else
+# define sem_clockwait __sem_clockwait64
+# endif
+# endif
#endif
/* Test whether SEM is posted. */
@@ -88,8 +88,18 @@ extern thrd_t thrd_current (void);
__TIME_POINT. The current thread may resume if receives a signal. In
that case, if __REMAINING is not NULL, the remaining time is stored in
the object pointed by it. */
+#ifndef __USE_TIME_BITS64
extern int thrd_sleep (const struct timespec *__time_point,
struct timespec *__remaining);
+#else
+# ifdef __REDIRECT
+extern int __REDIRECT (thrd_sleep, (const struct timespec *__time_point,
+ struct timespec *__remaining),
+ __thrd_sleep64);
+# else
+# define thrd_sleep __thrd_sleep64
+# endif
+#endif
/* Terminate current thread execution, cleaning up any thread local
storage and freeing resources. Returns the value specified in __RES. */
@@ -131,8 +141,19 @@ extern int mtx_lock (mtx_t *__mutex);
/* Block the current thread until the mutex pointed by __MUTEX is unlocked
or time pointed by __TIME_POINT is reached. In case the mutex is unlock,
the current thread will not be blocked. */
+#ifndef __USE_TIME_BITS64
extern int mtx_timedlock (mtx_t *__restrict __mutex,
const struct timespec *__restrict __time_point);
+#else
+# ifdef __REDIRECT
+extern int __REDIRECT (mtx_timedlock, (mtx_t *__restrict __mutex,
+ const struct timespec *__restrict
+ __time_point),
+ __mtx_timedlock64);
+# else
+# define mtx_timedlock __mtx_timedlock64
+# endif
+#endif
/* Try to lock the mutex pointed by __MUTEX without blocking. If the mutex
is free the current threads takes control of it, otherwise it returns
@@ -171,9 +192,21 @@ extern int cnd_wait (cnd_t *__cond, mtx_t *__mutex);
/* Block current thread on the condition variable until condition variable
pointed by __COND is signaled or time pointed by __TIME_POINT is
reached. */
+#ifndef __USE_TIME_BITS64
extern int cnd_timedwait (cnd_t *__restrict __cond,
mtx_t *__restrict __mutex,
const struct timespec *__restrict __time_point);
+#else
+# ifdef __REDIRECT
+extern int __REDIRECT (cnd_timedwait, (cnd_t *__restrict __cond,
+ mtx_t *__restrict __mutex,
+ const struct timespec *__restrict
+ __time_point),
+ __cnd_timedwait64);
+# else
+# define cnd_timedwait __cnd_timedwait64
+# endif
+#endif
/* Destroy condition variable pointed by __cond and free all of its
resources. */
@@ -1,3 +1,4 @@
+%include <time64-compat.h>
libc {
GLIBC_2.0 {
# functions used in inline functions or macros
@@ -168,6 +169,75 @@ libc {
getdents64; gettid; tgkill;
}
GLIBC_2.32 {
+ }
+ GLIBC_2.34 {
+%ifdef TIME64_NON_DEFAULT
+ # 64 bit time_t support
+ # io
+ __ppoll64;
+ __utime64;
+ __stat64_time64;
+ __lstat64_time64;
+ __fstat64_time64;
+ __fstatat64_time64;
+ # misc
+ __futimes64;
+ __futimesat64;
+ __lutimes64;
+ __select64;
+ __utimes64;
+ # posix
+ __nanosleep64;
+ __pselec64;
+ __wait3_time64;
+ __wait4_time64;
+ # nptl
+ __thrd_sleep64;
+ # resouces
+ __getrusage64;
+ # signal
+ __sigtimedwait64;
+ # sysvipc
+ __msgctl64;
+ __semctl64;
+ __semtimedop64;
+ __shmctl64;
+ # time
+ ___adjtimex64;
+ __adjtime64;
+ __clock_adjtime64;
+ __clock_getres64;
+ __clock_gettime64;
+ __clock_nanosleep_time64;
+ __clock_settime64;
+ __ctime64;
+ __ctime64_r;
+ __difftime64;
+ __futimens64;
+ __localtime64;
+ __localtime64_r;
+ __getitimer64;
+ __gettimeofday64;
+ __gmtime64;
+ __gmtime64_r;
+ __mktime64;
+ __nanosleep64;
+ __setitimer64;
+ __settimeofday64;
+ __time64;
+ __timegm64;
+ __timespec_get64;
+ __utimensat64;
+ __utimes64;
+ # misc
+ __ntp_gettime64;
+ __ntp_gettimex64;
+ __pselect64;
+ __recvmmsg64;
+ __sched_rr_get_interval64;
+ __timerfd_gettime64;
+ __timerfd_settime64;
+%endif
}
GLIBC_PRIVATE {
# functions used in other libraries
@@ -182,3 +252,46 @@ libc {
__netlink_assert_response;
}
}
+
+libpthread {
+ GLIBC_2.34 {
+%ifdef TIME64_NON_DEFAULT
+ # 64 bit time_t support
+ __cnd_timedwait64;
+ __mtx_timedlock64;
+ __pthread_clockjoin_np64;
+ __pthread_cond_timedwait64;
+ __pthread_cond_clockwait64;
+ __pthread_mutex_timedlock64;
+ __pthread_mutex_clocklock64;
+ __pthread_rwlock_clockrdlock64;
+ __pthread_rwlock_clockwrlock64;
+ __pthread_rwlock_timedrdlock64;
+ __pthread_rwlock_timedwrlock64;
+ __pthread_timedjoin_np64;
+ __sem_clockwait64;
+ __sem_timedwait64;
+%endif
+ }
+}
+
+librt {
+ GLIBC_2.34 {
+%ifdef TIME64_NON_DEFAULT
+ # 64 bit time_t support
+ __aio_suspend_time64;
+ __mq_timedsend_time64;
+ __mq_timedreceive_time64;
+ __timer_gettime64;
+ __timer_settime64;
+%endif
+ }
+}
+
+libanl {
+%ifdef TIME64_NON_DEFAULT
+ GLIBC_2.34 {
+ __gai_suspend_time64;
+ }
+%endif
+}
@@ -1,3 +1,4 @@
+GLIBC_2.34 __gai_suspend_time64 F
GLIBC_2.4 gai_cancel F
GLIBC_2.4 gai_error F
GLIBC_2.4 gai_suspend F
@@ -155,7 +155,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -33,6 +33,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
GLIBC_2.4 _IO_flockfile F
GLIBC_2.4 _IO_ftrylockfile F
GLIBC_2.4 _IO_funlockfile F
@@ -1,3 +1,8 @@
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 aio_cancel F
GLIBC_2.4 aio_cancel64 F
GLIBC_2.4 aio_error F
@@ -1,3 +1,4 @@
+GLIBC_2.34 __gai_suspend_time64 F
GLIBC_2.4 gai_cancel F
GLIBC_2.4 gai_error F
GLIBC_2.4 gai_suspend F
@@ -152,7 +152,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -33,6 +33,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
GLIBC_2.4 _IO_flockfile F
GLIBC_2.4 _IO_ftrylockfile F
GLIBC_2.4 _IO_funlockfile F
@@ -1,3 +1,8 @@
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 aio_cancel F
GLIBC_2.4 aio_cancel64 F
GLIBC_2.4 aio_error F
new file mode 100644
@@ -0,0 +1,2 @@
+/* ABI support 64-bit in non-default mode. */
+#define TIME64_NON_DEFAULT
@@ -26,6 +26,7 @@ typedef __syscall_ulong_t msgqnum_t;
typedef __syscall_ulong_t msglen_t;
#include <bits/types/struct_msqid_ds.h>
+#include <bits/types/struct_msqid64_ds.h>
/* Define options for message queue functions. */
#define MSG_NOERROR 010000 /* no error if message is too big */
@@ -22,6 +22,7 @@
#include <sys/types.h>
#include <bits/timesize.h>
#include <bits/types/struct_semid_ds.h>
+#include <bits/types/struct_semid64_ds.h>
/* Flags for `semop'. */
#define SEM_UNDO 0x1000 /* undo the operation on exit */
@@ -43,6 +43,7 @@ __BEGIN_DECLS
typedef __syscall_ulong_t shmatt_t;
#include <bits/types/struct_shmid_ds.h>
+#include <bits/types/struct_shmid64_ds.h>
#ifdef __USE_MISC
@@ -77,6 +77,16 @@ __BEGIN_DECLS
/* Tune a POSIX clock. */
extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW;
+#ifdef __USE_TIME_BITS64
+# if defined(__REDIRECT_NTH)
+extern int __REDIRECT_NTH (clock_adjtime, (__clockid_t __clock_id,
+ struct timex *__utx),
+ __clock_adjtime64);
+# else
+# define clock_adjtime __clock_adjtime64
+# endif
+#endif
+
__END_DECLS
#endif /* use GNU */
@@ -2,3 +2,4 @@ GLIBC_2.29 gai_cancel F
GLIBC_2.29 gai_error F
GLIBC_2.29 gai_suspend F
GLIBC_2.29 getaddrinfo_a F
+GLIBC_2.34 __gai_suspend_time64 F
@@ -2115,7 +2115,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -211,3 +211,17 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
@@ -33,3 +33,8 @@ GLIBC_2.29 timer_delete F
GLIBC_2.29 timer_getoverrun F
GLIBC_2.29 timer_gettime F
GLIBC_2.29 timer_settime F
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
new file mode 100644
@@ -0,0 +1,2 @@
+/* ABI support 64-bit in non-default mode. */
+#define TIME64_NON_DEFAULT
new file mode 100644
@@ -0,0 +1,37 @@
+/* Features part to handle 64-bit time_t support.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* We need to know the word size in order to check the time size. */
+#include <bits/wordsize.h>
+#include <bits/timesize.h>
+
+#if defined _TIME_BITS
+# if _TIME_BITS == 64
+# if ! defined (_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64
+# error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
+# elif __TIMESIZE == 32
+# define __USE_TIME_BITS64 1
+# endif
+# elif _TIME_BITS == 32
+# if __TIMESIZE > 32
+# error "_TIME_BITS=32 is not compatible with __TIMESIZE > 32"
+# endif
+# else
+# error Invalid _TIME_BITS value (can only be 32 or 64 bits)
+# endif
+#endif
@@ -2,3 +2,4 @@ GLIBC_2.2.3 gai_cancel F
GLIBC_2.2.3 gai_error F
GLIBC_2.2.3 gai_suspend F
GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.34 __gai_suspend_time64 F
@@ -2074,7 +2074,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -218,6 +218,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
@@ -32,6 +32,11 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 lio_listio F
GLIBC_2.4 lio_listio64 F
GLIBC_2.7 __mq_open_2 F
new file mode 100644
@@ -0,0 +1,2 @@
+/* ABI support 64-bit in non-default mode. */
+#define TIME64_NON_DEFAULT
@@ -1,6 +1,8 @@
# The default ABI is 32.
default-abi := 32
+extra-version := Versions-y2038
+
ifeq ($(subdir),misc)
sysdep_routines += ioperm iopl vm86
@@ -2,3 +2,4 @@ GLIBC_2.2.3 gai_cancel F
GLIBC_2.2.3 gai_error F
GLIBC_2.2.3 gai_suspend F
GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.34 __gai_suspend_time64 F
@@ -2241,7 +2241,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -226,6 +226,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
@@ -32,6 +32,11 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 lio_listio F
GLIBC_2.4 lio_listio64 F
GLIBC_2.7 __mq_open_2 F
new file mode 100644
@@ -0,0 +1,2 @@
+/* ABI support 64-bit in non-default mode. */
+#define TIME64_NON_DEFAULT
@@ -7,8 +7,6 @@ extern ssize_t __libc_msgrcv (int msqid, void *msgp, size_t msgsz,
extern int __libc_msgsnd (int msqid, const void *msgp, size_t msgsz,
int msgflg);
-# include <bits/types/struct_msqid64_ds.h>
-
# if __TIMESIZE == 64
# define __msgctl64 __msgctl
# else
@@ -3,8 +3,6 @@
#ifndef _ISOMAC
-# include <bits/types/struct_shmid64_ds.h>
-
# if __TIMESIZE == 64
# define __shmctl64 __shmctl
# else
@@ -23,10 +23,12 @@
# ifndef _ISOMAC
+extern int __adjtimex (struct timex *__ntx);
libc_hidden_proto (__adjtimex)
# include <time.h>
# include <struct___timeval64.h>
+
/* Local definition of 64 bit time supporting timex struct */
# if __TIMESIZE == 64
# define __timex64 timex
@@ -1,3 +1,4 @@
+GLIBC_2.34 __gai_suspend_time64 F
GLIBC_2.4 gai_cancel F
GLIBC_2.4 gai_error F
GLIBC_2.4 gai_suspend F
@@ -156,7 +156,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -33,6 +33,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
GLIBC_2.4 _IO_flockfile F
GLIBC_2.4 _IO_ftrylockfile F
GLIBC_2.4 _IO_funlockfile F
@@ -1,3 +1,8 @@
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 aio_cancel F
GLIBC_2.4 aio_cancel64 F
GLIBC_2.4 aio_error F
@@ -2,3 +2,4 @@ GLIBC_2.2.3 gai_cancel F
GLIBC_2.2.3 gai_error F
GLIBC_2.2.3 gai_suspend F
GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.34 __gai_suspend_time64 F
@@ -2186,7 +2186,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -226,6 +226,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
@@ -32,6 +32,11 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 lio_listio F
GLIBC_2.4 lio_listio64 F
GLIBC_2.7 __mq_open_2 F
new file mode 100644
@@ -0,0 +1,2 @@
+/* ABI support 64-bit in non-default mode. */
+#define TIME64_NON_DEFAULT
@@ -2,3 +2,4 @@ GLIBC_2.18 gai_cancel F
GLIBC_2.18 gai_error F
GLIBC_2.18 gai_suspend F
GLIBC_2.18 getaddrinfo_a F
+GLIBC_2.34 __gai_suspend_time64 F
@@ -2166,7 +2166,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -218,3 +218,17 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
@@ -33,3 +33,8 @@ GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timer_gettime F
GLIBC_2.18 timer_settime F
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
@@ -2,3 +2,4 @@ GLIBC_2.18 gai_cancel F
GLIBC_2.18 gai_error F
GLIBC_2.18 gai_suspend F
GLIBC_2.18 getaddrinfo_a F
+GLIBC_2.34 __gai_suspend_time64 F
@@ -2163,7 +2163,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -218,3 +218,17 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
@@ -33,3 +33,8 @@ GLIBC_2.18 timer_delete F
GLIBC_2.18 timer_getoverrun F
GLIBC_2.18 timer_gettime F
GLIBC_2.18 timer_settime F
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
new file mode 100644
@@ -0,0 +1,2 @@
+/* ABI support 64-bit in non-default mode. */
+#define TIME64_NON_DEFAULT
@@ -2157,7 +2157,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -2,3 +2,4 @@ GLIBC_2.2.3 gai_cancel F
GLIBC_2.2.3 gai_error F
GLIBC_2.2.3 gai_suspend F
GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.34 __gai_suspend_time64 F
@@ -227,6 +227,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
@@ -32,6 +32,11 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 lio_listio F
GLIBC_2.4 lio_listio64 F
GLIBC_2.7 __mq_open_2 F
@@ -2155,7 +2155,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
new file mode 100644
@@ -0,0 +1,2 @@
+/* ABI support 64-bit in non-default mode. */
+#define TIME64_NON_DEFAULT
@@ -2,3 +2,4 @@ GLIBC_2.2.3 gai_cancel F
GLIBC_2.2.3 gai_error F
GLIBC_2.2.3 gai_suspend F
GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.34 __gai_suspend_time64 F
@@ -2163,7 +2163,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -227,6 +227,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
@@ -32,6 +32,11 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 lio_listio F
GLIBC_2.4 lio_listio64 F
GLIBC_2.7 __mq_open_2 F
new file mode 100644
@@ -0,0 +1,2 @@
+/* ABI support 64-bit in non-default mode. */
+#define TIME64_NON_DEFAULT
@@ -2,3 +2,4 @@ GLIBC_2.21 gai_cancel F
GLIBC_2.21 gai_error F
GLIBC_2.21 gai_suspend F
GLIBC_2.21 getaddrinfo_a F
+GLIBC_2.34 __gai_suspend_time64 F
@@ -2204,7 +2204,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -218,3 +218,17 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
@@ -33,3 +33,8 @@ GLIBC_2.21 timer_delete F
GLIBC_2.21 timer_getoverrun F
GLIBC_2.21 timer_gettime F
GLIBC_2.21 timer_settime F
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
new file mode 100644
@@ -0,0 +1,2 @@
+/* ABI support 64-bit in non-default mode. */
+#define TIME64_NON_DEFAULT
@@ -2213,7 +2213,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -2,3 +2,4 @@ GLIBC_2.2.3 gai_cancel F
GLIBC_2.2.3 gai_error F
GLIBC_2.2.3 gai_suspend F
GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.34 __gai_suspend_time64 F
@@ -228,6 +228,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
@@ -32,6 +32,11 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 lio_listio F
GLIBC_2.4 lio_listio64 F
GLIBC_2.7 __mq_open_2 F
@@ -2246,7 +2246,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
new file mode 100644
@@ -0,0 +1,2 @@
+/* ABI support 64-bit in non-default mode. */
+#define TIME64_NON_DEFAULT
@@ -2,3 +2,4 @@ GLIBC_2.2.3 gai_cancel F
GLIBC_2.2.3 gai_error F
GLIBC_2.2.3 gai_suspend F
GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.34 __gai_suspend_time64 F
@@ -2211,7 +2211,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 lastlog_read F
GLIBC_2.34 lastlog_write F
GLIBC_2.4 _IO_fprintf F
@@ -228,6 +228,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
@@ -32,6 +32,11 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 lio_listio F
GLIBC_2.4 lio_listio64 F
GLIBC_2.7 __mq_open_2 F
new file mode 100644
@@ -0,0 +1,2 @@
+/* ABI support 64-bit in non-default mode. */
+#define TIME64_NON_DEFAULT
@@ -21,7 +21,6 @@
#include <ipc_priv.h>
#include <sysdep.h>
#include <shlib-compat.h>
-#include <bits/types/struct_semid64_ds.h> /* For __semid64_ds. */
#include <linux/posix_types.h> /* For __kernel_mode_t. */
/* The struct used to issue the syscall. For architectures that assume
@@ -2,3 +2,4 @@ GLIBC_2.2.3 gai_cancel F
GLIBC_2.2.3 gai_error F
GLIBC_2.2.3 gai_suspend F
GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.34 __gai_suspend_time64 F
@@ -2081,7 +2081,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -218,6 +218,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
@@ -32,6 +32,11 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 lio_listio F
GLIBC_2.4 lio_listio64 F
GLIBC_2.7 __mq_open_2 F
@@ -2,3 +2,4 @@ GLIBC_2.2.3 gai_cancel F
GLIBC_2.2.3 gai_error F
GLIBC_2.2.3 gai_suspend F
GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.34 __gai_suspend_time64 F
@@ -2078,7 +2078,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -218,6 +218,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
@@ -32,6 +32,11 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 lio_listio F
GLIBC_2.4 lio_listio64 F
GLIBC_2.7 __mq_open_2 F
new file mode 100644
@@ -0,0 +1,2 @@
+/* ABI support 64-bit in non-default mode. */
+#define TIME64_NON_DEFAULT
@@ -2,3 +2,4 @@ GLIBC_2.2.3 gai_cancel F
GLIBC_2.2.3 gai_error F
GLIBC_2.2.3 gai_suspend F
GLIBC_2.2.3 getaddrinfo_a F
+GLIBC_2.34 __gai_suspend_time64 F
@@ -2202,7 +2202,59 @@ GLIBC_2.33 mknod F
GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
+GLIBC_2.34 ___adjtimex64 F
+GLIBC_2.34 __adjtime64 F
+GLIBC_2.34 __clock_adjtime64 F
+GLIBC_2.34 __clock_getres64 F
+GLIBC_2.34 __clock_gettime64 F
+GLIBC_2.34 __clock_nanosleep_time64 F
+GLIBC_2.34 __clock_settime64 F
+GLIBC_2.34 __ctime64 F
+GLIBC_2.34 __ctime64_r F
+GLIBC_2.34 __difftime64 F
+GLIBC_2.34 __fstat64_time64 F
+GLIBC_2.34 __fstatat64_time64 F
+GLIBC_2.34 __futimens64 F
+GLIBC_2.34 __futimes64 F
+GLIBC_2.34 __futimesat64 F
+GLIBC_2.34 __getitimer64 F
+GLIBC_2.34 __getrusage64 F
+GLIBC_2.34 __gettimeofday64 F
+GLIBC_2.34 __gmtime64 F
+GLIBC_2.34 __gmtime64_r F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 __localtime64 F
+GLIBC_2.34 __localtime64_r F
+GLIBC_2.34 __lstat64_time64 F
+GLIBC_2.34 __lutimes64 F
+GLIBC_2.34 __mktime64 F
+GLIBC_2.34 __msgctl64 F
+GLIBC_2.34 __nanosleep64 F
+GLIBC_2.34 __ntp_gettime64 F
+GLIBC_2.34 __ntp_gettimex64 F
+GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __pselect64 F
+GLIBC_2.34 __recvmmsg64 F
+GLIBC_2.34 __sched_rr_get_interval64 F
+GLIBC_2.34 __select64 F
+GLIBC_2.34 __semctl64 F
+GLIBC_2.34 __semtimedop64 F
+GLIBC_2.34 __setitimer64 F
+GLIBC_2.34 __settimeofday64 F
+GLIBC_2.34 __shmctl64 F
+GLIBC_2.34 __sigtimedwait64 F
+GLIBC_2.34 __stat64_time64 F
+GLIBC_2.34 __thrd_sleep64 F
+GLIBC_2.34 __time64 F
+GLIBC_2.34 __timegm64 F
+GLIBC_2.34 __timerfd_gettime64 F
+GLIBC_2.34 __timerfd_settime64 F
+GLIBC_2.34 __timespec_get64 F
+GLIBC_2.34 __utime64 F
+GLIBC_2.34 __utimensat64 F
+GLIBC_2.34 __utimes64 F
+GLIBC_2.34 __wait3_time64 F
+GLIBC_2.34 __wait4_time64 F
GLIBC_2.34 getutent F
GLIBC_2.34 getutent_r F
GLIBC_2.34 getutid F
@@ -228,6 +228,20 @@ GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.31 pthread_clockjoin_np F
+GLIBC_2.34 __cnd_timedwait64 F
+GLIBC_2.34 __mtx_timedlock64 F
+GLIBC_2.34 __pthread_clockjoin_np64 F
+GLIBC_2.34 __pthread_cond_clockwait64 F
+GLIBC_2.34 __pthread_cond_timedwait64 F
+GLIBC_2.34 __pthread_mutex_clocklock64 F
+GLIBC_2.34 __pthread_mutex_timedlock64 F
+GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
+GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
+GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
+GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
+GLIBC_2.34 __pthread_timedjoin_np64 F
+GLIBC_2.34 __sem_clockwait64 F
+GLIBC_2.34 __sem_timedwait64 F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
@@ -34,6 +34,11 @@ GLIBC_2.3.4 mq_setattr F
GLIBC_2.3.4 mq_timedreceive F
GLIBC_2.3.4 mq_timedsend F
GLIBC_2.3.4 mq_unlink F
+GLIBC_2.34 __aio_suspend_time64 F
+GLIBC_2.34 __mq_timedreceive_time64 F
+GLIBC_2.34 __mq_timedsend_time64 F
+GLIBC_2.34 __timer_gettime64 F
+GLIBC_2.34 __timer_settime64 F
GLIBC_2.4 lio_listio F
GLIBC_2.4 lio_listio64 F
GLIBC_2.7 __mq_open_2 F
new file mode 100644
@@ -0,0 +1,2 @@
+/* ABI support 64-bit in non-default mode. */
+#define TIME64_NON_DEFAULT
@@ -47,9 +47,31 @@ extern int timerfd_settime (int __ufd, int __flags,
const struct itimerspec *__utmr,
struct itimerspec *__otmr) __THROW;
+#ifdef __USE_TIME_BITS64
+# if defined(__REDIRECT_NTH)
+extern int __REDIRECT_NTH (timerfd_settime,
+ (int __ufd, int __flags,
+ const struct itimerspec *__restrict __value,
+ struct itimerspec *__restrict __ovalue),
+ __timerfd_settime64);
+# else
+# define timerfd_settime __timerfd_settime64
+# endif
+#endif
+
/* Return the next expiration time of UFD. */
extern int timerfd_gettime (int __ufd, struct itimerspec *__otmr) __THROW;
+#ifdef __USE_TIME_BITS64
+# if defined(__REDIRECT_NTH)
+extern int __REDIRECT_NTH (timerfd_gettime, (int __ufd,
+ struct itimerspec *__otmr),
+ __timerfd_gettime64);
+# else
+# define timerfd_gettime __timerfd_gettime64
+# endif
+#endif
+
__END_DECLS
#endif /* sys/timerfd.h */
@@ -54,17 +54,33 @@ struct ntptimeval
__BEGIN_DECLS
-extern int __adjtimex (struct timex *__ntx) __THROW;
+#ifndef __USE_TIME_BITS64
extern int adjtimex (struct timex *__ntx) __THROW;
-#ifdef __REDIRECT_NTH
+# ifdef __REDIRECT_NTH
extern int __REDIRECT_NTH (ntp_gettime, (struct ntptimeval *__ntv),
- ntp_gettimex);
+ __ntp_gettime64);
+# else
+# define ntp_gettime ntp_gettimex
+# endif
+extern int ntp_adjtime (struct timex *__tntx) __THROW;
#else
-extern int ntp_gettimex (struct ntptimeval *__ntv) __THROW;
-# define ntp_gettime ntp_gettimex
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (adjtimex, (struct timex *__ntx),
+ ___adjtimex64);
+extern int __REDIRECT_NTH (ntp_gettime, (struct ntptimeval *__ntv),
+ __ntp_gettime64);
+extern int __REDIRECT_NTH (ntp_gettimex, (struct ntptimeval *__ntv),
+ __ntp_gettimex64);
+extern int __REDIRECT_NTH (ntp_adjtime, (struct timex *__ntx),
+ ___adjtimex64);
+# else
+# define adjtimex ___adjtimex64
+# define ntp_adjtime ___adjtimex64
+# define ntp_gettime __ntp_gettime64
+# define ntp_gettimex __ntp_gettimex64
+# endif
#endif
-extern int ntp_adjtime (struct timex *__tntx) __THROW;
__END_DECLS
@@ -58,7 +58,17 @@ struct msgbuf
__BEGIN_DECLS
/* Message queue control operation. */
+#ifndef __USE_TIME_BITS64
extern int msgctl (int __msqid, int __cmd, struct msqid_ds *__buf) __THROW;
+#else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (msgctl,
+ (int __msqid, int __cmd, struct msqid_ds *__buf),
+ __msgctl64);
+# else
+# define msgctl __msgctl64
+# endif
+#endif
/* Get messages queue. */
extern int msgget (key_t __key, int __msgflg) __THROW;
@@ -48,7 +48,17 @@ struct sembuf
__BEGIN_DECLS
/* Semaphore control operation. */
+#ifndef __USE_TIME_BITS64
extern int semctl (int __semid, int __semnum, int __cmd, ...) __THROW;
+#else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (semctl,
+ (int __semid, int __semnum, int __cmd, ...),
+ __semctl64);
+# else
+# define semctl __semctl64
+# endif
+#endif
/* Get semaphore. */
extern int semget (key_t __key, int __nsems, int __semflg) __THROW;
@@ -58,8 +68,19 @@ extern int semop (int __semid, struct sembuf *__sops, size_t __nsops) __THROW;
#ifdef __USE_GNU
/* Operate on semaphore with timeout. */
+# ifndef __USE_TIME_BITS64
extern int semtimedop (int __semid, struct sembuf *__sops, size_t __nsops,
const struct timespec *__timeout) __THROW;
+# else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (semtimedop, (int __semid, struct sembuf *__sops,
+ size_t __nsops,
+ const struct timespec *__timeout),
+ __semtimedop64);
+# else
+# define semtimedop __semtimedop64
+# endif
+# endif
#endif
__END_DECLS
@@ -46,7 +46,17 @@ __BEGIN_DECLS
facility. The definition is found in XPG4.2. */
/* Shared memory control operation. */
+#ifndef __USE_TIME_BITS64
extern int shmctl (int __shmid, int __cmd, struct shmid_ds *__buf) __THROW;
+#else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (shmctl,
+ (int __shmid, int __cmd, struct shmid_ds *__buf),
+ __shmctl64);
+# else
+# define shmctl __shmctl64
+# endif
+#endif
/* Get shared memory segment. */
extern int shmget (key_t __key, size_t __size, int __shmflg) __THROW;
@@ -63,10 +63,21 @@ struct timezone
use localtime etc. instead.
This function itself is semi-obsolete;
most callers should use time or clock_gettime instead. */
+#ifndef __USE_TIME_BITS64
extern int gettimeofday (struct timeval *__restrict __tv,
void *__restrict __tz) __THROW __nonnull ((1));
+#else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (gettimeofday, (struct timeval *__restrict __tv,
+ void *__restrict __tz),
+ __gettimeofday64) __nonnull ((1));
+# else
+# define gettimeofday __gettimeofday64
+# endif
+#endif
#ifdef __USE_MISC
+# ifndef __USE_TIME_BITS64
/* Set the current time of day and timezone information.
This call is restricted to the super-user.
Setting the timezone in this way is obsolete, but we don't yet
@@ -82,6 +93,20 @@ extern int settimeofday (const struct timeval *__tv,
This call is restricted to the super-user. */
extern int adjtime (const struct timeval *__delta,
struct timeval *__olddelta) __THROW;
+# else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (settimeofday, (const struct timeval *__tv,
+ const struct timezone *__tz),
+ __settimeofday64);
+
+extern int __REDIRECT_NTH (adjtime, (const struct timeval *__delta,
+ struct timeval *__olddelta),
+ __adjtime64);
+# else
+# define settimeofday __settimeofday64
+# define adjtime __adjtime64
+# endif
+# endif
#endif
@@ -118,6 +143,7 @@ typedef enum __itimer_which __itimer_which_t;
typedef int __itimer_which_t;
#endif
+#ifndef __USE_TIME_BITS64
/* Set *VALUE to the current setting of timer WHICH.
Return 0 on success, -1 on errors. */
extern int getitimer (__itimer_which_t __which,
@@ -136,21 +162,66 @@ extern int setitimer (__itimer_which_t __which,
extern int utimes (const char *__file, const struct timeval __tvp[2])
__THROW __nonnull ((1));
+#else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (getitimer, (__itimer_which_t __which,
+ struct itimerval *__value),
+ __getitimer64);
+
+extern int __REDIRECT_NTH (setitimer, (__itimer_which_t __which,
+ const struct itimerval *__restrict __new,
+ struct itimerval *__restrict __old),
+ __setitimer64);
+
+extern int __REDIRECT_NTH (utimes, (const char *__file,
+ const struct timeval __tvp[2]),
+ __utimes64) __nonnull ((1));
+# else
+# define getitimer __getitimer64
+# define setitimer __setitimer64
+# define utimes __utimes64
+# endif
+#endif
+
#ifdef __USE_MISC
+# ifndef __USE_TIME_BITS64
/* Same as `utimes', but does not follow symbolic links. */
extern int lutimes (const char *__file, const struct timeval __tvp[2])
__THROW __nonnull ((1));
/* Same as `utimes', but takes an open file descriptor instead of a name. */
extern int futimes (int __fd, const struct timeval __tvp[2]) __THROW;
+# else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (lutimes, (const char *__file,
+ const struct timeval __tvp[2]),
+ __lutimes64) __nonnull ((1));
+
+extern int __REDIRECT_NTH (futimes, (int __fd, const struct timeval __tvp[2]),
+ __futimes64);
+# else
+# define lutimes __lutimes64
+# define futimes __futimes64
+# endif
+# endif
#endif
#ifdef __USE_GNU
+# ifndef __USE_TIME_BITS64
/* Change the access time of FILE relative to FD to TVP[0] and the
modification time of FILE to TVP[1]. If TVP is a null pointer, use
the current time instead. Returns 0 on success, -1 on errors. */
extern int futimesat (int __fd, const char *__file,
const struct timeval __tvp[2]) __THROW;
+# else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (futimesat, (int __fd, const char *__file,
+ const struct timeval __tvp[2]),
+ __futimesat64);
+# else
+# define futimesat __futimesat64
+# endif
+# endif
#endif
@@ -71,6 +71,7 @@ __BEGIN_DECLS
The result / CLOCKS_PER_SEC is program time in seconds. */
extern clock_t clock (void) __THROW;
+#ifndef __USE_TIME_BITS64
/* Return the current time and put it in *TIMER if TIMER is not NULL. */
extern time_t time (time_t *__timer) __THROW;
@@ -80,7 +81,18 @@ extern double difftime (time_t __time1, time_t __time0)
/* Return the `time_t' representation of TP and normalize TP. */
extern time_t mktime (struct tm *__tp) __THROW;
-
+#else
+# ifdef __REDIRECT_NTH
+extern time_t __REDIRECT_NTH (time, (time_t *__timer), __time64);
+extern double __REDIRECT_NTH (difftime, (time_t __time1, time_t __time0),
+ __difftime64) __attribute__ ((__const__));
+extern time_t __REDIRECT_NTH (mktime, (struct tm *__tp), __mktime64);
+# else
+# define time __time64
+# define difftime __difftime64
+# define mktime __mktime64
+# endif
+#endif
/* Format TP into S according to FORMAT.
Write no more than MAXSIZE characters and return the number
@@ -114,6 +126,7 @@ extern char *strptime_l (const char *__restrict __s,
#endif
+#ifndef __USE_TIME_BITS64
/* Return the `struct tm' representation of *TIMER
in Universal Coordinated Time (aka Greenwich Mean Time). */
extern struct tm *gmtime (const time_t *__timer) __THROW;
@@ -122,7 +135,20 @@ extern struct tm *gmtime (const time_t *__timer) __THROW;
of *TIMER in the local timezone. */
extern struct tm *localtime (const time_t *__timer) __THROW;
+#else
+# ifdef __REDIRECT_NTH
+extern struct tm*__REDIRECT_NTH (gmtime, (const time_t *__timer), __gmtime64);
+extern struct tm *__REDIRECT_NTH (localtime, (const time_t *__timer),
+ __localtime64);
+# else
+# define gmtime __gmtime64
+# define localtime __localtime64
+# endif
+#endif
+
+
#if defined __USE_POSIX || __GLIBC_USE (ISOC2X)
+# ifndef __USE_TIME_BITS64
/* Return the `struct tm' representation of *TIMER in UTC,
using *TP to store the result. */
extern struct tm *gmtime_r (const time_t *__restrict __timer,
@@ -132,6 +158,20 @@ extern struct tm *gmtime_r (const time_t *__restrict __timer,
using *TP to store the result. */
extern struct tm *localtime_r (const time_t *__restrict __timer,
struct tm *__restrict __tp) __THROW;
+# else
+# ifdef __REDIRECT_NTH
+extern struct tm*__REDIRECT_NTH (gmtime_r, (const time_t *__restrict __timer,
+ struct tm *__restrict __tp),
+ __gmtime64_r);
+
+extern struct tm*__REDIRECT_NTH (localtime_r, (const time_t *__restrict __t,
+ struct tm *__restrict __tp),
+ __localtime64_r);
+# else
+# define gmtime_r __gmtime64_r
+# define localtime_r __localtime_r
+# endif
+# endif
#endif /* POSIX || C2X */
/* Return a string of the form "Day Mon dd hh:mm:ss yyyy\n"
@@ -139,7 +179,15 @@ extern struct tm *localtime_r (const time_t *__restrict __timer,
extern char *asctime (const struct tm *__tp) __THROW;
/* Equivalent to `asctime (localtime (timer))'. */
+#ifndef __USE_TIME_BITS64
extern char *ctime (const time_t *__timer) __THROW;
+#else
+# ifdef __REDIRECT_NTH
+extern char *__REDIRECT_NTH (ctime, (const time_t *__timer), __ctime64);
+# else
+# define ctime __ctime64
+# endif
+#endif
#if defined __USE_POSIX || __GLIBC_USE (ISOC2X)
/* Reentrant versions of the above functions. */
@@ -150,8 +198,18 @@ extern char *asctime_r (const struct tm *__restrict __tp,
char *__restrict __buf) __THROW;
/* Equivalent to `asctime_r (localtime_r (timer, *TMP*), buf)'. */
+#ifndef __USE_TIME_BITS64
extern char *ctime_r (const time_t *__restrict __timer,
char *__restrict __buf) __THROW;
+#else
+# ifdef __REDIRECT_NTH
+extern char *__REDIRECT_NTH (ctime_r, (const time_t *__restrict __timer,
+ char *__restrict __buf), __ctime64_r);
+# else
+# define ctime_r __ctime64_r
+# endif
+#endif
+
#endif /* POSIX || C2X */
@@ -186,11 +244,19 @@ extern long int timezone;
/* Miscellaneous functions many Unices inherited from the public domain
localtime package. These are included only for compatibility. */
+#ifndef __USE_TIME_BITS64
/* Like `mktime', but for TP represents Universal Time, not local time. */
extern time_t timegm (struct tm *__tp) __THROW;
-
/* Another name for `mktime'. */
extern time_t timelocal (struct tm *__tp) __THROW;
+#else
+# ifdef __REDIRECT_NTH
+extern time_t __REDIRECT_NTH (timegm, (struct tm *__tp), __timegm64);
+extern time_t __REDIRECT_NTH (timelocal, (struct tm *__tp), __mktime64);
+# else
+# define timegm __timegm64
+# endif
+#endif
/* Return the number of days in YEAR. */
extern int dysize (int __year) __THROW __attribute__ ((__const__));
@@ -198,6 +264,7 @@ extern int dysize (int __year) __THROW __attribute__ ((__const__));
#ifdef __USE_POSIX199309
+# ifndef __USE_TIME_BITS64
/* Pause execution for a number of nanoseconds.
This function is a cancellation point and therefore not marked with
@@ -205,7 +272,6 @@ extern int dysize (int __year) __THROW __attribute__ ((__const__));
extern int nanosleep (const struct timespec *__requested_time,
struct timespec *__remaining);
-
/* Get resolution of clock CLOCK_ID. */
extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __THROW;
@@ -215,15 +281,46 @@ extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __THROW;
/* Set clock CLOCK_ID to value TP. */
extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
__THROW;
+# else
+# ifdef __REDIRECT
+extern int __REDIRECT (nanosleep, (const struct timespec *__requested_time,
+ struct timespec *__remaining),
+ __nanosleep64);
+extern int __REDIRECT_NTH (clock_getres, (clockid_t __clock_id,
+ struct timespec *__res),
+ __clock_getres64);
+extern int __REDIRECT_NTH (clock_gettime, (clockid_t __clock_id, struct
+ timespec *__tp), __clock_gettime64);
+extern int __REDIRECT_NTH (clock_settime, (clockid_t __clock_id, const struct
+ timespec *__tp), __clock_settime64);
+# else
+# define nanosleep __nanosleep64
+# define clock_getres __clock_getres64
+# define clock_gettime __clock_gettime64
+# define clock_settime __clock_settime64
+# endif
+# endif
+
# ifdef __USE_XOPEN2K
/* High-resolution sleep with the specified clock.
This function is a cancellation point and therefore not marked with
__THROW. */
+# ifndef __USE_TIME_BITS64
extern int clock_nanosleep (clockid_t __clock_id, int __flags,
const struct timespec *__req,
struct timespec *__rem);
+# else
+# ifdef __REDIRECT
+extern int __REDIRECT (clock_nanosleep, (clockid_t __clock_id, int __flags,
+ const struct timespec *__req,
+ struct timespec *__rem),
+ __clock_nanosleep_time64);
+# else
+# define clock_nanosleep __clock_nanosleep_time64
+# endif
+# endif
/* Return clock ID for CPU-time clock. */
extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __THROW;
@@ -239,6 +336,7 @@ extern int timer_create (clockid_t __clock_id,
extern int timer_delete (timer_t __timerid) __THROW;
/* Set timer TIMERID to VALUE, returning old value in OVALUE. */
+# ifndef __USE_TIME_BITS64
extern int timer_settime (timer_t __timerid, int __flags,
const struct itimerspec *__restrict __value,
struct itimerspec *__restrict __ovalue) __THROW;
@@ -246,6 +344,21 @@ extern int timer_settime (timer_t __timerid, int __flags,
/* Get current value of timer TIMERID and store it in VALUE. */
extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
__THROW;
+# else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (timer_settime, (timer_t __timerid, int __flags,
+ const struct itimerspec *__restrict __value,
+ struct itimerspec *__restrict __ovalue),
+ __timer_settime64);
+
+extern int __REDIRECT_NTH (timer_gettime, (timer_t __timerid,
+ struct itimerspec *__value),
+ __timer_gettime64);
+# else
+# define timer_settime __timer_settime64
+# define timer_gettime __timer_gettime64
+# endif
+# endif
/* Get expiration overrun for timer TIMERID. */
extern int timer_getoverrun (timer_t __timerid) __THROW;
@@ -253,9 +366,18 @@ extern int timer_getoverrun (timer_t __timerid) __THROW;
#ifdef __USE_ISOC11
+# ifndef __USE_TIME_BITS64
/* Set TS to calendar time based in time base BASE. */
extern int timespec_get (struct timespec *__ts, int __base)
__THROW __nonnull ((1));
+# else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (timespec_get, (struct timespec *__ts, int __base),
+ __timespec_get64) __nonnull ((1));
+# else
+# define timespec_get __timespec_get64
+# endif
+# endif
#endif