[32/34] Linux: Move timer_gettime, __timer_gettime64 from librt to libc

Message ID bc588a4d9455b011a9a768c878c97b8de66a08af.1623956058.git.fweimer@redhat.com
State Superseded
Headers show
Series
  • Move librt into libc
Related show

Commit Message

Florian Weimer via Libc-alpha June 17, 2021, 6:59 p.m.
The symbols were moved using scripts/move-symbol-to-libc.py.

The way the ABI intransition is implemented is changed with this
commit: the implementation is now consolidated in one file with a
TIMER_T_WAS_INT_COMPAT check.
---
 include/time.h                                |  6 +-
 rt/Makefile                                   |  2 +-
 rt/Versions                                   |  4 +-
 sysdeps/unix/sysv/linux/Versions              |  3 +-
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  2 +
 sysdeps/unix/sysv/linux/aarch64/librt.abilist |  1 -
 sysdeps/unix/sysv/linux/alpha/Versions        |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  3 +
 sysdeps/unix/sysv/linux/alpha/librt.abilist   |  2 -
 sysdeps/unix/sysv/linux/alpha/timer_gettime.c |  1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  2 +
 sysdeps/unix/sysv/linux/arc/librt.abilist     |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  3 +
 sysdeps/unix/sysv/linux/arm/be/librt.abilist  |  2 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  3 +
 sysdeps/unix/sysv/linux/arm/le/librt.abilist  |  2 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  3 +
 sysdeps/unix/sysv/linux/csky/librt.abilist    |  2 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  3 +
 sysdeps/unix/sysv/linux/hppa/librt.abilist    |  2 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  3 +
 sysdeps/unix/sysv/linux/i386/librt.abilist    |  2 -
 sysdeps/unix/sysv/linux/ia64/Versions         |  1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  3 +
 sysdeps/unix/sysv/linux/ia64/librt.abilist    |  2 -
 sysdeps/unix/sysv/linux/ia64/timer_gettime.c  |  1 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |  3 +
 .../sysv/linux/m68k/coldfire/librt.abilist    |  2 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  3 +
 .../unix/sysv/linux/m68k/m680x0/librt.abilist |  2 -
 .../sysv/linux/microblaze/be/libc.abilist     |  3 +
 .../sysv/linux/microblaze/be/librt.abilist    |  2 -
 .../sysv/linux/microblaze/le/libc.abilist     |  3 +
 .../sysv/linux/microblaze/le/librt.abilist    |  2 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  3 +
 .../unix/sysv/linux/mips/mips32/librt.abilist |  2 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  3 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  3 +
 .../sysv/linux/mips/mips64/n32/librt.abilist  |  2 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  2 +
 .../sysv/linux/mips/mips64/n64/librt.abilist  |  1 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  3 +
 sysdeps/unix/sysv/linux/nios2/librt.abilist   |  2 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  3 +
 .../linux/powerpc/powerpc32/librt.abilist     |  2 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |  3 +
 .../sysv/linux/powerpc/powerpc64/Versions     |  1 -
 .../linux/powerpc/powerpc64/be/libc.abilist   |  3 +
 .../linux/powerpc/powerpc64/be/librt.abilist  |  2 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |  2 +
 .../linux/powerpc/powerpc64/le/librt.abilist  |  1 -
 .../linux/powerpc/powerpc64/timer_gettime.c   |  1 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  2 +
 .../unix/sysv/linux/riscv/rv32/librt.abilist  |  1 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  2 +
 .../unix/sysv/linux/riscv/rv64/librt.abilist  |  1 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  3 +
 .../sysv/linux/s390/s390-32/librt.abilist     |  2 -
 sysdeps/unix/sysv/linux/s390/s390-64/Versions |  1 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  3 +
 .../sysv/linux/s390/s390-64/librt.abilist     |  2 -
 .../sysv/linux/s390/s390-64/timer_gettime.c   |  1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  3 +
 sysdeps/unix/sysv/linux/sh/be/librt.abilist   |  2 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  3 +
 sysdeps/unix/sysv/linux/sh/le/librt.abilist   |  2 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |  3 +
 .../sysv/linux/sparc/sparc32/librt.abilist    |  2 -
 .../unix/sysv/linux/sparc/sparc64/Versions    |  1 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |  3 +
 .../sysv/linux/sparc/sparc64/librt.abilist    |  2 -
 .../sysv/linux/sparc/sparc64/timer_gettime.c  |  1 -
 sysdeps/unix/sysv/linux/timer_gettime.c       | 63 ++++++++++++++++---
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  3 +
 .../unix/sysv/linux/x86_64/64/librt.abilist   |  2 -
 sysdeps/unix/sysv/linux/x86_64/Versions       |  1 -
 .../unix/sysv/linux/x86_64/timer_gettime.c    | 41 ------------
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  2 +
 .../unix/sysv/linux/x86_64/x32/librt.abilist  |  1 -
 79 files changed, 153 insertions(+), 119 deletions(-)
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_gettime.c
 delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_gettime.c
 delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c
 delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c
 delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_gettime.c

-- 
2.31.1

Comments

Florian Weimer via Libc-alpha June 24, 2021, 5:36 p.m. | #1
On 17/06/2021 15:59, Florian Weimer via Libc-alpha wrote:
> The symbols were moved using scripts/move-symbol-to-libc.py.

> 

> The way the ABI intransition is implemented is changed with this

> commit: the implementation is now consolidated in one file with a

> TIMER_T_WAS_INT_COMPAT check.



LGTM, thanks. There is only a nit below.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>


> ---

>  include/time.h                                |  6 +-

>  rt/Makefile                                   |  2 +-

>  rt/Versions                                   |  4 +-

>  sysdeps/unix/sysv/linux/Versions              |  3 +-

>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  2 +

>  sysdeps/unix/sysv/linux/aarch64/librt.abilist |  1 -

>  sysdeps/unix/sysv/linux/alpha/Versions        |  1 -

>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |  3 +

>  sysdeps/unix/sysv/linux/alpha/librt.abilist   |  2 -

>  sysdeps/unix/sysv/linux/alpha/timer_gettime.c |  1 -

>  sysdeps/unix/sysv/linux/arc/libc.abilist      |  2 +

>  sysdeps/unix/sysv/linux/arc/librt.abilist     |  1 -

>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  3 +

>  sysdeps/unix/sysv/linux/arm/be/librt.abilist  |  2 -

>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  3 +

>  sysdeps/unix/sysv/linux/arm/le/librt.abilist  |  2 -

>  sysdeps/unix/sysv/linux/csky/libc.abilist     |  3 +

>  sysdeps/unix/sysv/linux/csky/librt.abilist    |  2 -

>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |  3 +

>  sysdeps/unix/sysv/linux/hppa/librt.abilist    |  2 -

>  sysdeps/unix/sysv/linux/i386/libc.abilist     |  3 +

>  sysdeps/unix/sysv/linux/i386/librt.abilist    |  2 -

>  sysdeps/unix/sysv/linux/ia64/Versions         |  1 -

>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |  3 +

>  sysdeps/unix/sysv/linux/ia64/librt.abilist    |  2 -

>  sysdeps/unix/sysv/linux/ia64/timer_gettime.c  |  1 -

>  .../sysv/linux/m68k/coldfire/libc.abilist     |  3 +

>  .../sysv/linux/m68k/coldfire/librt.abilist    |  2 -

>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  3 +

>  .../unix/sysv/linux/m68k/m680x0/librt.abilist |  2 -

>  .../sysv/linux/microblaze/be/libc.abilist     |  3 +

>  .../sysv/linux/microblaze/be/librt.abilist    |  2 -

>  .../sysv/linux/microblaze/le/libc.abilist     |  3 +

>  .../sysv/linux/microblaze/le/librt.abilist    |  2 -

>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |  3 +

>  .../unix/sysv/linux/mips/mips32/librt.abilist |  2 -

>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |  3 +

>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  3 +

>  .../sysv/linux/mips/mips64/n32/librt.abilist  |  2 -

>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  2 +

>  .../sysv/linux/mips/mips64/n64/librt.abilist  |  1 -

>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  3 +

>  sysdeps/unix/sysv/linux/nios2/librt.abilist   |  2 -

>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  3 +

>  .../linux/powerpc/powerpc32/librt.abilist     |  2 -

>  .../powerpc/powerpc32/nofpu/libc.abilist      |  3 +

>  .../sysv/linux/powerpc/powerpc64/Versions     |  1 -

>  .../linux/powerpc/powerpc64/be/libc.abilist   |  3 +

>  .../linux/powerpc/powerpc64/be/librt.abilist  |  2 -

>  .../linux/powerpc/powerpc64/le/libc.abilist   |  2 +

>  .../linux/powerpc/powerpc64/le/librt.abilist  |  1 -

>  .../linux/powerpc/powerpc64/timer_gettime.c   |  1 -

>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  2 +

>  .../unix/sysv/linux/riscv/rv32/librt.abilist  |  1 -

>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  2 +

>  .../unix/sysv/linux/riscv/rv64/librt.abilist  |  1 -

>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  3 +

>  .../sysv/linux/s390/s390-32/librt.abilist     |  2 -

>  sysdeps/unix/sysv/linux/s390/s390-64/Versions |  1 -

>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  3 +

>  .../sysv/linux/s390/s390-64/librt.abilist     |  2 -

>  .../sysv/linux/s390/s390-64/timer_gettime.c   |  1 -

>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  3 +

>  sysdeps/unix/sysv/linux/sh/be/librt.abilist   |  2 -

>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  3 +

>  sysdeps/unix/sysv/linux/sh/le/librt.abilist   |  2 -

>  .../sysv/linux/sparc/sparc32/libc.abilist     |  3 +

>  .../sysv/linux/sparc/sparc32/librt.abilist    |  2 -

>  .../unix/sysv/linux/sparc/sparc64/Versions    |  1 -

