diff options
72 files changed, 382 insertions, 243 deletions
@@ -1,3 +1,107 @@ +2019-09-04 Zack Weinberg <zackw@panix.com> + + [BZ #24959] + * rt/clock_getcpuclockid.c: Move to time/clock_getcpuclockid.c. + * rt/clock_getres.c: Move to time/clock_getres.c. + * rt/clock_gettime.c: Move to time/clock_gettime.c. + * rt/clock_nanosleep.c: Move to time/clock_nanosleep.c. + * rt/clock_settime.c: Move to time/clock_settime.c. + * rt/tst-clock.c: Move to time/tst-clock.c. + * rt/tst-clock2.c: Move to time/tst-clock2.c. + * rt/tst-clock_nanosleep.c: Move to time/tst-clock_nanosleep.c. + * rt/tst-cpuclock1.c: Move to time/tst-cpuclock1.c. + * rt/clock-compat.c: Delete file. + + * time/clock_getcpuclockid.c + * time/clock_getres.c + * time/clock_gettime.c + * time/clock_nanosleep.c + * time/clock_settime.c + * sysdeps/posix/clock_getres.c + * sysdeps/unix/clock_gettime.c + * sysdeps/unix/clock_nanosleep.c + * sysdeps/unix/clock_settime.c + * sysdeps/unix/sysv/linux/clock_getcpuclockid.c + * sysdeps/unix/sysv/linux/clock_getres.c + * sysdeps/unix/sysv/linux/clock_gettime.c + * sysdeps/unix/sysv/linux/clock_nanosleep.c + * sysdeps/unix/sysv/linux/clock_settime.c: Define the function + defined by this file with default symbol version GLIBC_2_17, + and optionally a compatibility alias at symbol version GLIBC_2_2. + * include/time.h: Remove internal prototypes for clock_getres, + clock_nanosleep, and clock_getcpuclockid. + + * sysdeps/unix/sysv/linux/clock_gettime.c: Prune includes. + Remove unused function realtime_gettime. + + * rt/Makefile (clock-routines, routines): Remove variable. + (librt-routines): Remove clock-compat. + (tests): Remove tst-clock, tst-clock2, tst-clock_nanosleep, + and tst-cpuclock1. + * time/Makefile (routines): Add clock_getres, clock_gettime, + clock_settime, clock_getcpuclockid, and clock_nanosleep. + (tests): Add tst-clock, tst-clock2, tst-clock_nanosleep, + and tst-cpuclock1. + + * rt/Versions (libc): Remove entire stanza. + (librt GLIBC_2.2): Remove all clock_* functions. + * time/Versions (libc GLIBC_2.2, libc GLIBC_2.17): + Add clock_getres, clock_gettime, clock_settime, + clock_getcpuclockid, and clock_nanosleep. + (libc GLIBC_PRIVATE): Add __clock_gettime. + + * sysdeps/mach/hurd/i386/librt.abilist + * sysdeps/unix/sysv/linux/alpha/librt.abilist + * sysdeps/unix/sysv/linux/arm/be/librt.abilist + * sysdeps/unix/sysv/linux/arm/le/librt.abilist + * sysdeps/unix/sysv/linux/hppa/librt.abilist + * sysdeps/unix/sysv/linux/i386/librt.abilist + * sysdeps/unix/sysv/linux/ia64/librt.abilist + * sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist + * sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist + * sysdeps/unix/sysv/linux/microblaze/be/librt.abilist + * sysdeps/unix/sysv/linux/microblaze/le/librt.abilist + * sysdeps/unix/sysv/linux/mips/mips32/librt.abilist + * sysdeps/unix/sysv/linux/mips/mips64/librt.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist + * sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist + * sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist + * sysdeps/unix/sysv/linux/sh/librt.abilist + * sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist + * sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist + * sysdeps/unix/sysv/linux/x86_64/64/librt.abilist + * sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist: + Remove entries for clock_getres, clock_gettime, clock_settime, + clock_getcpuclockid, and clock_nanosleep. + + * sysdeps/mach/hurd/i386/libc.abilist + * sysdeps/unix/sysv/linux/alpha/libc.abilist + * sysdeps/unix/sysv/linux/arm/libc.abilist + * sysdeps/unix/sysv/linux/hppa/libc.abilist + * sysdeps/unix/sysv/linux/i386/libc.abilist + * sysdeps/unix/sysv/linux/ia64/libc.abilist + * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist + * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist + * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist + * sysdeps/unix/sysv/linux/sh/be/libc.abilist + * sysdeps/unix/sysv/linux/sh/le/libc.abilist + * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: + Add another set of entries for clock_getres, clock_gettime, + clock_settime, clock_getcpuclockid, and clock_nanosleep at + whatever version GLIBC_2.2 maps to. + 2019-09-03 Aurelien Jarno <aurelien@aurel32.net> * sysdeps/alpha/fpu/libm-test-ulps: Regenerated using GCC 9.2. diff --git a/include/time.h b/include/time.h index ac3163c..dcf9185 100644 --- a/include/time.h +++ b/include/time.h @@ -18,12 +18,10 @@ libc_hidden_proto (localtime) libc_hidden_proto (strftime) libc_hidden_proto (strptime) -extern __typeof (clock_getres) __clock_getres; extern __typeof (clock_gettime) __clock_gettime; libc_hidden_proto (__clock_gettime) extern __typeof (clock_settime) __clock_settime; -extern __typeof (clock_nanosleep) __clock_nanosleep; -extern __typeof (clock_getcpuclockid) __clock_getcpuclockid; +libc_hidden_proto (__clock_settime) /* Now define the internal interfaces. */ struct tm; diff --git a/rt/Makefile b/rt/Makefile index 9ea8394..e6fbc32 100644 --- a/rt/Makefile +++ b/rt/Makefile @@ -28,9 +28,6 @@ aio-routines := aio_cancel aio_error aio_fsync aio_misc aio_read \ aio_read64 aio_return aio_suspend aio_write \ aio_write64 lio_listio lio_listio64 aio_sigqueue \ aio_notify -clock-routines := clock_getcpuclockid \ - clock_getres clock_gettime clock_settime \ - clock_nanosleep timer-routines := timer_create timer_delete timer_getoverr \ timer_gettime timer_settime shm-routines := shm_open shm_unlink @@ -38,22 +35,18 @@ mq-routines := mq_open mq_close mq_unlink mq_getattr mq_setattr \ mq_notify mq_send mq_receive mq_timedsend \ mq_timedreceive -routines = $(clock-routines) - librt-routines = $(aio-routines) \ $(timer-routines) \ - $(shm-routines) $(mq-routines) \ - clock-compat + $(shm-routines) $(mq-routines) -tests := tst-shm tst-clock tst-clock_nanosleep tst-timer tst-timer2 \ +tests := tst-shm tst-timer tst-timer2 \ tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \ tst-aio7 tst-aio8 tst-aio9 tst-aio10 \ tst-mqueue1 tst-mqueue2 tst-mqueue3 tst-mqueue4 \ tst-mqueue5 tst-mqueue6 tst-mqueue7 tst-mqueue8 tst-mqueue9 \ tst-timer3 tst-timer4 tst-timer5 \ - tst-cpuclock1 tst-cpuclock2 \ - tst-cputimer1 tst-cputimer2 tst-cputimer3 \ - tst-clock2 tst-shm-cancel + tst-cpuclock2 tst-cputimer1 tst-cputimer2 tst-cputimer3 \ + tst-shm-cancel extra-libs := librt extra-libs-others := $(extra-libs) diff --git a/rt/Versions b/rt/Versions index 91e3fd2..84d1345 100644 --- a/rt/Versions +++ b/rt/Versions @@ -1,15 +1,3 @@ -libc { - GLIBC_2.17 { - # c* - clock_getres; clock_gettime; clock_settime; clock_getcpuclockid; - clock_nanosleep; - } - GLIBC_PRIVATE { - __clock_getres; __clock_gettime; __clock_settime; __clock_getcpuclockid; - __clock_nanosleep; - } -} - librt { GLIBC_2.1 { # AIO functions. @@ -18,10 +6,6 @@ librt { aio_suspend64; aio_write; aio_write64; lio_listio; lio_listio64; } GLIBC_2.2 { - # These have moved to libc and are still here only for compatibility. - clock_getres; clock_gettime; clock_settime; clock_getcpuclockid; - clock_nanosleep; - # s* shm_open; shm_unlink; diff --git a/rt/clock-compat.c b/rt/clock-compat.c deleted file mode 100644 index d8ced3cd..0000000 --- a/rt/clock-compat.c +++ /dev/null @@ -1,63 +0,0 @@ -/* ABI compatibility redirects for clock_* symbols in librt. - Copyright (C) 2012-2019 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 - <http://www.gnu.org/licenses/>. */ - -#include <shlib-compat.h> - -/* The clock_* symbols were originally defined in librt and so - are part of its ABI. As of 2.17, they have moved to libc. - So we supply definitions for librt that just redirect to - their libc counterparts. */ - -#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_17) - -#include <time.h> - -#if HAVE_IFUNC -# undef INIT_ARCH -# define INIT_ARCH() -# define COMPAT_REDIRECT(name, proto, arglist) libc_ifunc (name, &__##name) \ - compat_symbol (librt, name, name, GLIBC_2_2); -#else -# define COMPAT_REDIRECT(name, proto, arglist) \ - int \ - name proto \ - { \ - return __##name arglist; \ - } \ - compat_symbol (librt, name, name, GLIBC_2_2); -#endif - -COMPAT_REDIRECT (clock_getres, - (clockid_t clock_id, struct timespec *res), - (clock_id, res)) -COMPAT_REDIRECT (clock_gettime, - (clockid_t clock_id, struct timespec *tp), - (clock_id, tp)) -COMPAT_REDIRECT (clock_settime, - (clockid_t clock_id, const struct timespec *tp), - (clock_id, tp)) -COMPAT_REDIRECT (clock_getcpuclockid, - (pid_t pid, clockid_t *clock_id), - (pid, clock_id)) -COMPAT_REDIRECT (clock_nanosleep, - (clockid_t clock_id, int flags, - const struct timespec *req, - struct timespec *rem), - (clock_id, flags, req, rem)) - -#endif diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 1fc7ab2..7c2cb2b 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -711,6 +711,11 @@ GLIBC_2.2.6 clntudp_bufcreate F GLIBC_2.2.6 clntudp_create F GLIBC_2.2.6 clntunix_create F GLIBC_2.2.6 clock F +GLIBC_2.2.6 clock_getcpuclockid F +GLIBC_2.2.6 clock_getres F +GLIBC_2.2.6 clock_gettime F +GLIBC_2.2.6 clock_nanosleep F +GLIBC_2.2.6 clock_settime F GLIBC_2.2.6 close F GLIBC_2.2.6 closedir F GLIBC_2.2.6 closelog F diff --git a/sysdeps/mach/hurd/i386/librt.abilist b/sysdeps/mach/hurd/i386/librt.abilist index d5fe32b..3726e41 100644 --- a/sysdeps/mach/hurd/i386/librt.abilist +++ b/sysdeps/mach/hurd/i386/librt.abilist @@ -13,11 +13,6 @@ GLIBC_2.2.6 aio_suspend F GLIBC_2.2.6 aio_suspend64 F GLIBC_2.2.6 aio_write F GLIBC_2.2.6 aio_write64 F -GLIBC_2.2.6 clock_getcpuclockid F -GLIBC_2.2.6 clock_getres F -GLIBC_2.2.6 clock_gettime F -GLIBC_2.2.6 clock_nanosleep F -GLIBC_2.2.6 clock_settime F GLIBC_2.2.6 lio_listio F GLIBC_2.2.6 lio_listio64 F GLIBC_2.2.6 shm_open F diff --git a/sysdeps/posix/clock_getres.c b/sysdeps/posix/clock_getres.c index 01024a3..e529cad 100644 --- a/sysdeps/posix/clock_getres.c +++ b/sysdeps/posix/clock_getres.c @@ -22,7 +22,7 @@ #include <unistd.h> #include <sys/param.h> #include <libc-internal.h> - +#include <shlib-compat.h> static inline int realtime_getres (struct timespec *res) @@ -62,4 +62,11 @@ __clock_getres (clockid_t clock_id, struct timespec *res) return retval; } -weak_alias (__clock_getres, clock_getres) + +versioned_symbol (libc, __clock_getres, clock_getres, GLIBC_2_17); +/* clock_getres moved to libc in version 2.17; + old binaries may expect the symbol version it had in librt. */ +#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17) +strong_alias (__clock_getres, __clock_getres_2); +compat_symbol (libc, __clock_getres_2, clock_getres, GLIBC_2_2); +#endif diff --git a/sysdeps/unix/clock_gettime.c b/sysdeps/unix/clock_gettime.c index 10a6c96..2a82fc1 100644 --- a/sysdeps/unix/clock_gettime.c +++ b/sysdeps/unix/clock_gettime.c @@ -17,24 +17,9 @@ <http://www.gnu.org/licenses/>. */ #include <errno.h> -#include <stdint.h> #include <time.h> #include <sys/time.h> -#include <libc-internal.h> -#include <ldsodefs.h> - - -static inline int -realtime_gettime (struct timespec *tp) -{ - struct timeval tv; - int retval = __gettimeofday (&tv, NULL); - if (retval == 0) - /* Convert into `timespec'. */ - TIMEVAL_TO_TIMESPEC (&tv, tp); - return retval; -} - +#include <shlib-compat.h> /* Get current value of CLOCK and store it in TP. */ int @@ -60,5 +45,12 @@ __clock_gettime (clockid_t clock_id, struct timespec *tp) return retval; } -weak_alias (__clock_gettime, clock_gettime) libc_hidden_def (__clock_gettime) + +versioned_symbol (libc, __clock_gettime, clock_gettime, GLIBC_2_17); +/* clock_gettime moved to libc in version 2.17; + old binaries may expect the symbol version it had in librt. */ +#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17) +strong_alias (__clock_gettime, __clock_gettime_2); +compat_symbol (libc, __clock_gettime_2, clock_gettime, GLIBC_2_2); +#endif diff --git a/sysdeps/unix/clock_nanosleep.c b/sysdeps/unix/clock_nanosleep.c index b276085..6a47752 100644 --- a/sysdeps/unix/clock_nanosleep.c +++ b/sysdeps/unix/clock_nanosleep.c @@ -20,6 +20,7 @@ #include <errno.h> #include <time.h> #include <sysdep-cancel.h> +#include <shlib-compat.h> /* This implementation assumes that these is only a `nanosleep' system call. So we have to remap all other activities. */ @@ -76,4 +77,11 @@ __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req, return __nanosleep (req, rem), 0 ? errno : 0; } -weak_alias (__clock_nanosleep, clock_nanosleep) + +versioned_symbol (libc, __clock_nanosleep, clock_nanosleep, GLIBC_2_17); +/* clock_nanosleep moved to libc in version 2.17; + old binaries may expect the symbol version it had in librt. */ +#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17) +strong_alias (__clock_nanosleep, __clock_nanosleep_2); +compat_symbol (libc, __clock_nanosleep_2, clock_nanosleep, GLIBC_2_2); +#endif diff --git a/sysdeps/unix/clock_settime.c b/sysdeps/unix/clock_settime.c index 109a1ad..5b39849 100644 --- a/sysdeps/unix/clock_settime.c +++ b/sysdeps/unix/clock_settime.c @@ -18,8 +18,7 @@ #include <errno.h> #include <time.h> #include <sys/time.h> -#include <ldsodefs.h> - +#include <shlib-compat.h> /* Set CLOCK to value TP. */ int @@ -51,4 +50,12 @@ __clock_settime (clockid_t clock_id, const struct timespec *tp) return retval; } -weak_alias (__clock_settime, clock_settime) +libc_hidden_def (__clock_settime) + +versioned_symbol (libc, __clock_settime, clock_settime, GLIBC_2_17); +/* clock_settime moved to libc in version 2.17; + old binaries may expect the symbol version it had in librt. */ +#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17) +strong_alias (__clock_settime, __clock_settime_2); +compat_symbol (libc, __clock_settime_2, clock_settime, GLIBC_2_2); +#endif diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index fe85a35..e7f2174 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -1863,6 +1863,11 @@ GLIBC_2.2 __xpg_sigpause F GLIBC_2.2 _flushlbf F GLIBC_2.2 _res_hconf D 0x48 GLIBC_2.2 bind_textdomain_codeset F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 dcngettext F GLIBC_2.2 dngettext F GLIBC_2.2 fgetpos F diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist index d7a049c..71f86e0 100644 --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist @@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F GLIBC_2.2 shm_open F GLIBC_2.2 shm_unlink F GLIBC_2.2 timer_create F diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist index bc3df8d..9371927 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist @@ -766,6 +766,11 @@ GLIBC_2.4 clntudp_bufcreate F GLIBC_2.4 clntudp_create F GLIBC_2.4 clntunix_create F GLIBC_2.4 clock F +GLIBC_2.4 clock_getcpuclockid F +GLIBC_2.4 clock_getres F +GLIBC_2.4 clock_gettime F +GLIBC_2.4 clock_nanosleep F +GLIBC_2.4 clock_settime F GLIBC_2.4 clone F GLIBC_2.4 close F GLIBC_2.4 closedir F diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist index cfbbd27..3c0647b 100644 --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist @@ -13,11 +13,6 @@ GLIBC_2.4 aio_suspend F GLIBC_2.4 aio_suspend64 F GLIBC_2.4 aio_write F GLIBC_2.4 aio_write64 F -GLIBC_2.4 clock_getcpuclockid F -GLIBC_2.4 clock_getres F -GLIBC_2.4 clock_gettime F -GLIBC_2.4 clock_nanosleep F -GLIBC_2.4 clock_settime F GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F GLIBC_2.4 mq_close F diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist index bc3df8d..9371927 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist @@ -766,6 +766,11 @@ GLIBC_2.4 clntudp_bufcreate F GLIBC_2.4 clntudp_create F GLIBC_2.4 clntunix_create F GLIBC_2.4 clock F +GLIBC_2.4 clock_getcpuclockid F +GLIBC_2.4 clock_getres F +GLIBC_2.4 clock_gettime F +GLIBC_2.4 clock_nanosleep F +GLIBC_2.4 clock_settime F GLIBC_2.4 clone F GLIBC_2.4 close F GLIBC_2.4 closedir F diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist index cfbbd27..3c0647b 100644 --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist @@ -13,11 +13,6 @@ GLIBC_2.4 aio_suspend F GLIBC_2.4 aio_suspend64 F GLIBC_2.4 aio_write F GLIBC_2.4 aio_write64 F -GLIBC_2.4 clock_getcpuclockid F -GLIBC_2.4 clock_getres F -GLIBC_2.4 clock_gettime F -GLIBC_2.4 clock_nanosleep F -GLIBC_2.4 clock_settime F GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F GLIBC_2.4 mq_close F diff --git a/sysdeps/unix/sysv/linux/clock_getcpuclockid.c b/sysdeps/unix/sysv/linux/clock_getcpuclockid.c index f4a6529..f2d8b91 100644 --- a/sysdeps/unix/sysv/linux/clock_getcpuclockid.c +++ b/sysdeps/unix/sysv/linux/clock_getcpuclockid.c @@ -20,6 +20,7 @@ #include <time.h> #include <unistd.h> #include "kernel-posix-cpu-timers.h" +#include <shlib-compat.h> int __clock_getcpuclockid (pid_t pid, clockid_t *clock_id) @@ -45,4 +46,11 @@ __clock_getcpuclockid (pid_t pid, clockid_t *clock_id) else return INTERNAL_SYSCALL_ERRNO (r, err); } -weak_alias (__clock_getcpuclockid, clock_getcpuclockid) + +versioned_symbol (libc, __clock_getcpuclockid, clock_getcpuclockid, GLIBC_2_17); +/* clock_getcpuclockid moved to libc in version 2.17; + old binaries may expect the symbol version it had in librt. */ +#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17) +strong_alias (__clock_getcpuclockid, __clock_getcpuclockid_2); +compat_symbol (libc, __clock_getcpuclockid_2, clock_getcpuclockid, GLIBC_2_2); +#endif diff --git a/sysdeps/unix/sysv/linux/clock_getres.c b/sysdeps/unix/sysv/linux/clock_getres.c index 24b2299..18a7ce5 100644 --- a/sysdeps/unix/sysv/linux/clock_getres.c +++ b/sysdeps/unix/sysv/linux/clock_getres.c @@ -26,10 +26,19 @@ #endif #include <sysdep-vdso.h> +#include <shlib-compat.h> + /* Get resolution of clock. */ int __clock_getres (clockid_t clock_id, struct timespec *res) { return INLINE_VSYSCALL (clock_getres, 2, clock_id, res); } -weak_alias (__clock_getres, clock_getres) + +versioned_symbol (libc, __clock_getres, clock_getres, GLIBC_2_17); +/* clock_getres moved to libc in version 2.17; + old binaries may expect the symbol version it had in librt. */ +#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17) +strong_alias (__clock_getres, __clock_getres_2); +compat_symbol (libc, __clock_getres_2, clock_getres, GLIBC_2_2); +#endif diff --git a/sysdeps/unix/sysv/linux/clock_gettime.c b/sysdeps/unix/sysv/linux/clock_gettime.c index 5fc47fb..7ad1c91 100644 --- a/sysdeps/unix/sysv/linux/clock_gettime.c +++ b/sysdeps/unix/sysv/linux/clock_gettime.c @@ -26,11 +26,20 @@ #endif #include <sysdep-vdso.h> +#include <shlib-compat.h> + /* Get current value of CLOCK and store it in TP. */ int __clock_gettime (clockid_t clock_id, struct timespec *tp) { return INLINE_VSYSCALL (clock_gettime, 2, clock_id, tp); } -weak_alias (__clock_gettime, clock_gettime) libc_hidden_def (__clock_gettime) + +versioned_symbol (libc, __clock_gettime, clock_gettime, GLIBC_2_17); +/* clock_gettime moved to libc in version 2.17; + old binaries may expect the symbol version it had in librt. */ +#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17) +strong_alias (__clock_gettime, __clock_gettime_2); +compat_symbol (libc, __clock_gettime_2, clock_gettime, GLIBC_2_2); +#endif diff --git a/sysdeps/unix/sysv/linux/clock_nanosleep.c b/sysdeps/unix/sysv/linux/clock_nanosleep.c index 0cb6614..e19e09d 100644 --- a/sysdeps/unix/sysv/linux/clock_nanosleep.c +++ b/sysdeps/unix/sysv/linux/clock_nanosleep.c @@ -21,6 +21,7 @@ #include <sysdep-cancel.h> #include "kernel-posix-cpu-timers.h" +#include <shlib-compat.h> /* We can simply use the syscall. The CPU clocks are not supported with this function. */ @@ -41,4 +42,11 @@ __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req, return (INTERNAL_SYSCALL_ERROR_P (r, err) ? INTERNAL_SYSCALL_ERRNO (r, err) : 0); } -weak_alias (__clock_nanosleep, clock_nanosleep) + +versioned_symbol (libc, __clock_nanosleep, clock_nanosleep, GLIBC_2_17); +/* clock_nanosleep moved to libc in version 2.17; + old binaries may expect the symbol version it had in librt. */ +#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17) +strong_alias (__clock_nanosleep, __clock_nanosleep_2); +compat_symbol (libc, __clock_nanosleep_2, clock_nanosleep, GLIBC_2_2); +#endif diff --git a/sysdeps/unix/sysv/linux/clock_settime.c b/sysdeps/unix/sysv/linux/clock_settime.c index d837e30..0586d15 100644 --- a/sysdeps/unix/sysv/linux/clock_settime.c +++ b/sysdeps/unix/sysv/linux/clock_settime.c @@ -18,6 +18,7 @@ #include <errno.h> #include <sysdep.h> #include <time.h> +#include <shlib-compat.h> #include "kernel-posix-cpu-timers.h" @@ -34,4 +35,12 @@ __clock_settime (clockid_t clock_id, const struct timespec *tp) return INLINE_SYSCALL_CALL (clock_settime, clock_id, tp); } -weak_alias (__clock_settime, clock_settime) +libc_hidden_def (__clock_settime) + +versioned_symbol (libc, __clock_settime, clock_settime, GLIBC_2_17); +/* clock_settime moved to libc in version 2.17; + old binaries may expect the symbol version it had in librt. */ +#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17) +strong_alias (__clock_settime, __clock_settime_2); +compat_symbol (libc, __clock_settime_2, clock_settime, GLIBC_2_2); +#endif diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 75edece..df6d96f 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -615,6 +615,11 @@ GLIBC_2.2 clntudp_bufcreate F GLIBC_2.2 clntudp_create F GLIBC_2.2 clntunix_create F GLIBC_2.2 clock F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 clone F GLIBC_2.2 close F GLIBC_2.2 closedir F diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist index 595f1b7..bb03781 100644 --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist @@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F GLIBC_2.2 shm_open F GLIBC_2.2 shm_unlink F GLIBC_2.2 timer_create F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index edeaf8e..fcb625b 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -1869,6 +1869,11 @@ GLIBC_2.2 _flushlbf F GLIBC_2.2 _res_hconf D 0x30 GLIBC_2.2 alphasort64 F GLIBC_2.2 bind_textdomain_codeset F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 dcngettext F GLIBC_2.2 dngettext F GLIBC_2.2 fgetpos F diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist index 595f1b7..bb03781 100644 --- a/sysdeps/unix/sysv/linux/i386/librt.abilist +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist @@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F GLIBC_2.2 shm_open F GLIBC_2.2 shm_unlink F GLIBC_2.2 timer_create F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index b5d460e..cb556c5 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -627,6 +627,11 @@ GLIBC_2.2 clntudp_bufcreate F GLIBC_2.2 clntudp_create F GLIBC_2.2 clntunix_create F GLIBC_2.2 clock F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 close F GLIBC_2.2 closedir F GLIBC_2.2 closelog F diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist index 804622a..08384c9 100644 --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist @@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F GLIBC_2.2 shm_open F GLIBC_2.2 shm_unlink F GLIBC_2.2 timer_create F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 05633b3..f3aa47d 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -755,6 +755,11 @@ GLIBC_2.4 clntudp_bufcreate F GLIBC_2.4 clntudp_create F GLIBC_2.4 clntunix_create F GLIBC_2.4 clock F +GLIBC_2.4 clock_getcpuclockid F +GLIBC_2.4 clock_getres F +GLIBC_2.4 clock_gettime F +GLIBC_2.4 clock_nanosleep F +GLIBC_2.4 clock_settime F GLIBC_2.4 clone F GLIBC_2.4 close F GLIBC_2.4 closedir F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist index cfbbd27..3c0647b 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist @@ -13,11 +13,6 @@ GLIBC_2.4 aio_suspend F GLIBC_2.4 aio_suspend64 F GLIBC_2.4 aio_write F GLIBC_2.4 aio_write64 F -GLIBC_2.4 clock_getcpuclockid F -GLIBC_2.4 clock_getres F -GLIBC_2.4 clock_gettime F -GLIBC_2.4 clock_nanosleep F -GLIBC_2.4 clock_settime F GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F GLIBC_2.4 mq_close F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 47eb7b4..64d4623 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1825,6 +1825,11 @@ GLIBC_2.2 _flushlbf F GLIBC_2.2 _res_hconf D 0x30 GLIBC_2.2 alphasort64 F GLIBC_2.2 bind_textdomain_codeset F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 dcngettext F GLIBC_2.2 dngettext F GLIBC_2.2 fgetpos F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist index 595f1b7..bb03781 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist @@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F GLIBC_2.2 shm_open F GLIBC_2.2 shm_unlink F GLIBC_2.2 timer_create F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist index fb85d87..889dfbc 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist @@ -14,11 +14,6 @@ GLIBC_2.18 aio_suspend F GLIBC_2.18 aio_suspend64 F GLIBC_2.18 aio_write F GLIBC_2.18 aio_write64 F -GLIBC_2.18 clock_getcpuclockid F -GLIBC_2.18 clock_getres F -GLIBC_2.18 clock_gettime F -GLIBC_2.18 clock_nanosleep F -GLIBC_2.18 clock_settime F GLIBC_2.18 lio_listio F GLIBC_2.18 lio_listio64 F GLIBC_2.18 mq_close F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist index fb85d87..889dfbc 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist @@ -14,11 +14,6 @@ GLIBC_2.18 aio_suspend F GLIBC_2.18 aio_suspend64 F GLIBC_2.18 aio_write F GLIBC_2.18 aio_write64 F -GLIBC_2.18 clock_getcpuclockid F -GLIBC_2.18 clock_getres F -GLIBC_2.18 clock_gettime F -GLIBC_2.18 clock_nanosleep F -GLIBC_2.18 clock_settime F GLIBC_2.18 lio_listio F GLIBC_2.18 lio_listio64 F GLIBC_2.18 mq_close F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index e49dc42..06c2e64 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1612,6 +1612,11 @@ GLIBC_2.2 capget F GLIBC_2.2 capset F GLIBC_2.2 cbc_crypt F GLIBC_2.2 clntunix_create F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 creat64 F GLIBC_2.2 dcngettext F GLIBC_2.2 des_setparity F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist index 84837c8..1539c1c 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist @@ -13,11 +13,6 @@ GLIBC_2.2 aio_suspend F GLIBC_2.2 aio_suspend64 F GLIBC_2.2 aio_write F GLIBC_2.2 aio_write64 F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F GLIBC_2.2 lio_listio F GLIBC_2.2 lio_listio64 F GLIBC_2.2 shm_open F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index daa3b60..bdfd073 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1610,6 +1610,11 @@ GLIBC_2.2 capget F GLIBC_2.2 capset F GLIBC_2.2 cbc_crypt F GLIBC_2.2 clntunix_create F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 creat64 F GLIBC_2.2 dcngettext F GLIBC_2.2 des_setparity F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist index 84837c8..1539c1c 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist @@ -13,11 +13,6 @@ GLIBC_2.2 aio_suspend F GLIBC_2.2 aio_suspend64 F GLIBC_2.2 aio_write F GLIBC_2.2 aio_write64 F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F GLIBC_2.2 lio_listio F GLIBC_2.2 lio_listio64 F GLIBC_2.2 shm_open F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 457ce0b..3d61d49 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1611,6 +1611,11 @@ GLIBC_2.2 capget F GLIBC_2.2 capset F GLIBC_2.2 cbc_crypt F GLIBC_2.2 clntunix_create F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 creat64 F GLIBC_2.2 dcngettext F GLIBC_2.2 des_setparity F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 63d5c03..675acca 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1607,6 +1607,11 @@ GLIBC_2.2 capget F GLIBC_2.2 capset F GLIBC_2.2 cbc_crypt F GLIBC_2.2 clntunix_create F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 creat64 F GLIBC_2.2 dcngettext F GLIBC_2.2 des_setparity F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 9200a54..1e8ff6f 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1830,6 +1830,11 @@ GLIBC_2.2 __xstat64 F GLIBC_2.2 _flushlbf F GLIBC_2.2 _res_hconf D 0x30 GLIBC_2.2 bind_textdomain_codeset F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 dcngettext F GLIBC_2.2 dngettext F GLIBC_2.2 fgetpos F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist index 595f1b7..bb03781 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist @@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F GLIBC_2.2 shm_open F GLIBC_2.2 shm_unlink F GLIBC_2.2 timer_create F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index ef77799..b5a0751 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1834,6 +1834,11 @@ GLIBC_2.2 __xstat64 F GLIBC_2.2 _flushlbf F GLIBC_2.2 _res_hconf D 0x30 GLIBC_2.2 bind_textdomain_codeset F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 dcngettext F GLIBC_2.2 dngettext F GLIBC_2.2 fgetpos F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist index 2860df8..0c86217 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist @@ -673,6 +673,11 @@ GLIBC_2.3 clntudp_bufcreate F GLIBC_2.3 clntudp_create F GLIBC_2.3 clntunix_create F GLIBC_2.3 clock F +GLIBC_2.3 clock_getcpuclockid F +GLIBC_2.3 clock_getres F +GLIBC_2.3 clock_gettime F +GLIBC_2.3 clock_nanosleep F +GLIBC_2.3 clock_settime F GLIBC_2.3 clone F GLIBC_2.3 close F GLIBC_2.3 closedir F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist index e76b7eb..6a5bd96 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist @@ -13,11 +13,6 @@ GLIBC_2.3 aio_suspend F GLIBC_2.3 aio_suspend64 F GLIBC_2.3 aio_write F GLIBC_2.3 aio_write64 F -GLIBC_2.3 clock_getcpuclockid F -GLIBC_2.3 clock_getres F -GLIBC_2.3 clock_gettime F -GLIBC_2.3 clock_nanosleep F -GLIBC_2.3 clock_settime F GLIBC_2.3 lio_listio F GLIBC_2.3 lio_listio64 F GLIBC_2.3 shm_open F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 576295d..122d0fb 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1829,6 +1829,11 @@ GLIBC_2.2 _flushlbf F GLIBC_2.2 _res_hconf D 0x30 GLIBC_2.2 alphasort64 F GLIBC_2.2 bind_textdomain_codeset F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 dcngettext F GLIBC_2.2 dngettext F GLIBC_2.2 fgetpos F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist index 595f1b7..bb03781 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist @@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F GLIBC_2.2 shm_open F GLIBC_2.2 shm_unlink F GLIBC_2.2 timer_create F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index abf0473..efe588a 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -632,6 +632,11 @@ GLIBC_2.2 clntudp_bufcreate F GLIBC_2.2 clntudp_create F GLIBC_2.2 clntunix_create F GLIBC_2.2 clock F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 clone F GLIBC_2.2 close F GLIBC_2.2 closedir F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist index 41be3bb..5905498 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist @@ -13,11 +13,6 @@ GLIBC_2.2 aio_suspend F GLIBC_2.2 aio_suspend64 F GLIBC_2.2 aio_write F GLIBC_2.2 aio_write64 F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F GLIBC_2.2 lio_listio F GLIBC_2.2 lio_listio64 F GLIBC_2.2 shm_open F diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist index 41977f6..4b057bf 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist @@ -618,6 +618,11 @@ GLIBC_2.2 clntudp_bufcreate F GLIBC_2.2 clntudp_create F GLIBC_2.2 clntunix_create F GLIBC_2.2 clock F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 clone F GLIBC_2.2 close F GLIBC_2.2 closedir F diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist index 595f1b7..bb03781 100644 --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist @@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F GLIBC_2.2 shm_open F GLIBC_2.2 shm_unlink F GLIBC_2.2 timer_create F diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist index 41977f6..4b057bf 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist @@ -618,6 +618,11 @@ GLIBC_2.2 clntudp_bufcreate F GLIBC_2.2 clntudp_create F GLIBC_2.2 clntunix_create F GLIBC_2.2 clock F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 clone F GLIBC_2.2 close F GLIBC_2.2 closedir F diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist index 595f1b7..bb03781 100644 --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist @@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F GLIBC_2.2 shm_open F GLIBC_2.2 shm_unlink F GLIBC_2.2 timer_create F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 3d2f00c..49cd597 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1826,6 +1826,11 @@ GLIBC_2.2 __xstat64 F GLIBC_2.2 _flushlbf F GLIBC_2.2 _res_hconf D 0x30 GLIBC_2.2 bind_textdomain_codeset F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 dcngettext F GLIBC_2.2 dngettext F GLIBC_2.2 fgetpos F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist index cb874f4..38f0aad 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist @@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F GLIBC_2.2 shm_open F GLIBC_2.2 shm_unlink F GLIBC_2.2 timer_create F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 2f20643..95e68e0 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -660,6 +660,11 @@ GLIBC_2.2 clntudp_bufcreate F GLIBC_2.2 clntudp_create F GLIBC_2.2 clntunix_create F GLIBC_2.2 clock F +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F GLIBC_2.2 clone F GLIBC_2.2 close F GLIBC_2.2 closedir F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist index d7a049c..71f86e0 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist @@ -15,11 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 clock_getcpuclockid F -GLIBC_2.2 clock_getres F -GLIBC_2.2 clock_gettime F -GLIBC_2.2 clock_nanosleep F -GLIBC_2.2 clock_settime F GLIBC_2.2 shm_open F GLIBC_2.2 shm_unlink F GLIBC_2.2 timer_create F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 59f85d9..1f2dbd1 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -621,6 +621,11 @@ GLIBC_2.2.5 clntudp_bufcreate F GLIBC_2.2.5 clntudp_create F GLIBC_2.2.5 clntunix_create F GLIBC_2.2.5 clock F +GLIBC_2.2.5 clock_getcpuclockid F +GLIBC_2.2.5 clock_getres F +GLIBC_2.2.5 clock_gettime F +GLIBC_2.2.5 clock_nanosleep F +GLIBC_2.2.5 clock_settime F GLIBC_2.2.5 clone F GLIBC_2.2.5 close F GLIBC_2.2.5 closedir F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist index e2e8b60..95e3f22 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist @@ -13,11 +13,6 @@ GLIBC_2.2.5 aio_suspend F GLIBC_2.2.5 aio_suspend64 F GLIBC_2.2.5 aio_write F GLIBC_2.2.5 aio_write64 F -GLIBC_2.2.5 clock_getcpuclockid F -GLIBC_2.2.5 clock_getres F -GLIBC_2.2.5 clock_gettime F -GLIBC_2.2.5 clock_nanosleep F -GLIBC_2.2.5 clock_settime F GLIBC_2.2.5 lio_listio F GLIBC_2.2.5 lio_listio64 F GLIBC_2.2.5 shm_open F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 67a4e23..59da85a 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -660,6 +660,11 @@ GLIBC_2.16 clntudp_create F GLIBC_2.16 clntunix_create F GLIBC_2.16 clock F GLIBC_2.16 clock_adjtime F +GLIBC_2.16 clock_getcpuclockid F +GLIBC_2.16 clock_getres F +GLIBC_2.16 clock_gettime F +GLIBC_2.16 clock_nanosleep F +GLIBC_2.16 clock_settime F GLIBC_2.16 clone F GLIBC_2.16 close F GLIBC_2.16 closedir F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist index 94e84e4..66969fb 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist @@ -14,11 +14,6 @@ GLIBC_2.16 aio_suspend F GLIBC_2.16 aio_suspend64 F GLIBC_2.16 aio_write F GLIBC_2.16 aio_write64 F -GLIBC_2.16 clock_getcpuclockid F -GLIBC_2.16 clock_getres F -GLIBC_2.16 clock_gettime F -GLIBC_2.16 clock_nanosleep F -GLIBC_2.16 clock_settime F GLIBC_2.16 lio_listio F GLIBC_2.16 lio_listio64 F GLIBC_2.16 mq_close F diff --git a/time/Makefile b/time/Makefile index a428f55..85a62c0 100644 --- a/time/Makefile +++ b/time/Makefile @@ -36,14 +36,18 @@ routines := offtime asctime clock ctime ctime_r difftime \ stime dysize timegm ftime \ getdate strptime strptime_l \ strftime wcsftime strftime_l wcsftime_l \ - timespec_get + timespec_get \ + clock_getcpuclockid clock_getres \ + clock_gettime clock_settime clock_nanosleep + aux := era alt_digit lc-time-cleanup tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \ tst-getdate tst-mktime tst-mktime2 tst-ftime_l tst-strftime \ tst-mktime3 tst-strptime2 bug-asctime bug-asctime_r bug-mktime1 \ tst-strptime3 bug-getdate1 tst-strptime-whitespace tst-ftime \ - tst-tzname tst-y2039 bug-mktime4 tst-strftime2 tst-strftime3 + tst-tzname tst-y2039 bug-mktime4 tst-strftime2 tst-strftime3 \ + tst-clock tst-clock2 tst-clock_nanosleep tst-cpuclock1 include ../Rules diff --git a/time/Versions b/time/Versions index fd83818..8788e19 100644 --- a/time/Versions +++ b/time/Versions @@ -49,6 +49,10 @@ libc { GLIBC_2.2 { # w* wcsftime; + + # c*; actually in librt in version 2.2, moved to libc in 2.17 + clock_getres; clock_gettime; clock_settime; clock_getcpuclockid; + clock_nanosleep; } GLIBC_2.3 { # these internal names are used by libstdc++ @@ -65,4 +69,13 @@ libc { GLIBC_2.16 { timespec_get; } + GLIBC_2.17 { + # c* + clock_getres; clock_gettime; clock_settime; clock_getcpuclockid; + clock_nanosleep; + } + GLIBC_PRIVATE { + # same as clock_gettime; used in other libraries + __clock_gettime; + } } diff --git a/rt/clock_getcpuclockid.c b/time/clock_getcpuclockid.c index 22b9f13..8d205ab 100644 --- a/rt/clock_getcpuclockid.c +++ b/time/clock_getcpuclockid.c @@ -19,6 +19,7 @@ #include <errno.h> #include <time.h> #include <unistd.h> +#include <shlib-compat.h> int __clock_getcpuclockid (pid_t pid, clockid_t *clock_id) @@ -37,4 +38,10 @@ __clock_getcpuclockid (pid_t pid, clockid_t *clock_id) return ENOENT; #endif } -weak_alias (__clock_getcpuclockid, clock_getcpuclockid) +versioned_symbol (libc, __clock_getcpuclockid, clock_getcpuclockid, GLIBC_2_17); +/* clock_getcpuclockid moved to libc in version 2.17; + old binaries may expect the symbol version it had in librt. */ +#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17) +strong_alias (__clock_getcpuclockid, __clock_getcpuclockid_2); +compat_symbol (libc, __clock_getcpuclockid_2, clock_getcpuclockid, GLIBC_2_2); +#endif diff --git a/rt/clock_getres.c b/time/clock_getres.c index b990bf0..412f80f 100644 --- a/rt/clock_getres.c +++ b/time/clock_getres.c @@ -18,6 +18,7 @@ #include <errno.h> #include <time.h> +#include <shlib-compat.h> /* Get resolution of clock. */ int @@ -26,5 +27,13 @@ __clock_getres (clockid_t clock_id, struct timespec *res) __set_errno (ENOSYS); return -1; } -weak_alias (__clock_getres, clock_getres) + +versioned_symbol (libc, __clock_getres, clock_getres, GLIBC_2_17); +/* clock_getres moved to libc in version 2.17; + old binaries may expect the symbol version it had in librt. */ +#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17) +strong_alias (__clock_getres, __clock_getres_2); +compat_symbol (libc, __clock_getres_2, clock_getres, GLIBC_2_2); +#endif + stub_warning (clock_getres) diff --git a/rt/clock_gettime.c b/time/clock_gettime.c index 0426dd2..92c6081 100644 --- a/rt/clock_gettime.c +++ b/time/clock_gettime.c @@ -18,6 +18,7 @@ #include <errno.h> #include <time.h> +#include <shlib-compat.h> /* Get current value of CLOCK and store it in TP. */ int @@ -26,6 +27,14 @@ __clock_gettime (clockid_t clock_id, struct timespec *tp) __set_errno (ENOSYS); return -1; } -weak_alias (__clock_gettime, clock_gettime) libc_hidden_def (__clock_gettime) + +versioned_symbol (libc, __clock_gettime, clock_gettime, GLIBC_2_17); +/* clock_gettime moved to libc in version 2.17; + old binaries may expect the symbol version it had in librt. */ +#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17) +strong_alias (__clock_gettime, __clock_gettime_2); +compat_symbol (libc, __clock_gettime_2, clock_gettime, GLIBC_2_2); +#endif + stub_warning (clock_gettime) diff --git a/rt/clock_nanosleep.c b/time/clock_nanosleep.c index 5b724e5..c53c820 100644 --- a/rt/clock_nanosleep.c +++ b/time/clock_nanosleep.c @@ -18,6 +18,7 @@ #include <errno.h> #include <time.h> +#include <shlib-compat.h> int __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req, @@ -33,5 +34,13 @@ __clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req, /* Not implemented. */ return ENOSYS; } -weak_alias (__clock_nanosleep, clock_nanosleep) + +versioned_symbol (libc, __clock_nanosleep, clock_nanosleep, GLIBC_2_17); +/* clock_nanosleep moved to libc in version 2.17; + old binaries may expect the symbol version it had in librt. */ +#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17) +strong_alias (__clock_nanosleep, __clock_nanosleep_2); +compat_symbol (libc, __clock_nanosleep_2, clock_nanosleep, GLIBC_2_2); +#endif + stub_warning (clock_nanosleep) diff --git a/rt/clock_settime.c b/time/clock_settime.c index 891925a..dd86a1c 100644 --- a/rt/clock_settime.c +++ b/time/clock_settime.c @@ -18,6 +18,7 @@ #include <errno.h> #include <time.h> +#include <shlib-compat.h> /* Set CLOCK to value TP. */ int @@ -26,5 +27,14 @@ __clock_settime (clockid_t clock_id, const struct timespec *tp) __set_errno (ENOSYS); return -1; } -weak_alias (__clock_settime, clock_settime) +libc_hidden_def (__clock_settime) + +versioned_symbol (libc, __clock_settime, clock_settime, GLIBC_2_17); +/* clock_settime moved to libc in version 2.17; + old binaries may expect the symbol version it had in librt. */ +#if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_17) +strong_alias (__clock_settime, __clock_settime_2); +compat_symbol (libc, __clock_settime_2, clock_settime, GLIBC_2_2); +#endif + stub_warning (clock_settime) diff --git a/rt/tst-clock.c b/time/tst-clock.c index 2e19bb1..2e19bb1 100644 --- a/rt/tst-clock.c +++ b/time/tst-clock.c diff --git a/rt/tst-clock2.c b/time/tst-clock2.c index 4c8fb9f..4c8fb9f 100644 --- a/rt/tst-clock2.c +++ b/time/tst-clock2.c diff --git a/rt/tst-clock_nanosleep.c b/time/tst-clock_nanosleep.c index f5df327..f5df327 100644 --- a/rt/tst-clock_nanosleep.c +++ b/time/tst-clock_nanosleep.c diff --git a/rt/tst-cpuclock1.c b/time/tst-cpuclock1.c index e3f23aa..e3f23aa 100644 --- a/rt/tst-cpuclock1.c +++ b/time/tst-cpuclock1.c |