From 47f24c21ee38701ae275aa9e451f70fa3e77478c Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Wed, 17 Feb 2021 13:35:19 -0300 Subject: [PATCH] y2038: Add support for 64-bit time on legacy ABIs 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: adjtime adjtimex clock_adjtime clock_getres clock_gettime clock_nanosleep clock_settime cnd_timedwait ctime ctime_r difftime fstat fstatat futimens futimes futimesat getitimer getrusage gettimeofday gmtime gmtime_r localtime localtime_r lstat_time lutimes mktime msgctl mtx_timedlock nanosleep nanosleep ntp_gettime ntp_gettimex ppoll pselec pselect 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 recvmmsg sched_rr_get_interval select sem_clockwait semctl semtimedop sem_timedwait setitimer settimeofday shmctl sigtimedwait stat thrd_sleep time timegm timerfd_gettime timerfd_settime timespec_get utime utimensat utimes utimes wait3 wait4 * librt: aio_suspend mq_timedreceive mq_timedsend timer_gettime timer_settime * libanl: gai_suspend Reviewed-by: Lukasz Majewski Reviewed-by: Carlos O'Donell Tested-by: Carlos O'Donell --- 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 ++++ nptl/pthread_clockjoin.c | 3 +- nptl/pthread_cond_wait.c | 9 +- nptl/pthread_mutex_timedlock.c | 8 +- nptl/pthread_rwlock_clockrdlock.c | 4 +- nptl/pthread_rwlock_clockwrlock.c | 4 +- nptl/pthread_rwlock_timedrdlock.c | 4 +- nptl/pthread_rwlock_timedwrlock.c | 4 +- nptl/pthread_timedjoin.c | 3 +- nptl/sem_clockwait.c | 3 +- nptl/sem_timedwait.c | 4 +- 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/Makefile | 3 + sysdeps/unix/sysv/linux/Versions | 97 ++++++++++++ sysdeps/unix/sysv/linux/arm/be/libanl.abilist | 1 + sysdeps/unix/sysv/linux/arm/be/libc.abilist | 67 +++++++++ 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 | 67 +++++++++ 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/cnd_timedwait.c | 8 +- sysdeps/unix/sysv/linux/csky/libanl.abilist | 1 + sysdeps/unix/sysv/linux/csky/libc.abilist | 67 +++++++++ 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 | 67 +++++++++ sysdeps/unix/sysv/linux/hppa/librt.abilist | 5 + sysdeps/unix/sysv/linux/hppa/time64-compat.h | 2 + sysdeps/unix/sysv/linux/i386/libanl.abilist | 1 + sysdeps/unix/sysv/linux/i386/libc.abilist | 67 +++++++++ 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 | 1 + .../sysv/linux/m68k/coldfire/libanl.abilist | 1 + .../sysv/linux/m68k/coldfire/libc.abilist | 67 +++++++++ .../sysv/linux/m68k/coldfire/librt.abilist | 5 + .../sysv/linux/m68k/m680x0/libanl.abilist | 1 + .../unix/sysv/linux/m68k/m680x0/libc.abilist | 67 +++++++++ .../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 | 67 +++++++++ .../sysv/linux/microblaze/be/librt.abilist | 5 + .../sysv/linux/microblaze/le/libanl.abilist | 1 + .../sysv/linux/microblaze/le/libc.abilist | 67 +++++++++ .../sysv/linux/microblaze/le/librt.abilist | 5 + .../sysv/linux/microblaze/time64-compat.h | 2 + .../sysv/linux/mips/mips32/fpu/libc.abilist | 67 +++++++++ .../sysv/linux/mips/mips32/libanl.abilist | 1 + .../unix/sysv/linux/mips/mips32/librt.abilist | 5 + .../sysv/linux/mips/mips32/nofpu/libc.abilist | 67 +++++++++ .../sysv/linux/mips/mips32/time64-compat.h | 2 + .../sysv/linux/mips/mips64/n32/libanl.abilist | 1 + .../sysv/linux/mips/mips64/n32/libc.abilist | 67 +++++++++ .../sysv/linux/mips/mips64/n32/librt.abilist | 5 + .../linux/mips/mips64/n32/time64-compat.h | 2 + sysdeps/unix/sysv/linux/mtx_timedlock.c | 8 +- sysdeps/unix/sysv/linux/nios2/libanl.abilist | 1 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 67 +++++++++ sysdeps/unix/sysv/linux/nios2/librt.abilist | 5 + sysdeps/unix/sysv/linux/nios2/time64-compat.h | 2 + .../linux/powerpc/powerpc32/fpu/libc.abilist | 67 +++++++++ .../linux/powerpc/powerpc32/libanl.abilist | 1 + .../linux/powerpc/powerpc32/librt.abilist | 5 + .../powerpc/powerpc32/nofpu/libc.abilist | 67 +++++++++ .../linux/powerpc/powerpc32/time64-compat.h | 2 + .../sysv/linux/s390/s390-32/libanl.abilist | 1 + .../unix/sysv/linux/s390/s390-32/libc.abilist | 67 +++++++++ .../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 | 67 +++++++++ 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 | 67 +++++++++ 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 | 67 +++++++++ .../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 | 29 +++- sysvipc/sys/msg.h | 10 ++ sysvipc/sys/sem.h | 21 +++ sysvipc/sys/shm.h | 10 ++ time/sys/time.h | 71 +++++++++ time/time.h | 138 +++++++++++++++++- 118 files changed, 2387 insertions(+), 61 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 242d36de91..0157b53cb8 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 e0fe9d70f0..58cf1dab68 100644 --- a/NEWS +++ b/NEWS @@ -34,6 +34,11 @@ Major new features: * On powerpc64*, glibc can now be compiled without scv support using the --disable-scv configure option. +* 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: * The function pthread_mutex_consistent_np has been deprecated; programs 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 diff --git a/include/features.h b/include/features.h index fcd1a9502f..039bcb112b 100644 --- a/include/features.h +++ b/include/features.h @@ -389,6 +389,8 @@ # define __USE_FILE_OFFSET64 1 #endif +#include + #if defined _DEFAULT_SOURCE # define __USE_MISC 1 #endif diff --git a/io/sys/poll.h b/io/sys/poll.h index 08f29df540..e640efb2bc 100644 --- a/io/sys/poll.h +++ b/io/sys/poll.h @@ -66,6 +66,17 @@ extern int ppoll (struct pollfd *__fds, nfds_t __nfds, const __sigset_t *__ss) __attr_access ((__write_only__, 1, 2)); +# 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) + __attr_access ((__write_only__, 1, 2)); +# 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_time64) __nonnull ((2, 3)); +# else +# define fstatat __fstatat64_time64 +# endif +# else +# 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 +# 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_time64) + __nonnull ((1, 2)); +# else +# define lstat __lstat64_time64 +# endif +# else +# ifdef __REDIRECT_NTH extern int __REDIRECT_NTH (lstat, (const char *__restrict __file, struct stat *__restrict __buf), lstat64) __nonnull ((1, 2)); -# else -# define lstat lstat64 +# 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 705a949089..9fa658e9a7 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/nptl/pthread_clockjoin.c b/nptl/pthread_clockjoin.c index f5007d7831..2d01ba03a2 100644 --- a/nptl/pthread_clockjoin.c +++ b/nptl/pthread_clockjoin.c @@ -36,7 +36,8 @@ ___pthread_clockjoin_np64 (pthread_t threadid, void **thread_return, #if __TIMESIZE == 64 strong_alias (___pthread_clockjoin_np64, ___pthread_clockjoin_np) #else /* __TIMESPEC64 != 64 */ -libc_hidden_ver (___pthread_clockjoin_np64, __pthread_clockjoin_np64) +strong_alias (___pthread_clockjoin_np64, __pthread_clockjoin_np64) +libc_hidden_def (__pthread_clockjoin_np64) int ___pthread_clockjoin_np (pthread_t threadid, void **thread_return, diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c index 409a99ecb7..daba8600fe 100644 --- a/nptl/pthread_cond_wait.c +++ b/nptl/pthread_cond_wait.c @@ -647,10 +647,8 @@ ___pthread_cond_timedwait64 (pthread_cond_t *cond, pthread_mutex_t *mutex, #if __TIMESIZE == 64 strong_alias (___pthread_cond_timedwait64, ___pthread_cond_timedwait) #else -libc_hidden_ver (___pthread_cond_timedwait64, __pthread_cond_timedwait64) -#ifndef SHARED strong_alias (___pthread_cond_timedwait64, __pthread_cond_timedwait64) -#endif +libc_hidden_def (__pthread_cond_timedwait64) int ___pthread_cond_timedwait (pthread_cond_t *cond, pthread_mutex_t *mutex, @@ -688,9 +686,8 @@ ___pthread_cond_clockwait64 (pthread_cond_t *cond, pthread_mutex_t *mutex, #if __TIMESIZE == 64 strong_alias (___pthread_cond_clockwait64, ___pthread_cond_clockwait) #else -versioned_symbol (libc, ___pthread_cond_clockwait64, - __pthread_cond_clockwait64, GLIBC_PRIVATE); -libc_hidden_ver (___pthread_cond_clockwait64, __pthread_cond_clockwait64) +strong_alias (___pthread_cond_clockwait64, __pthread_cond_clockwait64); +libc_hidden_def (__pthread_cond_clockwait64) int ___pthread_cond_clockwait (pthread_cond_t *cond, pthread_mutex_t *mutex, diff --git a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c index acd78131b2..5afd6222d6 100644 --- a/nptl/pthread_mutex_timedlock.c +++ b/nptl/pthread_mutex_timedlock.c @@ -585,7 +585,8 @@ ___pthread_mutex_clocklock64 (pthread_mutex_t *mutex, #if __TIMESIZE == 64 strong_alias (___pthread_mutex_clocklock64, ___pthread_mutex_clocklock) #else /* __TIMESPEC64 != 64 */ -libc_hidden_ver (___pthread_mutex_clocklock64, __pthread_mutex_clocklock64) +strong_alias (___pthread_mutex_clocklock64, __pthread_mutex_clocklock64) +libc_hidden_def (__pthread_mutex_clocklock64) int ___pthread_mutex_clocklock (pthread_mutex_t *mutex, @@ -618,9 +619,8 @@ ___pthread_mutex_timedlock64 (pthread_mutex_t *mutex, #if __TIMESIZE == 64 strong_alias (___pthread_mutex_timedlock64, ___pthread_mutex_timedlock) #else /* __TIMESPEC64 != 64 */ -versioned_symbol (libc, ___pthread_mutex_timedlock64, - __pthread_mutex_timedlock64, GLIBC_PRIVATE); -libc_hidden_ver (___pthread_mutex_timedlock64, __pthread_mutex_timedlock64) +strong_alias (___pthread_mutex_timedlock64, __pthread_mutex_timedlock64); +libc_hidden_def (__pthread_mutex_timedlock64) int ___pthread_mutex_timedlock (pthread_mutex_t *mutex, diff --git a/nptl/pthread_rwlock_clockrdlock.c b/nptl/pthread_rwlock_clockrdlock.c index 9db96b9904..83ae1d1823 100644 --- a/nptl/pthread_rwlock_clockrdlock.c +++ b/nptl/pthread_rwlock_clockrdlock.c @@ -31,8 +31,8 @@ ___pthread_rwlock_clockrdlock64 (pthread_rwlock_t *rwlock, clockid_t clockid, #if __TIMESIZE == 64 strong_alias (___pthread_rwlock_clockrdlock64, ___pthread_rwlock_clockrdlock) #else /* __TIMESPEC64 != 64 */ -libc_hidden_ver (___pthread_rwlock_clockrdlock64, - __pthread_rwlock_clockrdlock64) +strong_alias (___pthread_rwlock_clockrdlock64, __pthread_rwlock_clockrdlock64) +libc_hidden_def (__pthread_rwlock_clockrdlock64) int ___pthread_rwlock_clockrdlock (pthread_rwlock_t *rwlock, clockid_t clockid, diff --git a/nptl/pthread_rwlock_clockwrlock.c b/nptl/pthread_rwlock_clockwrlock.c index ca0ebe2a65..08a2276da5 100644 --- a/nptl/pthread_rwlock_clockwrlock.c +++ b/nptl/pthread_rwlock_clockwrlock.c @@ -31,8 +31,8 @@ ___pthread_rwlock_clockwrlock64 (pthread_rwlock_t *rwlock, clockid_t clockid, #if __TIMESIZE == 64 strong_alias (___pthread_rwlock_clockwrlock64, ___pthread_rwlock_clockwrlock) #else /* __TIMESPEC64 != 64 */ -libc_hidden_ver (___pthread_rwlock_clockwrlock64, - __pthread_rwlock_clockwrlock64) +strong_alias (___pthread_rwlock_clockwrlock64, __pthread_rwlock_clockwrlock64) +libc_hidden_def (__pthread_rwlock_clockwrlock64) int ___pthread_rwlock_clockwrlock (pthread_rwlock_t *rwlock, clockid_t clockid, diff --git a/nptl/pthread_rwlock_timedrdlock.c b/nptl/pthread_rwlock_timedrdlock.c index dd9b7cb0a2..8c73af26fb 100644 --- a/nptl/pthread_rwlock_timedrdlock.c +++ b/nptl/pthread_rwlock_timedrdlock.c @@ -30,8 +30,8 @@ ___pthread_rwlock_timedrdlock64 (pthread_rwlock_t *rwlock, #if __TIMESIZE == 64 strong_alias (___pthread_rwlock_timedrdlock64, ___pthread_rwlock_timedrdlock) #else /* __TIMESPEC64 != 64 */ -libc_hidden_ver (___pthread_rwlock_timedrdlock64, - __pthread_rwlock_timedrdlock64) +strong_alias (___pthread_rwlock_timedrdlock64, __pthread_rwlock_timedrdlock64) +libc_hidden_def (__pthread_rwlock_timedrdlock64) int ___pthread_rwlock_timedrdlock (pthread_rwlock_t *rwlock, diff --git a/nptl/pthread_rwlock_timedwrlock.c b/nptl/pthread_rwlock_timedwrlock.c index e660a544cd..890da92968 100644 --- a/nptl/pthread_rwlock_timedwrlock.c +++ b/nptl/pthread_rwlock_timedwrlock.c @@ -30,8 +30,8 @@ ___pthread_rwlock_timedwrlock64 (pthread_rwlock_t *rwlock, #if __TIMESIZE == 64 strong_alias (___pthread_rwlock_timedwrlock64, ___pthread_rwlock_timedwrlock) #else /* __TIMESPEC64 != 64 */ -libc_hidden_ver (___pthread_rwlock_timedwrlock64, - __pthread_rwlock_timedwrlock64) +strong_alias (___pthread_rwlock_timedwrlock64, __pthread_rwlock_timedwrlock64) +libc_hidden_def (__pthread_rwlock_timedwrlock64) int ___pthread_rwlock_timedwrlock (pthread_rwlock_t *rwlock, diff --git a/nptl/pthread_timedjoin.c b/nptl/pthread_timedjoin.c index ebc31f935a..0b4026612f 100644 --- a/nptl/pthread_timedjoin.c +++ b/nptl/pthread_timedjoin.c @@ -31,7 +31,8 @@ ___pthread_timedjoin_np64 (pthread_t threadid, void **thread_return, #if __TIMESIZE == 64 strong_alias (___pthread_timedjoin_np64, ___pthread_timedjoin_np) #else /* __TIMESPEC64 != 64 */ -libc_hidden_ver (___pthread_timedjoin_np64, __pthread_timedjoin_np64) +strong_alias (___pthread_timedjoin_np64, __pthread_timedjoin_np64) +libc_hidden_def (__pthread_timedjoin_np64) int ___pthread_timedjoin_np (pthread_t threadid, void **thread_return, diff --git a/nptl/sem_clockwait.c b/nptl/sem_clockwait.c index 2739799e26..19751aff04 100644 --- a/nptl/sem_clockwait.c +++ b/nptl/sem_clockwait.c @@ -49,7 +49,8 @@ ___sem_clockwait64 (sem_t *sem, clockid_t clockid, #if __TIMESIZE == 64 strong_alias (___sem_clockwait64, ___sem_clockwait) #else /* __TIMESPEC64 != 64 */ -libc_hidden_ver (___sem_clockwait64, __sem_clockwait64) +strong_alias (___sem_clockwait64, __sem_clockwait64) +libc_hidden_def (__sem_clockwait64) int ___sem_clockwait (sem_t *sem, clockid_t clockid, const struct timespec *abstime) diff --git a/nptl/sem_timedwait.c b/nptl/sem_timedwait.c index 584546c706..5c8f37d3bb 100644 --- a/nptl/sem_timedwait.c +++ b/nptl/sem_timedwait.c @@ -45,10 +45,8 @@ ___sem_timedwait64 (sem_t *sem, const struct __timespec64 *abstime) #if __TIMESIZE == 64 strong_alias (___sem_timedwait64, ___sem_timedwait) #else /* __TIMESPEC64 != 64 */ -libc_hidden_ver (___sem_timedwait64, __sem_timedwait64) -#ifndef SHARED strong_alias (___sem_timedwait64, __sem_timedwait64) -#endif +libc_hidden_def (__sem_timedwait64) int ___sem_timedwait (sem_t *sem, const struct timespec *abstime) 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 + . */ + +/* 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..59b34901c9 --- /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 22e037dcb4..52e2eadbfc 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. @@ -776,16 +794,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. */ @@ -939,16 +980,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. */ @@ -961,16 +1027,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. */ @@ -1047,10 +1139,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 @@ -1060,11 +1165,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/Makefile b/sysdeps/unix/sysv/linux/Makefile index 8b4d3a6a54..aedd02fd55 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -102,8 +102,11 @@ sysdep_headers += sys/mount.h sys/acct.h \ bits/ipc-perm.h \ bits/struct_stat.h \ bits/struct_stat_time64_helper.h \ + bits/types/struct_msqid64_ds.h \ bits/types/struct_msqid64_ds_helper.h \ + bits/types/struct_semid64_ds.h \ bits/types/struct_semid64_ds_helper.h \ + bits/types/struct_shmid64_ds.h \ bits/types/struct_shmid64_ds_helper.h tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions index c864ad38ca..8fb05da8eb 100644 --- a/sysdeps/unix/sysv/linux/Versions +++ b/sysdeps/unix/sysv/linux/Versions @@ -1,3 +1,4 @@ +%include libc { GLIBC_2.0 { # functions used in inline functions or macros @@ -185,6 +186,81 @@ libc { getdents64; gettid; tgkill; } GLIBC_2.32 { + } + GLIBC_2.34 { +%ifdef TIME64_NON_DEFAULT + # 64-bit time_t support + __adjtime64; + ___adjtimex64; + __clock_adjtime64; + __clock_getres64; + __clock_gettime64; + __clock_nanosleep_time64; + __clock_settime64; + __cnd_timedwait64; + __ctime64; + __ctime64_r; + __difftime64; + __fstat64_time64; + __fstatat64_time64; + __futimens64; + __futimes64; + __futimesat64; + __getitimer64; + __getrusage64; + __gettimeofday64; + __gmtime64; + __gmtime64_r; + __localtime64; + __localtime64_r; + __lstat64_time64; + __lutimes64; + __mktime64; + __msgctl64; + __mtx_timedlock64; + __nanosleep64; + __nanosleep64; + __ntp_gettime64; + __ntp_gettimex64; + __ppoll64; + __pselec64; + __pselect64; + __pthread_clockjoin_np64; + __pthread_cond_clockwait64; + __pthread_cond_timedwait64; + __pthread_mutex_clocklock64; + __pthread_mutex_timedlock64; + __pthread_rwlock_clockrdlock64; + __pthread_rwlock_clockwrlock64; + __pthread_rwlock_timedrdlock64; + __pthread_rwlock_timedwrlock64; + __pthread_timedjoin_np64; + __recvmmsg64; + __sched_rr_get_interval64; + __select64; + __sem_clockwait64; + __semctl64; + __semtimedop64; + __sem_timedwait64; + __setitimer64; + __settimeofday64; + __shmctl64; + __sigtimedwait64; + __stat64_time64; + __thrd_sleep64; + __time64; + __timegm64; + __timerfd_gettime64; + __timerfd_settime64; + __timespec_get64; + __timespec_getres64; + __utime64; + __utimensat64; + __utimes64; + __utimes64; + __wait3_time64; + __wait4_time64; +%endif } GLIBC_PRIVATE { # functions used in other libraries @@ -204,3 +280,24 @@ ld { __nptl_change_stack_perm; } } + +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 f66ee7aab1..1d32514579 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist @@ -190,16 +190,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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 3798b32830..05d0878232 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist @@ -187,16 +187,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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 +#include /* 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 #include #include +#include /* 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 +#include #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/cnd_timedwait.c b/sysdeps/unix/sysv/linux/cnd_timedwait.c index 0415c683f9..6e8ce3d61b 100644 --- a/sysdeps/unix/sysv/linux/cnd_timedwait.c +++ b/sysdeps/unix/sysv/linux/cnd_timedwait.c @@ -21,8 +21,8 @@ #include "thrd_priv.h" int -___cnd_timedwait64 (cnd_t *restrict cond, mtx_t *restrict mutex, - const struct __timespec64 *restrict time_point) +__cnd_timedwait64 (cnd_t *restrict cond, mtx_t *restrict mutex, + const struct __timespec64 *restrict time_point) { int err_code = __pthread_cond_timedwait64 ((pthread_cond_t *) cond, (pthread_mutex_t *) mutex, @@ -31,9 +31,9 @@ ___cnd_timedwait64 (cnd_t *restrict cond, mtx_t *restrict mutex, } #if __TIMESIZE == 64 -strong_alias (___cnd_timedwait64, ___cnd_timedwait) +strong_alias (__cnd_timedwait64, ___cnd_timedwait) #else -libc_hidden_ver (___cnd_timedwait64, __cnd_timedwait64) +libc_hidden_def (__cnd_timedwait64) int ___cnd_timedwait (cnd_t *restrict cond, mtx_t *restrict mutex, 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 ba53b61ea6..ac9f009f38 100644 --- a/sysdeps/unix/sysv/linux/csky/libc.abilist +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist @@ -2277,16 +2277,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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..1f786f903b --- /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 + . */ + +/* We need to know the word size in order to check the time size. */ +#include +#include + +#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-bit) +# 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 9783504c93..d2770a4874 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -2231,16 +2231,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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/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 c223c360ff..eb20d66c28 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2414,17 +2414,84 @@ 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 __cnd_timedwait64 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 __isnanf128 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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 - # 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 - # 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..ec03813795 100644 --- a/sysdeps/unix/sysv/linux/include/sys/timex.h +++ b/sysdeps/unix/sysv/linux/include/sys/timex.h @@ -23,6 +23,7 @@ # ifndef _ISOMAC +extern int __adjtimex (struct timex *__ntx); libc_hidden_proto (__adjtimex) # include 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 3cb4279b41..044cec51fc 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -191,16 +191,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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 94a718ff58..3a6463a3ef 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -2358,16 +2358,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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 5823bf18ef..612d7f1c58 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist @@ -2328,16 +2328,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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 723c4bcb09..685cb974c3 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist @@ -2325,16 +2325,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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 f67da8f37a..d17b5a02a5 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -2323,16 +2323,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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/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 e44a6be8aa..aba6bd2e3c 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -2321,16 +2321,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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 21cbe39166..88d8e2af38 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -2329,16 +2329,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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/mtx_timedlock.c b/sysdeps/unix/sysv/linux/mtx_timedlock.c index 7715ebb315..8983eb8556 100644 --- a/sysdeps/unix/sysv/linux/mtx_timedlock.c +++ b/sysdeps/unix/sysv/linux/mtx_timedlock.c @@ -21,8 +21,8 @@ #include "thrd_priv.h" int -___mtx_timedlock64 (mtx_t *restrict mutex, - const struct __timespec64 *restrict time_point) +__mtx_timedlock64 (mtx_t *restrict mutex, + const struct __timespec64 *restrict time_point) { int err_code = __pthread_mutex_timedlock64 ((pthread_mutex_t *)mutex, time_point); @@ -30,9 +30,9 @@ ___mtx_timedlock64 (mtx_t *restrict mutex, } #if __TIMESIZE == 64 -strong_alias (___mtx_timedlock64, ___mtx_timedlock) +strong_alias (__mtx_timedlock64, ___mtx_timedlock) #else -libc_hidden_ver (___mtx_timedlock64, __mtx_timedlock64) +libc_hidden_def (__mtx_timedlock64) int ___mtx_timedlock (mtx_t *restrict mutex, 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 9429209215..3b64e2cf51 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2367,16 +2367,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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 eaca8e4b0c..5404fdea4a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -2385,16 +2385,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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/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 c754a181da..506fa3619f 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -2418,16 +2418,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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 963e27571d..99b6d6d1ce 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -2383,16 +2383,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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 #include #include -#include /* For __semid64_ds. */ #include /* 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 456abfb5bb..68a631b161 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist @@ -2238,16 +2238,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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 45e59f1821..61a29e643a 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist @@ -2235,16 +2235,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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 734e1f38b6..fa3ae954c1 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -2376,16 +2376,83 @@ 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 __cnd_timedwait64 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 __mtx_timedlock64 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 __pthread_cleanup_routine 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_key_create F +GLIBC_2.34 __pthread_mutex_clocklock64 F GLIBC_2.34 __pthread_mutex_lock F +GLIBC_2.34 __pthread_mutex_timedlock64 F GLIBC_2.34 __pthread_mutex_unlock F GLIBC_2.34 __pthread_register_cancel F GLIBC_2.34 __pthread_register_cancel_defer 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 __pthread_unregister_cancel F GLIBC_2.34 __pthread_unregister_cancel_restore F GLIBC_2.34 __pthread_unwind_next F +GLIBC_2.34 __recvmmsg64 F +GLIBC_2.34 __sched_rr_get_interval64 F +GLIBC_2.34 __select64 F +GLIBC_2.34 __sem_clockwait64 F +GLIBC_2.34 __sem_timedwait64 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 __timespec_getres64 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 call_once F GLIBC_2.34 cnd_broadcast F GLIBC_2.34 cnd_destroy 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 eb8d15a806..e17265c607 100644 --- a/sysdeps/unix/sysv/linux/sys/timex.h +++ b/sysdeps/unix/sysv/linux/sys/timex.h @@ -54,17 +54,34 @@ struct ntptimeval __BEGIN_DECLS -extern int __adjtimex (struct timex *__ntx) __THROW; +#ifndef __USE_TIME_BITS64 extern int adjtimex (struct timex *__ntx) __THROW; extern int ntp_gettimex (struct ntptimeval *__ntv) __THROW; -#ifdef __REDIRECT_NTH +# ifdef __REDIRECT_NTH extern int __REDIRECT_NTH (ntp_gettime, (struct ntptimeval *__ntv), - ntp_gettimex); -#else -# define ntp_gettime ntp_gettimex -#endif + ntp_gettimex); +# else +# define ntp_gettime ntp_gettimex +# endif extern int ntp_adjtime (struct timex *__tntx) __THROW; +#else +# 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 __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 e255db9772..bde870c934 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 #ifdef __USE_POSIX /* 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 */ @@ -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,16 +366,35 @@ 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 #if __GLIBC_USE (ISOC2X) +# ifndef __USE_TIME_BITS64 /* Set TS to resolution of time base BASE. */ extern int timespec_getres (struct timespec *__ts, int __base) __THROW; +# else +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (timespec_getres, (struct timespec *__ts, + int __base), + __timespec_getres64); +# else +# define timespec_getres __timespec_getres64 +# endif +# endif #endif