>  .../sysv/linux/sparc/sparc64/libc.abilist     |  3 +

>  .../sysv/linux/sparc/sparc64/librt.abilist    |  2 -

>  .../sysv/linux/sparc/sparc64/timer_gettime.c  |  1 -

>  sysdeps/unix/sysv/linux/timer_gettime.c       | 63 ++++++++++++++++---

>  .../unix/sysv/linux/x86_64/64/libc.abilist    |  3 +

>  .../unix/sysv/linux/x86_64/64/librt.abilist   |  2 -

>  sysdeps/unix/sysv/linux/x86_64/Versions       |  1 -

>  .../unix/sysv/linux/x86_64/timer_gettime.c    | 41 ------------

>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |  2 +

>  .../unix/sysv/linux/x86_64/x32/librt.abilist  |  1 -

>  79 files changed, 153 insertions(+), 119 deletions(-)

>  delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_gettime.c

>  delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_gettime.c

>  delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c

>  delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c

>  delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c

>  delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_gettime.c

> 

> diff --git a/include/time.h b/include/time.h

> index 980c6bd924..3f4ff44ac3 100644

> --- a/include/time.h

> +++ b/include/time.h

> @@ -218,7 +218,11 @@ libc_hidden_proto (__futimens64);

>  #else

>  extern int __timer_gettime64 (timer_t timerid, struct __itimerspec64 *value);

>  extern int __timerfd_gettime64 (int fd, struct __itimerspec64 *value);

> -librt_hidden_proto (__timer_gettime64);

> +# if PTHREAD_IN_LIBC

> +libc_hidden_proto (__timer_gettime64)

> +# else

> +librt_hidden_proto (__timer_gettime64)

> +# endif

>  libc_hidden_proto (__timerfd_gettime64);

>  #endif

>  


Ok.

> diff --git a/rt/Makefile b/rt/Makefile

> index 1eadb94ea8..e2ef5f4b0b 100644

> --- a/rt/Makefile

> +++ b/rt/Makefile

> @@ -30,7 +30,6 @@ routines = \

>  

>  librt-routines = \

>    librt-compat \

> -  timer_gettime \

>    timer_settime \

>  

>  librt-shared-only-routines = librt-compat

> @@ -63,6 +62,7 @@ $(librt-routines-var) += \

>    timer_create \

>    timer_delete \

>    timer_getoverr \

> +  timer_gettime \

>  

>  tests := tst-shm tst-timer tst-timer2 \

>  	 tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \


Ok.

> diff --git a/rt/Versions b/rt/Versions

> index de78be15dc..d1f05af013 100644

> --- a/rt/Versions

> +++ b/rt/Versions

> @@ -25,6 +25,7 @@ libc {

>      timer_create;

>      timer_delete;

>      timer_getoverrun;

> +    timer_gettime;

>  %endif

>      shm_open;

>      shm_unlink;

> @@ -87,6 +88,7 @@ libc {

>      timer_create;

>      timer_delete;

>      timer_getoverrun;

> +    timer_gettime;

>  %endif

>      shm_open;

>      shm_unlink;

> @@ -134,8 +136,8 @@ librt {

>      timer_create;

>      timer_delete;

>      timer_getoverrun;

> -%endif

>      timer_gettime;

> +%endif

>      timer_settime;

>    }

>    GLIBC_2.3.4 {


Ok.

> diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions

> index 31fb4a437b..9bb9d955a5 100644

> --- a/sysdeps/unix/sysv/linux/Versions

> +++ b/sysdeps/unix/sysv/linux/Versions

> @@ -126,6 +126,7 @@ libc {

>      timer_create;

>      timer_delete;

>      timer_getoverrun;

> +    timer_gettime;

>    }

>    GLIBC_2.3.4 {

>      sched_getaffinity; sched_setaffinity;

> @@ -267,6 +268,7 @@ libc {

>      __thrd_sleep64;

>      __time64;

>      __timegm64;

> +    __timer_gettime64;

>      __timerfd_gettime64;

>      __timerfd_settime64;

>      __timespec_get64;

> @@ -308,7 +310,6 @@ librt {

>    GLIBC_2.34 {

>  %ifdef TIME64_NON_DEFAULT

>      # 64-bit time_t support

> -    __timer_gettime64;

>      __timer_settime64;

>  %endif

>    }


Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist

> index 9426bbe3f8..23130c3c9e 100644

> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist

> @@ -2009,6 +2009,7 @@ GLIBC_2.17 timelocal F

>  GLIBC_2.17 timer_create F

>  GLIBC_2.17 timer_delete F

>  GLIBC_2.17 timer_getoverrun F

> +GLIBC_2.17 timer_gettime F

>  GLIBC_2.17 timerfd_create F

>  GLIBC_2.17 timerfd_gettime F

>  GLIBC_2.17 timerfd_settime F

> @@ -2535,6 +2536,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist

> index 493768f440..2cb1369ddb 100644

> --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist

> @@ -1,2 +1 @@

> -GLIBC_2.17 timer_gettime F

>  GLIBC_2.17 timer_settime F

> diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions

> index dd5b365d77..0359822d6d 100644

> --- a/sysdeps/unix/sysv/linux/alpha/Versions

> +++ b/sysdeps/unix/sysv/linux/alpha/Versions

> @@ -104,7 +104,6 @@ librt {

>    }

>    GLIBC_2.3.3 {

>      # Changed timer_t.

> -    timer_gettime;

>      timer_settime;

>    }

>  }


Ok.

> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist

> index 50ab6f3fc1..1f2fff3443 100644

> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist

> @@ -2096,6 +2096,7 @@ GLIBC_2.2 swscanf F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 ungetwc F

>  GLIBC_2.2 vfwprintf F

>  GLIBC_2.2 vfwscanf F

> @@ -2359,6 +2360,7 @@ GLIBC_2.3.3 sys_siglist D 0x208

>  GLIBC_2.3.3 timer_create F

>  GLIBC_2.3.3 timer_delete F

>  GLIBC_2.3.3 timer_getoverrun F

> +GLIBC_2.3.3 timer_gettime F

>  GLIBC_2.3.4 _OtsAddX F

>  GLIBC_2.3.4 _OtsConvertFloatTX F

>  GLIBC_2.3.4 _OtsConvertFloatXT F

> @@ -2632,6 +2634,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist

> index 34d42d122b..a2de1ecd94 100644

> --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist

> @@ -1,8 +1,6 @@

>  GLIBC_2.1 __librt_version_placeholder F

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

>  GLIBC_2.3 __librt_version_placeholder F

> -GLIBC_2.3.3 timer_gettime F

>  GLIBC_2.3.3 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

>  GLIBC_2.4 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/alpha/timer_gettime.c b/sysdeps/unix/sysv/linux/alpha/timer_gettime.c

> deleted file mode 100644

> index cea524bae5..0000000000

> --- a/sysdeps/unix/sysv/linux/alpha/timer_gettime.c

> +++ /dev/null

> @@ -1 +0,0 @@

> -#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>


Ok.

> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist

> index aafc056267..8ece5c40fb 100644

> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist

> @@ -1943,6 +1943,7 @@ GLIBC_2.32 timelocal F

>  GLIBC_2.32 timer_create F

>  GLIBC_2.32 timer_delete F

>  GLIBC_2.32 timer_getoverrun F

> +GLIBC_2.32 timer_gettime F

>  GLIBC_2.32 timerfd_create F

>  GLIBC_2.32 timerfd_gettime F

>  GLIBC_2.32 timerfd_settime F

> @@ -2294,6 +2295,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist

> index 14ae3d7c65..0023244be6 100644

> --- a/sysdeps/unix/sysv/linux/arc/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist

> @@ -1,2 +1 @@

> -GLIBC_2.32 timer_gettime F

>  GLIBC_2.32 timer_settime F

> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist

> index ac73d766ba..515c3a224a 100644

> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist

> @@ -271,6 +271,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -437,6 +438,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> @@ -2356,6 +2358,7 @@ GLIBC_2.4 timelocal F

>  GLIBC_2.4 timer_create F

>  GLIBC_2.4 timer_delete F

>  GLIBC_2.4 timer_getoverrun F

> +GLIBC_2.4 timer_gettime F

>  GLIBC_2.4 times F

>  GLIBC_2.4 timezone D 0x4

>  GLIBC_2.4 tmpfile F

> diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist

> index 78152d8fa3..2f84162558 100644

> --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist

> @@ -1,5 +1,3 @@

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

> -GLIBC_2.4 timer_gettime F

>  GLIBC_2.4 timer_settime F

>  GLIBC_2.7 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist

> index 96ad967292..7b7ca7d348 100644

> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist

> @@ -268,6 +268,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -434,6 +435,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> @@ -2353,6 +2355,7 @@ GLIBC_2.4 timelocal F

>  GLIBC_2.4 timer_create F

>  GLIBC_2.4 timer_delete F

>  GLIBC_2.4 timer_getoverrun F

> +GLIBC_2.4 timer_gettime F

>  GLIBC_2.4 times F

>  GLIBC_2.4 timezone D 0x4

>  GLIBC_2.4 tmpfile F

> diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist

> index 78152d8fa3..2f84162558 100644

> --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist

> @@ -1,5 +1,3 @@

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

> -GLIBC_2.4 timer_gettime F

>  GLIBC_2.4 timer_settime F

>  GLIBC_2.7 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist

> index 980ac9c497..d53acb2c08 100644

> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist

> @@ -2033,6 +2033,7 @@ GLIBC_2.29 timelocal F

>  GLIBC_2.29 timer_create F

>  GLIBC_2.29 timer_delete F

>  GLIBC_2.29 timer_getoverrun F

> +GLIBC_2.29 timer_gettime F

>  GLIBC_2.29 timerfd_create F

>  GLIBC_2.29 timerfd_gettime F

>  GLIBC_2.29 timerfd_settime F

> @@ -2391,6 +2392,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2557,6 +2559,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist

> index 9f89eb4e8b..52b2819a7d 100644

> --- a/sysdeps/unix/sysv/linux/csky/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist

> @@ -1,4 +1,2 @@

> -GLIBC_2.29 timer_gettime F

>  GLIBC_2.29 timer_settime F

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist

> index 0e6e1444d6..a592e3f628 100644

> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist

> @@ -1747,6 +1747,7 @@ GLIBC_2.2 timelocal F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 times F

>  GLIBC_2.2 timezone D 0x4

>  GLIBC_2.2 tmpfile F

> @@ -2344,6 +2345,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2510,6 +2512,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist

> index f04b1e7978..179d1d53da 100644

> --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist

> @@ -1,8 +1,6 @@

>  GLIBC_2.1 __librt_version_placeholder F

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

>  GLIBC_2.4 __librt_version_placeholder F

>  GLIBC_2.7 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist

> index d8693b0c7b..bd3824cb88 100644

> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist

> @@ -2109,6 +2109,7 @@ GLIBC_2.2 swscanf F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 ungetwc F

>  GLIBC_2.2 versionsort64 F

>  GLIBC_2.2 vfwprintf F

> @@ -2528,6 +2529,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2694,6 +2696,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist

> index f04b1e7978..179d1d53da 100644

> --- a/sysdeps/unix/sysv/linux/i386/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist

> @@ -1,8 +1,6 @@

>  GLIBC_2.1 __librt_version_placeholder F

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

>  GLIBC_2.4 __librt_version_placeholder F

>  GLIBC_2.7 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions

> index 1d09fca7e3..9a7faf067a 100644

> --- a/sysdeps/unix/sysv/linux/ia64/Versions

> +++ b/sysdeps/unix/sysv/linux/ia64/Versions

> @@ -30,7 +30,6 @@ libc {

>  librt {

>    GLIBC_2.3.3 {

>      # Changed timer_t.

> -    timer_gettime;

>      timer_settime;

>    }

>  }


Ok.

> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist

> index 984b58be61..d589ce16d6 100644

> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist

> @@ -1768,6 +1768,7 @@ GLIBC_2.2 timelocal F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 times F

>  GLIBC_2.2 timezone D 0x8

>  GLIBC_2.2 tmpfile F

> @@ -2224,6 +2225,7 @@ GLIBC_2.3.3 sys_siglist D 0x208

>  GLIBC_2.3.3 timer_create F

>  GLIBC_2.3.3 timer_delete F

>  GLIBC_2.3.3 timer_getoverrun F

> +GLIBC_2.3.3 timer_gettime F

>  GLIBC_2.3.4 __chk_fail F

>  GLIBC_2.3.4 __fprintf_chk F

>  GLIBC_2.3.4 __gets_chk F

> @@ -2470,6 +2472,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist

> index c56040a5f9..7d8e91b0d9 100644

> --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist

> @@ -1,7 +1,5 @@

>  GLIBC_2.1 __librt_version_placeholder F

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

> -GLIBC_2.3.3 timer_gettime F

>  GLIBC_2.3.3 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

>  GLIBC_2.4 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/ia64/timer_gettime.c b/sysdeps/unix/sysv/linux/ia64/timer_gettime.c

> deleted file mode 100644

> index cea524bae5..0000000000

> --- a/sysdeps/unix/sysv/linux/ia64/timer_gettime.c

> +++ /dev/null

> @@ -1 +0,0 @@

> -#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>


Ok.

> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist

> index a8d6ad9a4f..7e986dcfd5 100644

> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist

> @@ -272,6 +272,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -438,6 +439,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> @@ -2336,6 +2338,7 @@ GLIBC_2.4 timelocal F

>  GLIBC_2.4 timer_create F

>  GLIBC_2.4 timer_delete F

>  GLIBC_2.4 timer_getoverrun F

> +GLIBC_2.4 timer_gettime F

>  GLIBC_2.4 times F

>  GLIBC_2.4 timezone D 0x4

>  GLIBC_2.4 tmpfile F

> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist

> index 78152d8fa3..2f84162558 100644

> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist

> @@ -1,5 +1,3 @@

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

> -GLIBC_2.4 timer_gettime F

>  GLIBC_2.4 timer_settime F

>  GLIBC_2.7 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist

> index 62590726a8..97fe827b8d 100644

> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist

> @@ -2065,6 +2065,7 @@ GLIBC_2.2 swscanf F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 ungetwc F

>  GLIBC_2.2 versionsort64 F

>  GLIBC_2.2 vfwprintf F

> @@ -2471,6 +2472,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2637,6 +2639,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist

> index f04b1e7978..179d1d53da 100644

> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist

> @@ -1,8 +1,6 @@

>  GLIBC_2.1 __librt_version_placeholder F

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

>  GLIBC_2.4 __librt_version_placeholder F

>  GLIBC_2.7 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist

> index 3fd1621454..56b5f885b7 100644

> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist

> @@ -2013,6 +2013,7 @@ GLIBC_2.18 timelocal F

>  GLIBC_2.18 timer_create F

>  GLIBC_2.18 timer_delete F

>  GLIBC_2.18 timer_getoverrun F

> +GLIBC_2.18 timer_gettime F

>  GLIBC_2.18 timerfd_create F

>  GLIBC_2.18 timerfd_gettime F

>  GLIBC_2.18 timerfd_settime F

> @@ -2442,6 +2443,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2608,6 +2610,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist

> index f308a63244..8a4faf155c 100644

> --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist

> @@ -1,4 +1,2 @@

> -GLIBC_2.18 timer_gettime F

>  GLIBC_2.18 timer_settime F

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist

> index 2b839a784d..8910180ff8 100644

> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist

> @@ -2013,6 +2013,7 @@ GLIBC_2.18 timelocal F

>  GLIBC_2.18 timer_create F

>  GLIBC_2.18 timer_delete F

>  GLIBC_2.18 timer_getoverrun F

> +GLIBC_2.18 timer_gettime F

>  GLIBC_2.18 timerfd_create F

>  GLIBC_2.18 timerfd_gettime F

>  GLIBC_2.18 timerfd_settime F

> @@ -2439,6 +2440,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2605,6 +2607,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist

> index f308a63244..8a4faf155c 100644

> --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist

> @@ -1,4 +1,2 @@

> -GLIBC_2.18 timer_gettime F

>  GLIBC_2.18 timer_settime F

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist

> index ac623acbd3..e81456caf7 100644

> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist

> @@ -1996,6 +1996,7 @@ GLIBC_2.2 tdestroy F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 tmpfile F

>  GLIBC_2.2 tmpfile64 F

>  GLIBC_2.2 truncate64 F

> @@ -2436,6 +2437,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2602,6 +2604,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist

> index af07e28f55..211a60584c 100644

> --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist

> @@ -1,7 +1,5 @@

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

>  GLIBC_2.4 __librt_version_placeholder F

>  GLIBC_2.7 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist

> index 776b30b48a..ecbad99217 100644

> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist

> @@ -1994,6 +1994,7 @@ GLIBC_2.2 tdestroy F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 tmpfile F

>  GLIBC_2.2 tmpfile64 F

>  GLIBC_2.2 truncate64 F

> @@ -2434,6 +2435,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2600,6 +2602,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist

> index 1ffaa8e684..986b16ece3 100644

> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist

> @@ -1992,6 +1992,7 @@ GLIBC_2.2 tdestroy F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 tmpfile F

>  GLIBC_2.2 tmpfile64 F

>  GLIBC_2.2 truncate64 F

> @@ -2442,6 +2443,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2608,6 +2610,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist

> index af07e28f55..211a60584c 100644

> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist

> @@ -1,7 +1,5 @@

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

>  GLIBC_2.4 __librt_version_placeholder F

>  GLIBC_2.7 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist

> index b0c5d0a636..141e1b295f 100644

> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist

> @@ -1988,6 +1988,7 @@ GLIBC_2.2 tdestroy F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 tmpfile F

>  GLIBC_2.2 tmpfile64 F

>  GLIBC_2.2 truncate64 F

> @@ -2523,6 +2524,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist

> index a92565949e..406120e1d8 100644

> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist

> @@ -1,4 +1,3 @@

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

>  GLIBC_2.4 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist

> index 77778d11f3..71dc98ecf7 100644

> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist

> @@ -2055,6 +2055,7 @@ GLIBC_2.21 timelocal F

>  GLIBC_2.21 timer_create F

>  GLIBC_2.21 timer_delete F

>  GLIBC_2.21 timer_getoverrun F

> +GLIBC_2.21 timer_gettime F

>  GLIBC_2.21 timerfd_create F

>  GLIBC_2.21 timerfd_gettime F

>  GLIBC_2.21 timerfd_settime F

> @@ -2481,6 +2482,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2647,6 +2649,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist

> index 8ab5ece2b0..c162738eae 100644

> --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist

> @@ -1,4 +1,2 @@

> -GLIBC_2.21 timer_gettime F

>  GLIBC_2.21 timer_settime F

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist

> index 5562012575..03a0a0579a 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist

> @@ -2070,6 +2070,7 @@ GLIBC_2.2 swscanf F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 ungetwc F

>  GLIBC_2.2 vfwprintf F

>  GLIBC_2.2 vfwscanf F

> @@ -2498,6 +2499,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2664,6 +2666,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist

> index f04b1e7978..179d1d53da 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist

> @@ -1,8 +1,6 @@

>  GLIBC_2.1 __librt_version_placeholder F

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

>  GLIBC_2.4 __librt_version_placeholder F

>  GLIBC_2.7 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist

> index f0adf7b58b..793531d9c4 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist

> @@ -2074,6 +2074,7 @@ GLIBC_2.2 swscanf F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 ungetwc F

>  GLIBC_2.2 vfwprintf F

>  GLIBC_2.2 vfwscanf F

> @@ -2531,6 +2532,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2697,6 +2699,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions

> index a69927d41d..8607ac1012 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions

> @@ -29,7 +29,6 @@ libc {

>  librt {

>    GLIBC_2.3.3 {

>      # Changed timer_t.

> -    timer_gettime;

>      timer_settime;

>    }

>  }


Ok.

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist

> index e74ecec60f..21763f0238 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist

> @@ -1889,6 +1889,7 @@ GLIBC_2.3 timelocal F

>  GLIBC_2.3 timer_create F

>  GLIBC_2.3 timer_delete F

>  GLIBC_2.3 timer_getoverrun F

> +GLIBC_2.3 timer_gettime F

>  GLIBC_2.3 times F

>  GLIBC_2.3 timezone D 0x8

>  GLIBC_2.3 tmpfile F

> @@ -2168,6 +2169,7 @@ GLIBC_2.3.3 sys_siglist D 0x208

>  GLIBC_2.3.3 timer_create F

>  GLIBC_2.3.3 timer_delete F

>  GLIBC_2.3.3 timer_getoverrun F

> +GLIBC_2.3.3 timer_gettime F

>  GLIBC_2.3.4 __chk_fail F

>  GLIBC_2.3.4 __fprintf_chk F

>  GLIBC_2.3.4 __gets_chk F

> @@ -2434,6 +2436,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist

> index dd8b2ad6ef..bfaae8ac0e 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist

> @@ -1,6 +1,4 @@

> -GLIBC_2.3 timer_gettime F

>  GLIBC_2.3 timer_settime F

> -GLIBC_2.3.3 timer_gettime F

>  GLIBC_2.3.3 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

>  GLIBC_2.4 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist

> index 2a0c06b881..ec8a207385 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist

> @@ -2097,6 +2097,7 @@ GLIBC_2.17 timelocal F

>  GLIBC_2.17 timer_create F

>  GLIBC_2.17 timer_delete F

>  GLIBC_2.17 timer_getoverrun F

> +GLIBC_2.17 timer_gettime F

>  GLIBC_2.17 timerfd_create F

>  GLIBC_2.17 timerfd_gettime F

>  GLIBC_2.17 timerfd_settime F

> @@ -2731,6 +2732,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist

> index 493768f440..2cb1369ddb 100644

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist

> @@ -1,2 +1 @@

> -GLIBC_2.17 timer_gettime F

>  GLIBC_2.17 timer_settime F

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c

> deleted file mode 100644

> index cea524bae5..0000000000

> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c

> +++ /dev/null

> @@ -1 +0,0 @@

> -#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>


Ok.

> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist

> index 3e0e33bbb3..c7b749f6a7 100644

> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist

> @@ -1953,6 +1953,7 @@ GLIBC_2.33 timelocal F

>  GLIBC_2.33 timer_create F

>  GLIBC_2.33 timer_delete F

>  GLIBC_2.33 timer_getoverrun F

> +GLIBC_2.33 timer_gettime F

>  GLIBC_2.33 timerfd_create F

>  GLIBC_2.33 timerfd_gettime F

>  GLIBC_2.33 timerfd_settime F

> @@ -2296,6 +2297,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist

> index de338094e1..c59f14490e 100644

> --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist

> @@ -1,2 +1 @@

> -GLIBC_2.33 timer_gettime F

>  GLIBC_2.33 timer_settime F

> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist

> index 1092e5a170..33e13783fc 100644

> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist

> @@ -2019,6 +2019,7 @@ GLIBC_2.27 timelocal F

>  GLIBC_2.27 timer_create F

>  GLIBC_2.27 timer_delete F

>  GLIBC_2.27 timer_getoverrun F

> +GLIBC_2.27 timer_gettime F

>  GLIBC_2.27 timerfd_create F

>  GLIBC_2.27 timerfd_gettime F

>  GLIBC_2.27 timerfd_settime F

> @@ -2496,6 +2497,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist

> index 624ab969d8..62ff23fd04 100644

> --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist

> @@ -1,2 +1 @@

> -GLIBC_2.27 timer_gettime F

>  GLIBC_2.27 timer_settime F

> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist

> index 710cafe7c0..6681f84af2 100644

> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist

> @@ -2068,6 +2068,7 @@ GLIBC_2.2 swscanf F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 ungetwc F

>  GLIBC_2.2 versionsort64 F

>  GLIBC_2.2 vfwprintf F

> @@ -2496,6 +2497,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2662,6 +2664,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist

> index f04b1e7978..179d1d53da 100644

> --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist

> @@ -1,8 +1,6 @@

>  GLIBC_2.1 __librt_version_placeholder F

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

>  GLIBC_2.4 __librt_version_placeholder F

>  GLIBC_2.7 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions

> index e7f968fcdf..5c682764ad 100644

> --- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions

> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions

> @@ -9,7 +9,6 @@ libc {

>  librt {

>    GLIBC_2.3.3 {

>      # Changed timer_t.

> -    timer_gettime;

>      timer_settime;

>    }

>  }


Ok.

> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist

> index 6b2c7e7d68..e97c113408 100644

> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist

> @@ -1764,6 +1764,7 @@ GLIBC_2.2 timelocal F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 times F

>  GLIBC_2.2 timezone D 0x8

>  GLIBC_2.2 tmpfile F

> @@ -2214,6 +2215,7 @@ GLIBC_2.3.3 sys_siglist D 0x208

>  GLIBC_2.3.3 timer_create F

>  GLIBC_2.3.3 timer_delete F

>  GLIBC_2.3.3 timer_getoverrun F

> +GLIBC_2.3.3 timer_gettime F

>  GLIBC_2.3.4 __chk_fail F

>  GLIBC_2.3.4 __fprintf_chk F

>  GLIBC_2.3.4 __gets_chk F

> @@ -2471,6 +2473,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist

> index 35dc39d27d..f851eea81e 100644

> --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist

> @@ -1,6 +1,4 @@

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

> -GLIBC_2.3.3 timer_gettime F

>  GLIBC_2.3.3 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

>  GLIBC_2.4 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c

> deleted file mode 100644

> index cea524bae5..0000000000

> --- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c

> +++ /dev/null

> @@ -1 +0,0 @@

> -#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>

> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist

> index 51a493aadb..360802cf78 100644

> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist

> @@ -1751,6 +1751,7 @@ GLIBC_2.2 timelocal F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 times F

>  GLIBC_2.2 timezone D 0x4

>  GLIBC_2.2 tmpfile F

> @@ -2351,6 +2352,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2517,6 +2519,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist

> index f04b1e7978..179d1d53da 100644

> --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist

> @@ -1,8 +1,6 @@

>  GLIBC_2.1 __librt_version_placeholder F

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

>  GLIBC_2.4 __librt_version_placeholder F

>  GLIBC_2.7 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist

> index cb37ba55cb..e9cb3ff8f1 100644

> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist

> @@ -1751,6 +1751,7 @@ GLIBC_2.2 timelocal F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 times F

>  GLIBC_2.2 timezone D 0x4

>  GLIBC_2.2 tmpfile F

> @@ -2348,6 +2349,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2514,6 +2516,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist

> index f04b1e7978..179d1d53da 100644

> --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist

> @@ -1,8 +1,6 @@

>  GLIBC_2.1 __librt_version_placeholder F

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

>  GLIBC_2.4 __librt_version_placeholder F

>  GLIBC_2.7 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist

> index 05b4e88794..2af5948dd7 100644

> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist

> @@ -2063,6 +2063,7 @@ GLIBC_2.2 swscanf F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 ungetwc F

>  GLIBC_2.2 vfwprintf F

>  GLIBC_2.2 vfwscanf F

> @@ -2491,6 +2492,7 @@ 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 __timer_gettime64 F

>  GLIBC_2.34 __timerfd_gettime64 F

>  GLIBC_2.34 __timerfd_settime64 F

>  GLIBC_2.34 __timespec_get64 F

> @@ -2657,6 +2659,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist

> index 0de56c2c15..dc0a3c4dfb 100644

> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist

> @@ -1,9 +1,7 @@

>  GLIBC_2.1 __librt_version_placeholder F

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

>  GLIBC_2.3 __librt_version_placeholder F

>  GLIBC_2.3.4 __librt_version_placeholder F

> -GLIBC_2.34 __timer_gettime64 F

>  GLIBC_2.34 __timer_settime64 F

>  GLIBC_2.4 __librt_version_placeholder F

>  GLIBC_2.7 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions

> index d04738fafc..5e8f59ceae 100644

> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions

> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions

> @@ -14,7 +14,6 @@ libc {

>  librt {

>    GLIBC_2.3.3 {

>      # Changed timer_t.

> -    timer_gettime;

>      timer_settime;

>    }

>  }


Ok.

> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist

> index 72591794e8..fde5b780a6 100644

> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist

> @@ -1794,6 +1794,7 @@ GLIBC_2.2 timelocal F

>  GLIBC_2.2 timer_create F

>  GLIBC_2.2 timer_delete F

>  GLIBC_2.2 timer_getoverrun F

> +GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 times F

>  GLIBC_2.2 timezone D 0x8

>  GLIBC_2.2 tmpfile F

> @@ -2248,6 +2249,7 @@ GLIBC_2.3.3 sys_siglist D 0x208

>  GLIBC_2.3.3 timer_create F

>  GLIBC_2.3.3 timer_delete F

>  GLIBC_2.3.3 timer_getoverrun F

> +GLIBC_2.3.3 timer_gettime F

>  GLIBC_2.3.4 __chk_fail F

>  GLIBC_2.3.4 __fprintf_chk F

>  GLIBC_2.3.4 __gets_chk F

> @@ -2493,6 +2495,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist

> index 34d42d122b..a2de1ecd94 100644

> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist

> @@ -1,8 +1,6 @@

>  GLIBC_2.1 __librt_version_placeholder F

> -GLIBC_2.2 timer_gettime F

>  GLIBC_2.2 timer_settime F

>  GLIBC_2.3 __librt_version_placeholder F

> -GLIBC_2.3.3 timer_gettime F

>  GLIBC_2.3.3 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

>  GLIBC_2.4 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c

> deleted file mode 100644

> index cea524bae5..0000000000

> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c

> +++ /dev/null

> @@ -1 +0,0 @@

> -#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>

> diff --git a/sysdeps/unix/sysv/linux/timer_gettime.c b/sysdeps/unix/sysv/linux/timer_gettime.c

> index 0b31324da7..993bef8c6a 100644

> --- a/sysdeps/unix/sysv/linux/timer_gettime.c

> +++ b/sysdeps/unix/sysv/linux/timer_gettime.c

> @@ -22,17 +22,19 @@

>  #include <sysdep.h>

>  #include <kernel-features.h>

>  #include <kernel-posix-timers.h>

> +#include <shlib-compat.h>

>  

> +#if !TIMER_T_WAS_INT_COMPAT

>  int

> -__timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)

> +___timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)

>  {

>    kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);

>  

> -#ifndef __NR_timer_gettime64

> -# define __NR_timer_gettime64 __NR_timer_gettime

> -#endif

> +# ifndef __NR_timer_gettime64

> +#  define __NR_timer_gettime64 __NR_timer_gettime

> +# endif

>    int ret = INLINE_SYSCALL_CALL (timer_gettime64, ktimerid, value);

> -#ifndef __ASSUME_TIME64_SYSCALLS

> +# ifndef __ASSUME_TIME64_SYSCALLS

>    if (ret == 0 || errno != ENOSYS)

>      return ret;

>  

> @@ -43,12 +45,19 @@ __timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)

>        value->it_interval = valid_timespec_to_timespec64 (its32.it_interval);

>        value->it_value = valid_timespec_to_timespec64 (its32.it_value);

>      }

> -#endif

> +# endif

>    return ret;

>  }

>  

> -#if __TIMESIZE != 64

> -librt_hidden_def (__timer_gettime64)

> +# if __TIMESIZE == 64

> +versioned_symbol (libc, ___timer_gettime64, timer_gettime, GLIBC_2_34);

> +#  if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)

> +compat_symbol (librt, ___timer_gettime64, timer_gettime, GLIBC_2_2);

> +#  endif

> +

> +# else /* __TIMESIZE != 64 */

> +libc_hidden_ver (___timer_gettime64, __timer_gettime64)

> +versioned_symbol (libc, ___timer_gettime64, __timer_gettime64, GLIBC_2_34);

>  


Ok.

>  int

>  __timer_gettime (timer_t timerid, struct itimerspec *value)

> @@ -63,5 +72,39 @@ __timer_gettime (timer_t timerid, struct itimerspec *value)

>  

>    return retval;

>  }

> -#endif

> -weak_alias (__timer_gettime, timer_gettime)

> +versioned_symbol (libc, __timer_gettime, timer_gettime, GLIBC_2_34);

> +

> +#  if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)

> +compat_symbol (librt, __timer_gettime, timer_gettime, GLIBC_2_2);

> +#  endif

> +# endif /* __TIMESIZE != 64 */

> +

> +#else /* TIMER_T_WAS_INT_COMPAT */

> +

> +extern __typeof (timer_gettime) __timer_gettime_new;

> +libc_hidden_proto (__timer_gettime_new)

> +

> +int

> +___timer_gettime_new (timer_t timerid, struct itimerspec *value)

> +{

> +  kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);

> +

> +  return INLINE_SYSCALL_CALL (timer_gettime, ktimerid, value);

> +}

> +versioned_symbol (libc, ___timer_gettime_new, timer_gettime, GLIBC_2_34);

> +libc_hidden_ver (___timer_gettime_new, __timer_gettime_new)

> +

> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)

> +compat_symbol (librt, ___timer_gettime_new, timer_gettime, GLIBC_2_3_3);

> +# endif

> +

> +# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)

> +int

> +__timer_gettime_old (int timerid, struct itimerspec *value)

> +{

> +  return __timer_gettime_new (__timer_compat_list[timerid], value);

> +}

> +compat_symbol (librt, __timer_gettime_old, timer_gettime, GLIBC_2_2);

> +# endif

> +

> +#endif /* TIMER_T_WAS_INT_COMPAT */


Ok.

> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist

> index 92f4369765..87dc534709 100644

> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist

> @@ -1763,6 +1763,7 @@ GLIBC_2.2.5 timelocal F

>  GLIBC_2.2.5 timer_create F

>  GLIBC_2.2.5 timer_delete F

>  GLIBC_2.2.5 timer_getoverrun F

> +GLIBC_2.2.5 timer_gettime F

>  GLIBC_2.2.5 times F

>  GLIBC_2.2.5 timezone D 0x8

>  GLIBC_2.2.5 tmpfile F

> @@ -2202,6 +2203,7 @@ GLIBC_2.3.3 sys_siglist D 0x208

>  GLIBC_2.3.3 timer_create F

>  GLIBC_2.3.3 timer_delete F

>  GLIBC_2.3.3 timer_getoverrun F

> +GLIBC_2.3.3 timer_gettime F

>  GLIBC_2.3.4 __chk_fail F

>  GLIBC_2.3.4 __fprintf_chk F

>  GLIBC_2.3.4 __gets_chk F

> @@ -2449,6 +2451,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist

> index 379fa6930c..913835d267 100644

> --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist

> @@ -1,6 +1,4 @@

> -GLIBC_2.2.5 timer_gettime F

>  GLIBC_2.2.5 timer_settime F

> -GLIBC_2.3.3 timer_gettime F

>  GLIBC_2.3.3 timer_settime F

>  GLIBC_2.3.4 __librt_version_placeholder F

>  GLIBC_2.4 __librt_version_placeholder F

> diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions

> index a97b6c7413..8deeb8908a 100644

> --- a/sysdeps/unix/sysv/linux/x86_64/Versions

> +++ b/sysdeps/unix/sysv/linux/x86_64/Versions

> @@ -11,7 +11,6 @@ libc {

>  librt {

>    GLIBC_2.3.3 {

>      # Changed timer_t.

> -    timer_gettime;

>      timer_settime;

>    }

>  }


Ok.

> diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c

> deleted file mode 100644

> index 06ccbc40bd..0000000000

> --- a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c

> +++ /dev/null

> @@ -1,41 +0,0 @@

> -/* Copyright (C) 2003-2021 Free Software Foundation, Inc.

> -   This file is part of the GNU C Library.

> -   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.

> -

> -   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; see the file COPYING.LIB.  If

> -   not, see <https://www.gnu.org/licenses/>.  */

> -

> -#include <shlib-compat.h>

> -#include <sysdep.h>

> -#include <kernel-posix-timers.h>

> -#include "compat-timer.h"

> -

> -int

> -__timer_gettime_new (timer_t timerid, struct itimerspec *value)

> -{

> -  kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);

> -

> -  return INLINE_SYSCALL_CALL (timer_gettime, ktimerid, value);

> -}

> -versioned_symbol (librt, __timer_gettime_new, timer_gettime, GLIBC_2_3_3);

> -

> -

> -#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)

> -int

> -__timer_gettime_old (int timerid, struct itimerspec *value)

> -{

> -  return __timer_gettime_new (__timer_compat_list[timerid], value);

> -}

> -compat_symbol (librt, __timer_gettime_old, timer_gettime, GLIBC_2_2);

> -#endif


Ok.

> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist

> index 25b177fda0..143b8d602c 100644

> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist

> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist

> @@ -2014,6 +2014,7 @@ GLIBC_2.16 timelocal F

>  GLIBC_2.16 timer_create F

>  GLIBC_2.16 timer_delete F

>  GLIBC_2.16 timer_getoverrun F

> +GLIBC_2.16 timer_gettime F

>  GLIBC_2.16 timerfd_create F

>  GLIBC_2.16 timerfd_gettime F

>  GLIBC_2.16 timerfd_settime F

> @@ -2550,6 +2551,7 @@ GLIBC_2.34 thrd_join F

>  GLIBC_2.34 timer_create F

>  GLIBC_2.34 timer_delete F

>  GLIBC_2.34 timer_getoverrun F

> +GLIBC_2.34 timer_gettime F

>  GLIBC_2.34 timespec_getres F

>  GLIBC_2.34 tss_create F

>  GLIBC_2.34 tss_delete F

> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist

> index 0b969910ba..50f2032de7 100644

> --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist

> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist

> @@ -1,2 +1 @@

> -GLIBC_2.16 timer_gettime F

>  GLIBC_2.16 timer_settime F

> 


Ok.

Patch

diff --git a/include/time.h b/include/time.h
index 980c6bd924..3f4ff44ac3 100644
--- a/include/time.h
+++ b/include/time.h
@@ -218,7 +218,11 @@  libc_hidden_proto (__futimens64);
 #else
 extern int __timer_gettime64 (timer_t timerid, struct __itimerspec64 *value);
 extern int __timerfd_gettime64 (int fd, struct __itimerspec64 *value);
-librt_hidden_proto (__timer_gettime64);
+# if PTHREAD_IN_LIBC
+libc_hidden_proto (__timer_gettime64)
+# else
+librt_hidden_proto (__timer_gettime64)
+# endif
 libc_hidden_proto (__timerfd_gettime64);
 #endif
 
diff --git a/rt/Makefile b/rt/Makefile
index 1eadb94ea8..e2ef5f4b0b 100644
--- a/rt/Makefile
+++ b/rt/Makefile
@@ -30,7 +30,6 @@  routines = \
 
 librt-routines = \
   librt-compat \
-  timer_gettime \
   timer_settime \
 
 librt-shared-only-routines = librt-compat
@@ -63,6 +62,7 @@  $(librt-routines-var) += \
   timer_create \
   timer_delete \
   timer_getoverr \
+  timer_gettime \
 
 tests := tst-shm tst-timer tst-timer2 \
 	 tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
diff --git a/rt/Versions b/rt/Versions
index de78be15dc..d1f05af013 100644
--- a/rt/Versions
+++ b/rt/Versions
@@ -25,6 +25,7 @@  libc {
     timer_create;
     timer_delete;
     timer_getoverrun;
+    timer_gettime;
 %endif
     shm_open;
     shm_unlink;
@@ -87,6 +88,7 @@  libc {
     timer_create;
     timer_delete;
     timer_getoverrun;
+    timer_gettime;
 %endif
     shm_open;
     shm_unlink;
@@ -134,8 +136,8 @@  librt {
     timer_create;
     timer_delete;
     timer_getoverrun;
-%endif
     timer_gettime;
+%endif
     timer_settime;
   }
   GLIBC_2.3.4 {
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 31fb4a437b..9bb9d955a5 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -126,6 +126,7 @@  libc {
     timer_create;
     timer_delete;
     timer_getoverrun;
+    timer_gettime;
   }
   GLIBC_2.3.4 {
     sched_getaffinity; sched_setaffinity;
@@ -267,6 +268,7 @@  libc {
     __thrd_sleep64;
     __time64;
     __timegm64;
+    __timer_gettime64;
     __timerfd_gettime64;
     __timerfd_settime64;
     __timespec_get64;
@@ -308,7 +310,6 @@  librt {
   GLIBC_2.34 {
 %ifdef TIME64_NON_DEFAULT
     # 64-bit time_t support
-    __timer_gettime64;
     __timer_settime64;
 %endif
   }
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 9426bbe3f8..23130c3c9e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2009,6 +2009,7 @@  GLIBC_2.17 timelocal F
 GLIBC_2.17 timer_create F
 GLIBC_2.17 timer_delete F
 GLIBC_2.17 timer_getoverrun F
+GLIBC_2.17 timer_gettime F
 GLIBC_2.17 timerfd_create F
 GLIBC_2.17 timerfd_gettime F
 GLIBC_2.17 timerfd_settime F
@@ -2535,6 +2536,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
index 493768f440..2cb1369ddb 100644
--- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -1,2 +1 @@ 
-GLIBC_2.17 timer_gettime F
 GLIBC_2.17 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
index dd5b365d77..0359822d6d 100644
--- a/sysdeps/unix/sysv/linux/alpha/Versions
+++ b/sysdeps/unix/sysv/linux/alpha/Versions
@@ -104,7 +104,6 @@  librt {
   }
   GLIBC_2.3.3 {
     # Changed timer_t.
-    timer_gettime;
     timer_settime;
   }
 }
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 50ab6f3fc1..1f2fff3443 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2096,6 +2096,7 @@  GLIBC_2.2 swscanf F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 ungetwc F
 GLIBC_2.2 vfwprintf F
 GLIBC_2.2 vfwscanf F
@@ -2359,6 +2360,7 @@  GLIBC_2.3.3 sys_siglist D 0x208
 GLIBC_2.3.3 timer_create F
 GLIBC_2.3.3 timer_delete F
 GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.4 _OtsAddX F
 GLIBC_2.3.4 _OtsConvertFloatTX F
 GLIBC_2.3.4 _OtsConvertFloatXT F
@@ -2632,6 +2634,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist
index 34d42d122b..a2de1ecd94 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -1,8 +1,6 @@ 
 GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
 GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.3 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
 GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/alpha/timer_gettime.c b/sysdeps/unix/sysv/linux/alpha/timer_gettime.c
deleted file mode 100644
index cea524bae5..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/timer_gettime.c
+++ /dev/null
@@ -1 +0,0 @@ 
-#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index aafc056267..8ece5c40fb 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1943,6 +1943,7 @@  GLIBC_2.32 timelocal F
 GLIBC_2.32 timer_create F
 GLIBC_2.32 timer_delete F
 GLIBC_2.32 timer_getoverrun F
+GLIBC_2.32 timer_gettime F
 GLIBC_2.32 timerfd_create F
 GLIBC_2.32 timerfd_gettime F
 GLIBC_2.32 timerfd_settime F
@@ -2294,6 +2295,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist
index 14ae3d7c65..0023244be6 100644
--- a/sysdeps/unix/sysv/linux/arc/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arc/librt.abilist
@@ -1,2 +1 @@ 
-GLIBC_2.32 timer_gettime F
 GLIBC_2.32 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index ac73d766ba..515c3a224a 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -271,6 +271,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -437,6 +438,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -2356,6 +2358,7 @@  GLIBC_2.4 timelocal F
 GLIBC_2.4 timer_create F
 GLIBC_2.4 timer_delete F
 GLIBC_2.4 timer_getoverrun F
+GLIBC_2.4 timer_gettime F
 GLIBC_2.4 times F
 GLIBC_2.4 timezone D 0x4
 GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
index 78152d8fa3..2f84162558 100644
--- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_gettime F
 GLIBC_2.4 timer_settime F
 GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 96ad967292..7b7ca7d348 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -268,6 +268,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -434,6 +435,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -2353,6 +2355,7 @@  GLIBC_2.4 timelocal F
 GLIBC_2.4 timer_create F
 GLIBC_2.4 timer_delete F
 GLIBC_2.4 timer_getoverrun F
+GLIBC_2.4 timer_gettime F
 GLIBC_2.4 times F
 GLIBC_2.4 timezone D 0x4
 GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
index 78152d8fa3..2f84162558 100644
--- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_gettime F
 GLIBC_2.4 timer_settime F
 GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 980ac9c497..d53acb2c08 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -2033,6 +2033,7 @@  GLIBC_2.29 timelocal F
 GLIBC_2.29 timer_create F
 GLIBC_2.29 timer_delete F
 GLIBC_2.29 timer_getoverrun F
+GLIBC_2.29 timer_gettime F
 GLIBC_2.29 timerfd_create F
 GLIBC_2.29 timerfd_gettime F
 GLIBC_2.29 timerfd_settime F
@@ -2391,6 +2392,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2557,6 +2559,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist
index 9f89eb4e8b..52b2819a7d 100644
--- a/sysdeps/unix/sysv/linux/csky/librt.abilist
+++ b/sysdeps/unix/sysv/linux/csky/librt.abilist
@@ -1,4 +1,2 @@ 
-GLIBC_2.29 timer_gettime F
 GLIBC_2.29 timer_settime F
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 0e6e1444d6..a592e3f628 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1747,6 +1747,7 @@  GLIBC_2.2 timelocal F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 times F
 GLIBC_2.2 timezone D 0x4
 GLIBC_2.2 tmpfile F
@@ -2344,6 +2345,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2510,6 +2512,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist
index f04b1e7978..179d1d53da 100644
--- a/sysdeps/unix/sysv/linux/hppa/librt.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -1,8 +1,6 @@ 
 GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
 GLIBC_2.4 __librt_version_placeholder F
 GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index d8693b0c7b..bd3824cb88 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2109,6 +2109,7 @@  GLIBC_2.2 swscanf F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 ungetwc F
 GLIBC_2.2 versionsort64 F
 GLIBC_2.2 vfwprintf F
@@ -2528,6 +2529,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2694,6 +2696,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist
index f04b1e7978..179d1d53da 100644
--- a/sysdeps/unix/sysv/linux/i386/librt.abilist
+++ b/sysdeps/unix/sysv/linux/i386/librt.abilist
@@ -1,8 +1,6 @@ 
 GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
 GLIBC_2.4 __librt_version_placeholder F
 GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
index 1d09fca7e3..9a7faf067a 100644
--- a/sysdeps/unix/sysv/linux/ia64/Versions
+++ b/sysdeps/unix/sysv/linux/ia64/Versions
@@ -30,7 +30,6 @@  libc {
 librt {
   GLIBC_2.3.3 {
     # Changed timer_t.
-    timer_gettime;
     timer_settime;
   }
 }
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 984b58be61..d589ce16d6 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1768,6 +1768,7 @@  GLIBC_2.2 timelocal F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 times F
 GLIBC_2.2 timezone D 0x8
 GLIBC_2.2 tmpfile F
@@ -2224,6 +2225,7 @@  GLIBC_2.3.3 sys_siglist D 0x208
 GLIBC_2.3.3 timer_create F
 GLIBC_2.3.3 timer_delete F
 GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.4 __chk_fail F
 GLIBC_2.3.4 __fprintf_chk F
 GLIBC_2.3.4 __gets_chk F
@@ -2470,6 +2472,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist
index c56040a5f9..7d8e91b0d9 100644
--- a/sysdeps/unix/sysv/linux/ia64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -1,7 +1,5 @@ 
 GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.3 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
 GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/timer_gettime.c b/sysdeps/unix/sysv/linux/ia64/timer_gettime.c
deleted file mode 100644
index cea524bae5..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/timer_gettime.c
+++ /dev/null
@@ -1 +0,0 @@ 
-#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index a8d6ad9a4f..7e986dcfd5 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -272,6 +272,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -438,6 +439,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -2336,6 +2338,7 @@  GLIBC_2.4 timelocal F
 GLIBC_2.4 timer_create F
 GLIBC_2.4 timer_delete F
 GLIBC_2.4 timer_getoverrun F
+GLIBC_2.4 timer_gettime F
 GLIBC_2.4 times F
 GLIBC_2.4 timezone D 0x4
 GLIBC_2.4 tmpfile F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
index 78152d8fa3..2f84162558 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -1,5 +1,3 @@ 
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
-GLIBC_2.4 timer_gettime F
 GLIBC_2.4 timer_settime F
 GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 62590726a8..97fe827b8d 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2065,6 +2065,7 @@  GLIBC_2.2 swscanf F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 ungetwc F
 GLIBC_2.2 versionsort64 F
 GLIBC_2.2 vfwprintf F
@@ -2471,6 +2472,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2637,6 +2639,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
index f04b1e7978..179d1d53da 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
@@ -1,8 +1,6 @@ 
 GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
 GLIBC_2.4 __librt_version_placeholder F
 GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 3fd1621454..56b5f885b7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2013,6 +2013,7 @@  GLIBC_2.18 timelocal F
 GLIBC_2.18 timer_create F
 GLIBC_2.18 timer_delete F
 GLIBC_2.18 timer_getoverrun F
+GLIBC_2.18 timer_gettime F
 GLIBC_2.18 timerfd_create F
 GLIBC_2.18 timerfd_gettime F
 GLIBC_2.18 timerfd_settime F
@@ -2442,6 +2443,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2608,6 +2610,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
index f308a63244..8a4faf155c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
@@ -1,4 +1,2 @@ 
-GLIBC_2.18 timer_gettime F
 GLIBC_2.18 timer_settime F
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 2b839a784d..8910180ff8 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2013,6 +2013,7 @@  GLIBC_2.18 timelocal F
 GLIBC_2.18 timer_create F
 GLIBC_2.18 timer_delete F
 GLIBC_2.18 timer_getoverrun F
+GLIBC_2.18 timer_gettime F
 GLIBC_2.18 timerfd_create F
 GLIBC_2.18 timerfd_gettime F
 GLIBC_2.18 timerfd_settime F
@@ -2439,6 +2440,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2605,6 +2607,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
index f308a63244..8a4faf155c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
@@ -1,4 +1,2 @@ 
-GLIBC_2.18 timer_gettime F
 GLIBC_2.18 timer_settime F
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index ac623acbd3..e81456caf7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1996,6 +1996,7 @@  GLIBC_2.2 tdestroy F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 tmpfile F
 GLIBC_2.2 tmpfile64 F
 GLIBC_2.2 truncate64 F
@@ -2436,6 +2437,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2602,6 +2604,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
index af07e28f55..211a60584c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -1,7 +1,5 @@ 
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
 GLIBC_2.4 __librt_version_placeholder F
 GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 776b30b48a..ecbad99217 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1994,6 +1994,7 @@  GLIBC_2.2 tdestroy F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 tmpfile F
 GLIBC_2.2 tmpfile64 F
 GLIBC_2.2 truncate64 F
@@ -2434,6 +2435,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2600,6 +2602,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 1ffaa8e684..986b16ece3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1992,6 +1992,7 @@  GLIBC_2.2 tdestroy F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 tmpfile F
 GLIBC_2.2 tmpfile64 F
 GLIBC_2.2 truncate64 F
@@ -2442,6 +2443,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2608,6 +2610,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
index af07e28f55..211a60584c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
@@ -1,7 +1,5 @@ 
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
 GLIBC_2.4 __librt_version_placeholder F
 GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index b0c5d0a636..141e1b295f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1988,6 +1988,7 @@  GLIBC_2.2 tdestroy F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 tmpfile F
 GLIBC_2.2 tmpfile64 F
 GLIBC_2.2 truncate64 F
@@ -2523,6 +2524,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
index a92565949e..406120e1d8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
@@ -1,4 +1,3 @@ 
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
 GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 77778d11f3..71dc98ecf7 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -2055,6 +2055,7 @@  GLIBC_2.21 timelocal F
 GLIBC_2.21 timer_create F
 GLIBC_2.21 timer_delete F
 GLIBC_2.21 timer_getoverrun F
+GLIBC_2.21 timer_gettime F
 GLIBC_2.21 timerfd_create F
 GLIBC_2.21 timerfd_gettime F
 GLIBC_2.21 timerfd_settime F
@@ -2481,6 +2482,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2647,6 +2649,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
index 8ab5ece2b0..c162738eae 100644
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -1,4 +1,2 @@ 
-GLIBC_2.21 timer_gettime F
 GLIBC_2.21 timer_settime F
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 5562012575..03a0a0579a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2070,6 +2070,7 @@  GLIBC_2.2 swscanf F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 ungetwc F
 GLIBC_2.2 vfwprintf F
 GLIBC_2.2 vfwscanf F
@@ -2498,6 +2499,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2664,6 +2666,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
index f04b1e7978..179d1d53da 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
@@ -1,8 +1,6 @@ 
 GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
 GLIBC_2.4 __librt_version_placeholder F
 GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index f0adf7b58b..793531d9c4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2074,6 +2074,7 @@  GLIBC_2.2 swscanf F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 ungetwc F
 GLIBC_2.2 vfwprintf F
 GLIBC_2.2 vfwscanf F
@@ -2531,6 +2532,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2697,6 +2699,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
index a69927d41d..8607ac1012 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
@@ -29,7 +29,6 @@  libc {
 librt {
   GLIBC_2.3.3 {
     # Changed timer_t.
-    timer_gettime;
     timer_settime;
   }
 }
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index e74ecec60f..21763f0238 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1889,6 +1889,7 @@  GLIBC_2.3 timelocal F
 GLIBC_2.3 timer_create F
 GLIBC_2.3 timer_delete F
 GLIBC_2.3 timer_getoverrun F
+GLIBC_2.3 timer_gettime F
 GLIBC_2.3 times F
 GLIBC_2.3 timezone D 0x8
 GLIBC_2.3 tmpfile F
@@ -2168,6 +2169,7 @@  GLIBC_2.3.3 sys_siglist D 0x208
 GLIBC_2.3.3 timer_create F
 GLIBC_2.3.3 timer_delete F
 GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.4 __chk_fail F
 GLIBC_2.3.4 __fprintf_chk F
 GLIBC_2.3.4 __gets_chk F
@@ -2434,6 +2436,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
index dd8b2ad6ef..bfaae8ac0e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
@@ -1,6 +1,4 @@ 
-GLIBC_2.3 timer_gettime F
 GLIBC_2.3 timer_settime F
-GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.3 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
 GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 2a0c06b881..ec8a207385 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2097,6 +2097,7 @@  GLIBC_2.17 timelocal F
 GLIBC_2.17 timer_create F
 GLIBC_2.17 timer_delete F
 GLIBC_2.17 timer_getoverrun F
+GLIBC_2.17 timer_gettime F
 GLIBC_2.17 timerfd_create F
 GLIBC_2.17 timerfd_gettime F
 GLIBC_2.17 timerfd_settime F
@@ -2731,6 +2732,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
index 493768f440..2cb1369ddb 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
@@ -1,2 +1 @@ 
-GLIBC_2.17 timer_gettime F
 GLIBC_2.17 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c
deleted file mode 100644
index cea524bae5..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c
+++ /dev/null
@@ -1 +0,0 @@ 
-#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 3e0e33bbb3..c7b749f6a7 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1953,6 +1953,7 @@  GLIBC_2.33 timelocal F
 GLIBC_2.33 timer_create F
 GLIBC_2.33 timer_delete F
 GLIBC_2.33 timer_getoverrun F
+GLIBC_2.33 timer_gettime F
 GLIBC_2.33 timerfd_create F
 GLIBC_2.33 timerfd_gettime F
 GLIBC_2.33 timerfd_settime F
@@ -2296,6 +2297,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
index de338094e1..c59f14490e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
@@ -1,2 +1 @@ 
-GLIBC_2.33 timer_gettime F
 GLIBC_2.33 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 1092e5a170..33e13783fc 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2019,6 +2019,7 @@  GLIBC_2.27 timelocal F
 GLIBC_2.27 timer_create F
 GLIBC_2.27 timer_delete F
 GLIBC_2.27 timer_getoverrun F
+GLIBC_2.27 timer_gettime F
 GLIBC_2.27 timerfd_create F
 GLIBC_2.27 timerfd_gettime F
 GLIBC_2.27 timerfd_settime F
@@ -2496,6 +2497,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
index 624ab969d8..62ff23fd04 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
@@ -1,2 +1 @@ 
-GLIBC_2.27 timer_gettime F
 GLIBC_2.27 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 710cafe7c0..6681f84af2 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2068,6 +2068,7 @@  GLIBC_2.2 swscanf F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 ungetwc F
 GLIBC_2.2 versionsort64 F
 GLIBC_2.2 vfwprintf F
@@ -2496,6 +2497,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2662,6 +2664,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
index f04b1e7978..179d1d53da 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
@@ -1,8 +1,6 @@ 
 GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
 GLIBC_2.4 __librt_version_placeholder F
 GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
index e7f968fcdf..5c682764ad 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions
@@ -9,7 +9,6 @@  libc {
 librt {
   GLIBC_2.3.3 {
     # Changed timer_t.
-    timer_gettime;
     timer_settime;
   }
 }
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 6b2c7e7d68..e97c113408 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1764,6 +1764,7 @@  GLIBC_2.2 timelocal F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 times F
 GLIBC_2.2 timezone D 0x8
 GLIBC_2.2 tmpfile F
@@ -2214,6 +2215,7 @@  GLIBC_2.3.3 sys_siglist D 0x208
 GLIBC_2.3.3 timer_create F
 GLIBC_2.3.3 timer_delete F
 GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.4 __chk_fail F
 GLIBC_2.3.4 __fprintf_chk F
 GLIBC_2.3.4 __gets_chk F
@@ -2471,6 +2473,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
index 35dc39d27d..f851eea81e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -1,6 +1,4 @@ 
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
-GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.3 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
 GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c
deleted file mode 100644
index cea524bae5..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c
+++ /dev/null
@@ -1 +0,0 @@ 
-#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 51a493aadb..360802cf78 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1751,6 +1751,7 @@  GLIBC_2.2 timelocal F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 times F
 GLIBC_2.2 timezone D 0x4
 GLIBC_2.2 tmpfile F
@@ -2351,6 +2352,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2517,6 +2519,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
index f04b1e7978..179d1d53da 100644
--- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist
@@ -1,8 +1,6 @@ 
 GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
 GLIBC_2.4 __librt_version_placeholder F
 GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index cb37ba55cb..e9cb3ff8f1 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1751,6 +1751,7 @@  GLIBC_2.2 timelocal F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 times F
 GLIBC_2.2 timezone D 0x4
 GLIBC_2.2 tmpfile F
@@ -2348,6 +2349,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2514,6 +2516,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
index f04b1e7978..179d1d53da 100644
--- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist
@@ -1,8 +1,6 @@ 
 GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
 GLIBC_2.4 __librt_version_placeholder F
 GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 05b4e88794..2af5948dd7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2063,6 +2063,7 @@  GLIBC_2.2 swscanf F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 ungetwc F
 GLIBC_2.2 vfwprintf F
 GLIBC_2.2 vfwscanf F
@@ -2491,6 +2492,7 @@  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 __timer_gettime64 F
 GLIBC_2.34 __timerfd_gettime64 F
 GLIBC_2.34 __timerfd_settime64 F
 GLIBC_2.34 __timespec_get64 F
@@ -2657,6 +2659,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
index 0de56c2c15..dc0a3c4dfb 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -1,9 +1,7 @@ 
 GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
 GLIBC_2.3 __librt_version_placeholder F
 GLIBC_2.3.4 __librt_version_placeholder F
-GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 F
 GLIBC_2.4 __librt_version_placeholder F
 GLIBC_2.7 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
index d04738fafc..5e8f59ceae 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
@@ -14,7 +14,6 @@  libc {
 librt {
   GLIBC_2.3.3 {
     # Changed timer_t.
-    timer_gettime;
     timer_settime;
   }
 }
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 72591794e8..fde5b780a6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1794,6 +1794,7 @@  GLIBC_2.2 timelocal F
 GLIBC_2.2 timer_create F
 GLIBC_2.2 timer_delete F
 GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
 GLIBC_2.2 times F
 GLIBC_2.2 timezone D 0x8
 GLIBC_2.2 tmpfile F
@@ -2248,6 +2249,7 @@  GLIBC_2.3.3 sys_siglist D 0x208
 GLIBC_2.3.3 timer_create F
 GLIBC_2.3.3 timer_delete F
 GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.4 __chk_fail F
 GLIBC_2.3.4 __fprintf_chk F
 GLIBC_2.3.4 __gets_chk F
@@ -2493,6 +2495,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
index 34d42d122b..a2de1ecd94 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -1,8 +1,6 @@ 
 GLIBC_2.1 __librt_version_placeholder F
-GLIBC_2.2 timer_gettime F
 GLIBC_2.2 timer_settime F
 GLIBC_2.3 __librt_version_placeholder F
-GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.3 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
 GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
deleted file mode 100644
index cea524bae5..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
+++ /dev/null
@@ -1 +0,0 @@ 
-#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/sysdeps/unix/sysv/linux/timer_gettime.c b/sysdeps/unix/sysv/linux/timer_gettime.c
index 0b31324da7..993bef8c6a 100644
--- a/sysdeps/unix/sysv/linux/timer_gettime.c
+++ b/sysdeps/unix/sysv/linux/timer_gettime.c
@@ -22,17 +22,19 @@ 
 #include <sysdep.h>
 #include <kernel-features.h>
 #include <kernel-posix-timers.h>
+#include <shlib-compat.h>
 
+#if !TIMER_T_WAS_INT_COMPAT
 int
-__timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)
+___timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)
 {
   kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
 
-#ifndef __NR_timer_gettime64
-# define __NR_timer_gettime64 __NR_timer_gettime
-#endif
+# ifndef __NR_timer_gettime64
+#  define __NR_timer_gettime64 __NR_timer_gettime
+# endif
   int ret = INLINE_SYSCALL_CALL (timer_gettime64, ktimerid, value);
-#ifndef __ASSUME_TIME64_SYSCALLS
+# ifndef __ASSUME_TIME64_SYSCALLS
   if (ret == 0 || errno != ENOSYS)
     return ret;
 
@@ -43,12 +45,19 @@  __timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)
       value->it_interval = valid_timespec_to_timespec64 (its32.it_interval);
       value->it_value = valid_timespec_to_timespec64 (its32.it_value);
     }
-#endif
+# endif
   return ret;
 }
 
-#if __TIMESIZE != 64
-librt_hidden_def (__timer_gettime64)
+# if __TIMESIZE == 64
+versioned_symbol (libc, ___timer_gettime64, timer_gettime, GLIBC_2_34);
+#  if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (librt, ___timer_gettime64, timer_gettime, GLIBC_2_2);
+#  endif
+
+# else /* __TIMESIZE != 64 */
+libc_hidden_ver (___timer_gettime64, __timer_gettime64)
+versioned_symbol (libc, ___timer_gettime64, __timer_gettime64, GLIBC_2_34);
 
 int
 __timer_gettime (timer_t timerid, struct itimerspec *value)
@@ -63,5 +72,39 @@  __timer_gettime (timer_t timerid, struct itimerspec *value)
 
   return retval;
 }
-#endif
-weak_alias (__timer_gettime, timer_gettime)
+versioned_symbol (libc, __timer_gettime, timer_gettime, GLIBC_2_34);
+
+#  if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (librt, __timer_gettime, timer_gettime, GLIBC_2_2);
+#  endif
+# endif /* __TIMESIZE != 64 */
+
+#else /* TIMER_T_WAS_INT_COMPAT */
+
+extern __typeof (timer_gettime) __timer_gettime_new;
+libc_hidden_proto (__timer_gettime_new)
+
+int
+___timer_gettime_new (timer_t timerid, struct itimerspec *value)
+{
+  kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
+
+  return INLINE_SYSCALL_CALL (timer_gettime, ktimerid, value);
+}
+versioned_symbol (libc, ___timer_gettime_new, timer_gettime, GLIBC_2_34);
+libc_hidden_ver (___timer_gettime_new, __timer_gettime_new)
+
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)
+compat_symbol (librt, ___timer_gettime_new, timer_gettime, GLIBC_2_3_3);
+# endif
+
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
+int
+__timer_gettime_old (int timerid, struct itimerspec *value)
+{
+  return __timer_gettime_new (__timer_compat_list[timerid], value);
+}
+compat_symbol (librt, __timer_gettime_old, timer_gettime, GLIBC_2_2);
+# endif
+
+#endif /* TIMER_T_WAS_INT_COMPAT */
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 92f4369765..87dc534709 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1763,6 +1763,7 @@  GLIBC_2.2.5 timelocal F
 GLIBC_2.2.5 timer_create F
 GLIBC_2.2.5 timer_delete F
 GLIBC_2.2.5 timer_getoverrun F
+GLIBC_2.2.5 timer_gettime F
 GLIBC_2.2.5 times F
 GLIBC_2.2.5 timezone D 0x8
 GLIBC_2.2.5 tmpfile F
@@ -2202,6 +2203,7 @@  GLIBC_2.3.3 sys_siglist D 0x208
 GLIBC_2.3.3 timer_create F
 GLIBC_2.3.3 timer_delete F
 GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.4 __chk_fail F
 GLIBC_2.3.4 __fprintf_chk F
 GLIBC_2.3.4 __gets_chk F
@@ -2449,6 +2451,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
index 379fa6930c..913835d267 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -1,6 +1,4 @@ 
-GLIBC_2.2.5 timer_gettime F
 GLIBC_2.2.5 timer_settime F
-GLIBC_2.3.3 timer_gettime F
 GLIBC_2.3.3 timer_settime F
 GLIBC_2.3.4 __librt_version_placeholder F
 GLIBC_2.4 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions
index a97b6c7413..8deeb8908a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/Versions
+++ b/sysdeps/unix/sysv/linux/x86_64/Versions
@@ -11,7 +11,6 @@  libc {
 librt {
   GLIBC_2.3.3 {
     # Changed timer_t.
-    timer_gettime;
     timer_settime;
   }
 }
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
deleted file mode 100644
index 06ccbc40bd..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
+++ /dev/null
@@ -1,41 +0,0 @@ 
-/* Copyright (C) 2003-2021 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   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; see the file COPYING.LIB.  If
-   not, see <https://www.gnu.org/licenses/>.  */
-
-#include <shlib-compat.h>
-#include <sysdep.h>
-#include <kernel-posix-timers.h>
-#include "compat-timer.h"
-
-int
-__timer_gettime_new (timer_t timerid, struct itimerspec *value)
-{
-  kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
-
-  return INLINE_SYSCALL_CALL (timer_gettime, ktimerid, value);
-}
-versioned_symbol (librt, __timer_gettime_new, timer_gettime, GLIBC_2_3_3);
-
-
-#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
-int
-__timer_gettime_old (int timerid, struct itimerspec *value)
-{
-  return __timer_gettime_new (__timer_compat_list[timerid], value);
-}
-compat_symbol (librt, __timer_gettime_old, timer_gettime, GLIBC_2_2);
-#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 25b177fda0..143b8d602c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2014,6 +2014,7 @@  GLIBC_2.16 timelocal F
 GLIBC_2.16 timer_create F
 GLIBC_2.16 timer_delete F
 GLIBC_2.16 timer_getoverrun F
+GLIBC_2.16 timer_gettime F
 GLIBC_2.16 timerfd_create F
 GLIBC_2.16 timerfd_gettime F
 GLIBC_2.16 timerfd_settime F
@@ -2550,6 +2551,7 @@  GLIBC_2.34 thrd_join F
 GLIBC_2.34 timer_create F
 GLIBC_2.34 timer_delete F
 GLIBC_2.34 timer_getoverrun F
+GLIBC_2.34 timer_gettime F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
index 0b969910ba..50f2032de7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -1,2 +1 @@ 
-GLIBC_2.16 timer_gettime F
 GLIBC_2.16 timer_settime F