]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Linux: Move timer_create, timer_delete from librt to libc
authorFlorian Weimer <fweimer@redhat.com>
Mon, 28 Jun 2021 07:51:00 +0000 (09:51 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Mon, 28 Jun 2021 07:51:00 +0000 (09:51 +0200)
The symbols were moved using scripts/move-symbol-to-libc.py.

timer_create and timer_delete are tied together via the int/timer_t
compatibility code.  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.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
90 files changed:
rt/Makefile
rt/Versions
sysdeps/unix/sysv/linux/Versions
sysdeps/unix/sysv/linux/aarch64/libc.abilist
sysdeps/unix/sysv/linux/aarch64/librt.abilist
sysdeps/unix/sysv/linux/alpha/Versions
sysdeps/unix/sysv/linux/alpha/libc.abilist
sysdeps/unix/sysv/linux/alpha/librt.abilist
sysdeps/unix/sysv/linux/alpha/timer_create.c [deleted file]
sysdeps/unix/sysv/linux/alpha/timer_delete.c [deleted file]
sysdeps/unix/sysv/linux/arc/libc.abilist
sysdeps/unix/sysv/linux/arc/librt.abilist
sysdeps/unix/sysv/linux/arm/be/libc.abilist
sysdeps/unix/sysv/linux/arm/be/librt.abilist
sysdeps/unix/sysv/linux/arm/le/libc.abilist
sysdeps/unix/sysv/linux/arm/le/librt.abilist
sysdeps/unix/sysv/linux/csky/libc.abilist
sysdeps/unix/sysv/linux/csky/librt.abilist
sysdeps/unix/sysv/linux/hppa/libc.abilist
sysdeps/unix/sysv/linux/hppa/librt.abilist
sysdeps/unix/sysv/linux/i386/libc.abilist
sysdeps/unix/sysv/linux/i386/librt.abilist
sysdeps/unix/sysv/linux/ia64/Versions
sysdeps/unix/sysv/linux/ia64/libc.abilist
sysdeps/unix/sysv/linux/ia64/librt.abilist
sysdeps/unix/sysv/linux/ia64/timer_create.c [deleted file]
sysdeps/unix/sysv/linux/ia64/timer_delete.c [deleted file]
sysdeps/unix/sysv/linux/kernel-posix-timers.h
sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
sysdeps/unix/sysv/linux/microblaze/be/librt.abilist
sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
sysdeps/unix/sysv/linux/microblaze/le/librt.abilist
sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist
sysdeps/unix/sysv/linux/nios2/libc.abilist
sysdeps/unix/sysv/linux/nios2/librt.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c [deleted file]
sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist
sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist
sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist
sysdeps/unix/sysv/linux/s390/s390-64/Versions
sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c [deleted file]
sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c [deleted file]
sysdeps/unix/sysv/linux/sh/be/libc.abilist
sysdeps/unix/sysv/linux/sh/be/librt.abilist
sysdeps/unix/sysv/linux/sh/le/libc.abilist
sysdeps/unix/sysv/linux/sh/le/librt.abilist
sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
sysdeps/unix/sysv/linux/sparc/sparc64/Versions
sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c [deleted file]
sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c [deleted file]
sysdeps/unix/sysv/linux/timer_create.c
sysdeps/unix/sysv/linux/timer_delete.c
sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
sysdeps/unix/sysv/linux/x86_64/Versions
sysdeps/unix/sysv/linux/x86_64/compat-timer.h
sysdeps/unix/sysv/linux/x86_64/timer_create.c [deleted file]
sysdeps/unix/sysv/linux/x86_64/timer_delete.c [deleted file]
sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
sysdeps/unix/sysv/linux/x86_64/timer_settime.c
sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist

index ca3f9e162e345e911adc9b793de169536e27164a..5de91fe21338ef59d2e6d70431299a89ff2e471a 100644 (file)
@@ -30,8 +30,6 @@ routines = \
 
 librt-routines = \
   librt-compat \
-  timer_create \
-  timer_delete \
   timer_getoverr \
   timer_gettime \
   timer_settime \
@@ -63,6 +61,8 @@ $(librt-routines-var) += \
   mq_timedreceive \
   mq_timedsend \
   mq_unlink \
+  timer_create \
+  timer_delete \
 
 tests := tst-shm tst-timer tst-timer2 \
         tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \
index 9a09062a2a810f4dbfce392f7ebd1c653da58f5d..fca804148cca2253bf4e623e3b48232556a4b49c 100644 (file)
@@ -21,6 +21,10 @@ libc {
 %endif
   }
   GLIBC_2.2 {
+%if PTHREAD_IN_LIBC
+    timer_create;
+    timer_delete;
+%endif
     shm_open;
     shm_unlink;
   }
@@ -52,23 +56,23 @@ libc {
   GLIBC_2.34 {
 %if PTHREAD_IN_LIBC
     __mq_open_2;
-    aio_cancel;
     aio_cancel64;
-    aio_init;
-    aio_error;
+    aio_cancel;
     aio_error64;
-    aio_fsync;
+    aio_error;
     aio_fsync64;
-    aio_read;
+    aio_fsync;
+    aio_init;
     aio_read64;
-    aio_return;
+    aio_read;
     aio_return64;
-    aio_suspend;
+    aio_return;
     aio_suspend64;
-    aio_write;
+    aio_suspend;
     aio_write64;
-    lio_listio;
+    aio_write;
     lio_listio64;
+    lio_listio;
     mq_close;
     mq_getattr;
     mq_notify;
@@ -79,6 +83,8 @@ libc {
     mq_timedreceive;
     mq_timedsend;
     mq_unlink;
+    timer_create;
+    timer_delete;
 %endif
     shm_open;
     shm_unlink;
@@ -122,8 +128,10 @@ librt {
 %endif
   }
   GLIBC_2.2 {
+%if !PTHREAD_IN_LIBC
     timer_create;
     timer_delete;
+%endif
     timer_getoverrun;
     timer_gettime;
     timer_settime;
index 47d4357b9f3f01a6325739e5e651f11001f730cc..0db1b9c31c013b78be4a83c06fa315a98d28f4af 100644 (file)
@@ -121,6 +121,10 @@ libc {
     posix_fallocate64;
     sys_sigabbrev;
     sys_siglist;
+
+    # Changed timer_t.  Only used by some 64-bit targets.
+    timer_create;
+    timer_delete;
   }
   GLIBC_2.3.4 {
     sched_getaffinity; sched_setaffinity;
@@ -284,6 +288,7 @@ libc {
     __sigtimedwait;
     __timer_active_sigev_thread;
     __timer_active_sigev_thread_lock;
+    __timer_compat_list;
     __timer_helper_once;
     __timer_helper_tid;
     __timer_start_helper_thread;
index 141d5cb843d80786d111c8c18fa760db69228a35..17779baac1e86dade2cfb2672cbe1f990fb69f9e 100644 (file)
@@ -2006,6 +2006,8 @@ GLIBC_2.17 tfind F
 GLIBC_2.17 time F
 GLIBC_2.17 timegm F
 GLIBC_2.17 timelocal F
+GLIBC_2.17 timer_create F
+GLIBC_2.17 timer_delete F
 GLIBC_2.17 timerfd_create F
 GLIBC_2.17 timerfd_gettime F
 GLIBC_2.17 timerfd_settime F
@@ -2529,6 +2531,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index 54bb3e5c7c71b6247e6d03c8378e3261033a5026..34768d1472e269234c36dba86401c2f7bae7b03c 100644 (file)
@@ -1,5 +1,3 @@
-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 timer_settime F
index db6116a8902a94cea2d963f22b7dac5ada7518fb..d4bd056f64056d5cbc242bcd66cdcd7962c8e793 100644 (file)
@@ -104,7 +104,7 @@ librt {
   }
   GLIBC_2.3.3 {
     # Changed timer_t.
-    timer_create; timer_delete; timer_getoverrun; timer_gettime;
+    timer_getoverrun; timer_gettime;
     timer_settime;
   }
 }
index 5441b6a3f3f974c5ea46280ad6d7a5e0eefcaf97..985a1deca9162d7248f460cfc668f7344d73e331 100644 (file)
@@ -2093,6 +2093,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
 GLIBC_2.2 svc_pollfd D 0x8
 GLIBC_2.2 swprintf F
 GLIBC_2.2 swscanf F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 ungetwc F
 GLIBC_2.2 vfwprintf F
 GLIBC_2.2 vfwscanf F
@@ -2353,6 +2355,8 @@ GLIBC_2.3.3 strtoll_l F
 GLIBC_2.3.3 strtoull_l F
 GLIBC_2.3.3 sys_sigabbrev D 0x208
 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.4 _OtsAddX F
 GLIBC_2.3.4 _OtsConvertFloatTX F
 GLIBC_2.3.4 _OtsConvertFloatXT F
@@ -2623,6 +2627,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index 8592c90bdfc6df024554569e018797d7840630d2..3b744cf5a198449f6af34b1cd9c7e64bca454540 100644 (file)
@@ -1,12 +1,8 @@
 GLIBC_2.1 __librt_version_placeholder 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 timer_settime F
 GLIBC_2.3 __librt_version_placeholder F
-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.3 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/alpha/timer_create.c b/sysdeps/unix/sysv/linux/alpha/timer_create.c
deleted file mode 100644 (file)
index d307135..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/sysdeps/unix/sysv/linux/alpha/timer_delete.c b/sysdeps/unix/sysv/linux/alpha/timer_delete.c
deleted file mode 100644 (file)
index 2dd94f5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
index 37fd195f702905b8e2471a5f2f9692e6a52cca8f..22fa42dfc31aebdcca1cfd112ea69bddab1d1f34 100644 (file)
@@ -1940,6 +1940,8 @@ GLIBC_2.32 thrd_yield F
 GLIBC_2.32 time F
 GLIBC_2.32 timegm F
 GLIBC_2.32 timelocal F
+GLIBC_2.32 timer_create F
+GLIBC_2.32 timer_delete F
 GLIBC_2.32 timerfd_create F
 GLIBC_2.32 timerfd_gettime F
 GLIBC_2.32 timerfd_settime F
@@ -2288,6 +2290,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index 0454fb41fd63e16986af3b7a26e661af2703d6ed..7bc7c57bf064c235a7bd4bce8a0ec2e147ca70ee 100644 (file)
@@ -1,5 +1,3 @@
-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 timer_settime F
index 42ba748c0798693069c1a4a4584a7e7d035f2208..c8ff2a0b7422f1e19918e86835823c77b00a3374 100644 (file)
@@ -434,6 +434,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -2350,6 +2352,8 @@ GLIBC_2.4 tfind F
 GLIBC_2.4 time F
 GLIBC_2.4 timegm F
 GLIBC_2.4 timelocal F
+GLIBC_2.4 timer_create F
+GLIBC_2.4 timer_delete F
 GLIBC_2.4 times F
 GLIBC_2.4 timezone D 0x4
 GLIBC_2.4 tmpfile F
index 8682174e366521049d2ecb32e2779c8de348d480..0887259367fae2393aac98dc325f61b8da3e45d1 100644 (file)
@@ -1,7 +1,5 @@
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 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 timer_settime F
index 92f06718bdb090abf7c22a0676e217796e41ad35..b237b78f85e575b1673ab14bbc5f46fae68044f2 100644 (file)
@@ -431,6 +431,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -2347,6 +2349,8 @@ GLIBC_2.4 tfind F
 GLIBC_2.4 time F
 GLIBC_2.4 timegm F
 GLIBC_2.4 timelocal F
+GLIBC_2.4 timer_create F
+GLIBC_2.4 timer_delete F
 GLIBC_2.4 times F
 GLIBC_2.4 timezone D 0x4
 GLIBC_2.4 tmpfile F
index 8682174e366521049d2ecb32e2779c8de348d480..0887259367fae2393aac98dc325f61b8da3e45d1 100644 (file)
@@ -1,7 +1,5 @@
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 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 timer_settime F
index 7ee4e79de277ef59166574563ad01dc78ed27a12..c1b6927cea55e085398108aa8239c3354eccd98e 100644 (file)
@@ -2030,6 +2030,8 @@ GLIBC_2.29 thrd_yield F
 GLIBC_2.29 time F
 GLIBC_2.29 timegm F
 GLIBC_2.29 timelocal F
+GLIBC_2.29 timer_create F
+GLIBC_2.29 timer_delete F
 GLIBC_2.29 timerfd_create F
 GLIBC_2.29 timerfd_gettime F
 GLIBC_2.29 timerfd_settime F
@@ -2551,6 +2553,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index c92668b743feeba932e936d56b39b3c7041285a3..3d7c839b9b50f7708bb3cb26ed25e4af9275eb51 100644 (file)
@@ -1,5 +1,3 @@
-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 timer_settime F
index 7610cc4343cc8f59677fbb03f8e76822c352cb91..c5021c810988e0869e82572d166664e2fb14792f 100644 (file)
@@ -1744,6 +1744,8 @@ GLIBC_2.2 tfind F
 GLIBC_2.2 time F
 GLIBC_2.2 timegm F
 GLIBC_2.2 timelocal F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 times F
 GLIBC_2.2 timezone D 0x4
 GLIBC_2.2 tmpfile F
@@ -2504,6 +2506,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index cfe4455a75c2fed22c103f13adec5338abe7ead6..1268c7fc38694d8505b8e23d3eb2915eca882131 100644 (file)
@@ -1,6 +1,4 @@
 GLIBC_2.1 __librt_version_placeholder 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 timer_settime F
index 54a6d61b0bb59be4d8b5fe8558718f35c9f74ea3..8055ea6984cbee046c553bcfac3b35d49606a309 100644 (file)
@@ -2106,6 +2106,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
 GLIBC_2.2 svc_pollfd D 0x4
 GLIBC_2.2 swprintf F
 GLIBC_2.2 swscanf F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 ungetwc F
 GLIBC_2.2 versionsort64 F
 GLIBC_2.2 vfwprintf F
@@ -2688,6 +2690,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index cfe4455a75c2fed22c103f13adec5338abe7ead6..1268c7fc38694d8505b8e23d3eb2915eca882131 100644 (file)
@@ -1,6 +1,4 @@
 GLIBC_2.1 __librt_version_placeholder 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 timer_settime F
index f438b12587106281e48539cc0a05b95ead236e93..29b0d98cc6bc0c09583849bc14f23de085506693 100644 (file)
@@ -30,7 +30,7 @@ libc {
 librt {
   GLIBC_2.3.3 {
     # Changed timer_t.
-    timer_create; timer_delete; timer_getoverrun; timer_gettime;
+    timer_getoverrun; timer_gettime;
     timer_settime;
   }
 }
index cad4a129d10f8cfe2263b9324ee542d1c03bc4ae..4cf1da5b624f7f9dc217964442da150af1c49b2f 100644 (file)
@@ -1765,6 +1765,8 @@ GLIBC_2.2 tfind F
 GLIBC_2.2 time F
 GLIBC_2.2 timegm F
 GLIBC_2.2 timelocal F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 times F
 GLIBC_2.2 timezone D 0x8
 GLIBC_2.2 tmpfile F
@@ -2218,6 +2220,8 @@ GLIBC_2.3.3 strtoll_l F
 GLIBC_2.3.3 strtoull_l F
 GLIBC_2.3.3 sys_sigabbrev D 0x208
 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.4 __chk_fail F
 GLIBC_2.3.4 __fprintf_chk F
 GLIBC_2.3.4 __gets_chk F
@@ -2461,6 +2465,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index 842df916252568ed6e87bf8b2bb69da2500d320e..74a49710707c3732199b2e344b8a5e17ea2fed87 100644 (file)
@@ -1,11 +1,7 @@
 GLIBC_2.1 __librt_version_placeholder 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 timer_settime F
-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.3 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/ia64/timer_create.c b/sysdeps/unix/sysv/linux/ia64/timer_create.c
deleted file mode 100644 (file)
index d307135..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/sysdeps/unix/sysv/linux/ia64/timer_delete.c b/sysdeps/unix/sysv/linux/ia64/timer_delete.c
deleted file mode 100644 (file)
index 2dd94f5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
index 86aa8a2dedb82c67399ddaaf00f53e665c2cd2af..94e6d8c1d2d3a85932e82fcc62f3e267257370a8 100644 (file)
@@ -48,6 +48,11 @@ libc_hidden_proto (__timer_active_sigev_thread)
 extern pthread_mutex_t __timer_active_sigev_thread_lock;
 libc_hidden_proto (__timer_active_sigev_thread_lock)
 
+extern __typeof (timer_create) __timer_create;
+libc_hidden_proto (__timer_create)
+extern __typeof (timer_delete) __timer_delete;
+libc_hidden_proto (__timer_delete)
+
 /* Type of timers in the kernel.  */
 typedef int kernel_timer_t;
 
@@ -107,3 +112,9 @@ timerid_to_kernel_timer (timer_t timerid)
 /* New targets use int instead of timer_t.  The difference only
    matters on 64-bit targets.  */
 #include <timer_t_was_int_compat.h>
+
+#if TIMER_T_WAS_INT_COMPAT
+# define OLD_TIMER_MAX 256
+extern timer_t __timer_compat_list[OLD_TIMER_MAX];
+libc_hidden_proto (__timer_compat_list)
+#endif
index ff831374faba18b80075c67889b01898fcfd44c8..e7c0a81f378ba521444d16c382e905ebd1ee4dd8 100644 (file)
@@ -435,6 +435,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
@@ -2330,6 +2332,8 @@ GLIBC_2.4 tfind F
 GLIBC_2.4 time F
 GLIBC_2.4 timegm F
 GLIBC_2.4 timelocal F
+GLIBC_2.4 timer_create F
+GLIBC_2.4 timer_delete F
 GLIBC_2.4 times F
 GLIBC_2.4 timezone D 0x4
 GLIBC_2.4 tmpfile F
index 8682174e366521049d2ecb32e2779c8de348d480..0887259367fae2393aac98dc325f61b8da3e45d1 100644 (file)
@@ -1,7 +1,5 @@
 GLIBC_2.34 __timer_gettime64 F
 GLIBC_2.34 __timer_settime64 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 timer_settime F
index b2c98b40e96779e89f97acdb823c1bb78c23b088..b82f6366ee67d7899d541334db9f47a234b26fae 100644 (file)
@@ -2062,6 +2062,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
 GLIBC_2.2 svc_pollfd D 0x4
 GLIBC_2.2 swprintf F
 GLIBC_2.2 swscanf F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 ungetwc F
 GLIBC_2.2 versionsort64 F
 GLIBC_2.2 vfwprintf F
@@ -2631,6 +2633,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index cfe4455a75c2fed22c103f13adec5338abe7ead6..1268c7fc38694d8505b8e23d3eb2915eca882131 100644 (file)
@@ -1,6 +1,4 @@
 GLIBC_2.1 __librt_version_placeholder 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 timer_settime F
index fa945ee6fcef2e335d33bf2578cbd617bbb365ff..3f9dfa766489e46a52b7788ff192c408d0ac0db9 100644 (file)
@@ -2010,6 +2010,8 @@ GLIBC_2.18 tfind F
 GLIBC_2.18 time F
 GLIBC_2.18 timegm F
 GLIBC_2.18 timelocal F
+GLIBC_2.18 timer_create F
+GLIBC_2.18 timer_delete F
 GLIBC_2.18 timerfd_create F
 GLIBC_2.18 timerfd_gettime F
 GLIBC_2.18 timerfd_settime F
@@ -2602,6 +2604,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index fcfed800bf0bb298e7d29a772a845351c57d3109..2efee3a326470717f49852bb2f0d32c5889f6a7e 100644 (file)
@@ -1,5 +1,3 @@
-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 timer_settime F
index c65815be74119124cbdfb782cdd85152e166e3ac..bb2fd6251f15b53c1f31cf7f476e2f3157fa0a3a 100644 (file)
@@ -2010,6 +2010,8 @@ GLIBC_2.18 tfind F
 GLIBC_2.18 time F
 GLIBC_2.18 timegm F
 GLIBC_2.18 timelocal F
+GLIBC_2.18 timer_create F
+GLIBC_2.18 timer_delete F
 GLIBC_2.18 timerfd_create F
 GLIBC_2.18 timerfd_gettime F
 GLIBC_2.18 timerfd_settime F
@@ -2599,6 +2601,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index fcfed800bf0bb298e7d29a772a845351c57d3109..2efee3a326470717f49852bb2f0d32c5889f6a7e 100644 (file)
@@ -1,5 +1,3 @@
-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 timer_settime F
index 9c0174bf6551abf59de608f53ac131a54039caf2..938142fb4a4eb118e203e5581708cf7da699a36a 100644 (file)
@@ -1993,6 +1993,8 @@ GLIBC_2.2 sys_siglist D 0x100
 GLIBC_2.2 sysv_signal F
 GLIBC_2.2 tcgetsid F
 GLIBC_2.2 tdestroy F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 tmpfile F
 GLIBC_2.2 tmpfile64 F
 GLIBC_2.2 truncate64 F
@@ -2596,6 +2598,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index da854157438d5957ce808a8f7b49c7e500248d01..dbc81ebe4ba4c48a0ad17214b3c4653445ae103c 100644 (file)
@@ -1,5 +1,3 @@
-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 timer_settime F
index ac245f4413a7fe47a831ce99ac73ffa53292d87e..d62382883b39dcba0f93613be85956cdbfcee45f 100644 (file)
@@ -1991,6 +1991,8 @@ GLIBC_2.2 sys_siglist D 0x100
 GLIBC_2.2 sysv_signal F
 GLIBC_2.2 tcgetsid F
 GLIBC_2.2 tdestroy F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 tmpfile F
 GLIBC_2.2 tmpfile64 F
 GLIBC_2.2 truncate64 F
@@ -2594,6 +2596,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index f17c4b341201a9394cb6b2ffacd3259df0303f83..28a8a5d2947f59a71471422de8fda5d8ef2267f1 100644 (file)
@@ -1989,6 +1989,8 @@ GLIBC_2.2 sys_siglist D 0x100
 GLIBC_2.2 sysv_signal F
 GLIBC_2.2 tcgetsid F
 GLIBC_2.2 tdestroy F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 tmpfile F
 GLIBC_2.2 tmpfile64 F
 GLIBC_2.2 truncate64 F
@@ -2602,6 +2604,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index da854157438d5957ce808a8f7b49c7e500248d01..dbc81ebe4ba4c48a0ad17214b3c4653445ae103c 100644 (file)
@@ -1,5 +1,3 @@
-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 timer_settime F
index 4d9dea349d8c1be6b098957bc96512e79650827a..6748f9beef9f78bb7c0e8583e3717d5bb747dde8 100644 (file)
@@ -1985,6 +1985,8 @@ GLIBC_2.2 sys_siglist D 0x200
 GLIBC_2.2 sysv_signal F
 GLIBC_2.2 tcgetsid F
 GLIBC_2.2 tdestroy F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 tmpfile F
 GLIBC_2.2 tmpfile64 F
 GLIBC_2.2 truncate64 F
@@ -2517,6 +2519,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index 51354b072da59cdb499e121d03d3039e3f8cfe7e..00fd77bbab5ab5ff915560f8f9bd6af3efb972e7 100644 (file)
@@ -1,5 +1,3 @@
-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 timer_settime F
index a1f3808f18ea3f9cc46102971a71d137665d42bd..03d13e5ee14c64ddb1eb8453604c1acd87a53203 100644 (file)
@@ -2052,6 +2052,8 @@ GLIBC_2.21 tfind F
 GLIBC_2.21 time F
 GLIBC_2.21 timegm F
 GLIBC_2.21 timelocal F
+GLIBC_2.21 timer_create F
+GLIBC_2.21 timer_delete F
 GLIBC_2.21 timerfd_create F
 GLIBC_2.21 timerfd_gettime F
 GLIBC_2.21 timerfd_settime F
@@ -2641,6 +2643,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index 29111b77bdebf6626e595b1478b834f51fbecb64..a83ae32d034aaddbe00ae93ab5294be449775105 100644 (file)
@@ -1,5 +1,3 @@
-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 timer_settime F
index c80718d0b17df258a26c783d801b178af8ae897f..c9a45ecb1798a56161c74d2a36c74965e08d7ce8 100644 (file)
@@ -2067,6 +2067,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
 GLIBC_2.2 svc_pollfd D 0x4
 GLIBC_2.2 swprintf F
 GLIBC_2.2 swscanf F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 ungetwc F
 GLIBC_2.2 vfwprintf F
 GLIBC_2.2 vfwscanf F
@@ -2658,6 +2660,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index cfe4455a75c2fed22c103f13adec5338abe7ead6..1268c7fc38694d8505b8e23d3eb2915eca882131 100644 (file)
@@ -1,6 +1,4 @@
 GLIBC_2.1 __librt_version_placeholder 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 timer_settime F
index 8156d06db58ec2d7fa6963fb05581dc8d3df755b..c7fbc347a15a672b0ea66a830016f48853512ceb 100644 (file)
@@ -2071,6 +2071,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
 GLIBC_2.2 svc_pollfd D 0x4
 GLIBC_2.2 swprintf F
 GLIBC_2.2 swscanf F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 ungetwc F
 GLIBC_2.2 vfwprintf F
 GLIBC_2.2 vfwscanf F
@@ -2691,6 +2693,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index 84c809507ff9d5c1c44b791748405e09a107e64e..4eb22c11ac60e08ea277db000bfeaae57cfb651e 100644 (file)
@@ -29,7 +29,7 @@ libc {
 librt {
   GLIBC_2.3.3 {
     # Changed timer_t.
-    timer_create; timer_delete; timer_getoverrun; timer_gettime;
+    timer_getoverrun; timer_gettime;
     timer_settime;
   }
 }
index a99bd9409b1d2a9da1128d3d3c2061c809f78f96..fb5eb9c67eff6bb958b9442e62cbd66e6c444bcc 100644 (file)
@@ -1886,6 +1886,8 @@ GLIBC_2.3 tfind F
 GLIBC_2.3 time F
 GLIBC_2.3 timegm F
 GLIBC_2.3 timelocal F
+GLIBC_2.3 timer_create F
+GLIBC_2.3 timer_delete F
 GLIBC_2.3 times F
 GLIBC_2.3 timezone D 0x8
 GLIBC_2.3 tmpfile F
@@ -2162,6 +2164,8 @@ GLIBC_2.3.3 strtoll_l F
 GLIBC_2.3.3 strtoull_l F
 GLIBC_2.3.3 sys_sigabbrev D 0x208
 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.4 __chk_fail F
 GLIBC_2.3.4 __fprintf_chk F
 GLIBC_2.3.4 __gets_chk F
@@ -2425,6 +2429,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index 9df959a434cae8938680df19a2484bb7251b6e1d..914203b043543de39be53bb869175978390fbe3e 100644 (file)
@@ -1,10 +1,6 @@
-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 timer_settime F
-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.3 timer_settime F
index ae562f2864e6f63d9f7c745886f8b7b752661a90..b89256aba04696c2fb9f000d951a1dc174b80706 100644 (file)
@@ -2094,6 +2094,8 @@ GLIBC_2.17 tfind F
 GLIBC_2.17 time F
 GLIBC_2.17 timegm F
 GLIBC_2.17 timelocal F
+GLIBC_2.17 timer_create F
+GLIBC_2.17 timer_delete F
 GLIBC_2.17 timerfd_create F
 GLIBC_2.17 timerfd_gettime F
 GLIBC_2.17 timerfd_settime F
@@ -2725,6 +2727,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index 54bb3e5c7c71b6247e6d03c8378e3261033a5026..34768d1472e269234c36dba86401c2f7bae7b03c 100644 (file)
@@ -1,5 +1,3 @@
-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 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c
deleted file mode 100644 (file)
index d307135..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c
deleted file mode 100644 (file)
index 2dd94f5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
index 7422465183b2aee1c22da2f4e9e9f86b8d101e22..c653f5237397d02913ffdd6936f51e2b5c299cf9 100644 (file)
@@ -1950,6 +1950,8 @@ GLIBC_2.33 thrd_yield F
 GLIBC_2.33 time F
 GLIBC_2.33 timegm F
 GLIBC_2.33 timelocal F
+GLIBC_2.33 timer_create F
+GLIBC_2.33 timer_delete F
 GLIBC_2.33 timerfd_create F
 GLIBC_2.33 timerfd_gettime F
 GLIBC_2.33 timerfd_settime F
@@ -2290,6 +2292,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index 540cdef209fef198ddc9ebdb4ac90a628fc65a52..09bbee096035afa1665362b1055384ba5cd5aca9 100644 (file)
@@ -1,5 +1,3 @@
-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 timer_settime F
index 0bb8343ac4a3e0f212044ca57f3841670b5130d1..711484eee5220ef2ab45fa2120335e21a94ffde2 100644 (file)
@@ -2016,6 +2016,8 @@ GLIBC_2.27 tfind F
 GLIBC_2.27 time F
 GLIBC_2.27 timegm F
 GLIBC_2.27 timelocal F
+GLIBC_2.27 timer_create F
+GLIBC_2.27 timer_delete F
 GLIBC_2.27 timerfd_create F
 GLIBC_2.27 timerfd_gettime F
 GLIBC_2.27 timerfd_settime F
@@ -2490,6 +2492,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index e436beaf7e7538487158084bd282ace34c677ca3..8e1d8b21fe68dbf2dd0992fb794c5fcc24f777cc 100644 (file)
@@ -1,5 +1,3 @@
-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 timer_settime F
index f9db909d63ee7db51eb9d00cf8792a8204d5f2c1..4040312275ff14855efd2b7ae1009d78f1135bdb 100644 (file)
@@ -2065,6 +2065,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
 GLIBC_2.2 svc_pollfd D 0x4
 GLIBC_2.2 swprintf F
 GLIBC_2.2 swscanf F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 ungetwc F
 GLIBC_2.2 versionsort64 F
 GLIBC_2.2 vfwprintf F
@@ -2656,6 +2658,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index cfe4455a75c2fed22c103f13adec5338abe7ead6..1268c7fc38694d8505b8e23d3eb2915eca882131 100644 (file)
@@ -1,6 +1,4 @@
 GLIBC_2.1 __librt_version_placeholder 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 timer_settime F
index 3f4d96042158838849d4b2167944f31e38a7cab7..5989ac75a9c3ba0153ae4574b3a374648e6b0c1b 100644 (file)
@@ -9,7 +9,7 @@ libc {
 librt {
   GLIBC_2.3.3 {
     # Changed timer_t.
-    timer_create; timer_delete; timer_getoverrun; timer_gettime;
+    timer_getoverrun; timer_gettime;
     timer_settime;
   }
 }
index 593e5f9ae7d2f8f40b52441f8c93b6b3a810ee18..4cf6a5ea096882786ca8bec354096a53853f097f 100644 (file)
@@ -1761,6 +1761,8 @@ GLIBC_2.2 tfind F
 GLIBC_2.2 time F
 GLIBC_2.2 timegm F
 GLIBC_2.2 timelocal F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 times F
 GLIBC_2.2 timezone D 0x8
 GLIBC_2.2 tmpfile F
@@ -2208,6 +2210,8 @@ GLIBC_2.3.3 strtoll_l F
 GLIBC_2.3.3 strtoull_l F
 GLIBC_2.3.3 sys_sigabbrev D 0x208
 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.4 __chk_fail F
 GLIBC_2.3.4 __fprintf_chk F
 GLIBC_2.3.4 __gets_chk F
@@ -2462,6 +2466,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index 9e185ecaefcd1d5988c11bbb4cecc3a482b4a58d..34e8d311330d784ac98b6e4886d509d6e0e6ccb1 100644 (file)
@@ -1,10 +1,6 @@
-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 timer_settime F
-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.3 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c
deleted file mode 100644 (file)
index d307135..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c b/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c
deleted file mode 100644 (file)
index 2dd94f5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
index 8da4e375d94ebc36f4d84de17d967cbf467edf27..6fd93a54458ac66cad4960d57a5b17231f6f63a5 100644 (file)
@@ -1748,6 +1748,8 @@ GLIBC_2.2 tfind F
 GLIBC_2.2 time F
 GLIBC_2.2 timegm F
 GLIBC_2.2 timelocal F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 times F
 GLIBC_2.2 timezone D 0x4
 GLIBC_2.2 tmpfile F
@@ -2511,6 +2513,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index cfe4455a75c2fed22c103f13adec5338abe7ead6..1268c7fc38694d8505b8e23d3eb2915eca882131 100644 (file)
@@ -1,6 +1,4 @@
 GLIBC_2.1 __librt_version_placeholder 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 timer_settime F
index 6f13625e6f64e419c8ba345f43069de2ac12c498..c5c41bf0e65666561c87754ada8c0950a80e7c83 100644 (file)
@@ -1748,6 +1748,8 @@ GLIBC_2.2 tfind F
 GLIBC_2.2 time F
 GLIBC_2.2 timegm F
 GLIBC_2.2 timelocal F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 times F
 GLIBC_2.2 timezone D 0x4
 GLIBC_2.2 tmpfile F
@@ -2508,6 +2510,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index cfe4455a75c2fed22c103f13adec5338abe7ead6..1268c7fc38694d8505b8e23d3eb2915eca882131 100644 (file)
@@ -1,6 +1,4 @@
 GLIBC_2.1 __librt_version_placeholder 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 timer_settime F
index 984222296d2d2fdb029d2b6f294ff59975818c2c..132470d40bd2d5be6db9f8706f6aaa754f530481 100644 (file)
@@ -2060,6 +2060,8 @@ GLIBC_2.2 svc_max_pollfd D 0x4
 GLIBC_2.2 svc_pollfd D 0x4
 GLIBC_2.2 swprintf F
 GLIBC_2.2 swscanf F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 ungetwc F
 GLIBC_2.2 vfwprintf F
 GLIBC_2.2 vfwscanf F
@@ -2651,6 +2653,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index fb3a2042e0811e6c68ca1a69945e5a3c14c43408..d8ff3b098813ae90cd9029f69712edefffe7f11c 100644 (file)
@@ -1,6 +1,4 @@
 GLIBC_2.1 __librt_version_placeholder 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 timer_settime F
index 33b6779ec59b962b26f571bd81dea3debbac0954..358081399a13d2cef1af57c5632c8b6af7e56950 100644 (file)
@@ -14,7 +14,7 @@ libc {
 librt {
   GLIBC_2.3.3 {
     # Changed timer_t.
-    timer_create; timer_delete; timer_getoverrun; timer_gettime;
+    timer_getoverrun; timer_gettime;
     timer_settime;
   }
 }
index a6dc7f2e40ab62466c9fd4f110b934d54500f36f..6ee552611b6f51fcf66c5d2175b1b8eefcffae6e 100644 (file)
@@ -1791,6 +1791,8 @@ GLIBC_2.2 tfind F
 GLIBC_2.2 time F
 GLIBC_2.2 timegm F
 GLIBC_2.2 timelocal F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
 GLIBC_2.2 times F
 GLIBC_2.2 timezone D 0x8
 GLIBC_2.2 tmpfile F
@@ -2242,6 +2244,8 @@ GLIBC_2.3.3 strtoll_l F
 GLIBC_2.3.3 strtoull_l F
 GLIBC_2.3.3 sys_sigabbrev D 0x208
 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.4 __chk_fail F
 GLIBC_2.3.4 __fprintf_chk F
 GLIBC_2.3.4 __gets_chk F
@@ -2484,6 +2488,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index 8592c90bdfc6df024554569e018797d7840630d2..3b744cf5a198449f6af34b1cd9c7e64bca454540 100644 (file)
@@ -1,12 +1,8 @@
 GLIBC_2.1 __librt_version_placeholder 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 timer_settime F
 GLIBC_2.3 __librt_version_placeholder F
-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.3 timer_settime F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c
deleted file mode 100644 (file)
index d307135..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c
deleted file mode 100644 (file)
index 2dd94f5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
index b21b0ca949fcbcac9cf36e0852aaf54f0ba801d3..58099e32045761cfe7e6b3dc240ae30e930de30e 100644 (file)
 #include <pthreadP.h>
 #include "kernel-posix-timers.h"
 #include "kernel-posix-cpu-timers.h"
-
-
-#ifdef timer_create_alias
-# define timer_create timer_create_alias
-#endif
-
+#include <shlib-compat.h>
 
 int
-timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
+___timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
 {
-#undef timer_create
   {
     clockid_t syscall_clockid = (clock_id == CLOCK_PROCESS_CPUTIME_ID
                                 ? MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED)
@@ -74,7 +68,7 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
     else
       {
        /* Create the helper thread.  */
-       pthread_once (&__timer_helper_once, __timer_start_helper_thread);
+       __pthread_once (&__timer_helper_once, __timer_start_helper_thread);
        if (__timer_helper_tid == 0)
          {
            /* No resources to start the helper thread.  */
@@ -93,7 +87,7 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
        /* We cannot simply copy the thread attributes since the
           implementation might keep internal information for
           each instance.  */
-       pthread_attr_init (&newp->attr);
+       __pthread_attr_init (&newp->attr);
        if (evp->sigev_notify_attributes != NULL)
          {
            struct pthread_attr *nattr;
@@ -111,7 +105,7 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
          }
 
        /* In any case set the detach flag.  */
-       pthread_attr_setdetachstate (&newp->attr, PTHREAD_CREATE_DETACHED);
+       __pthread_attr_setdetachstate (&newp->attr, PTHREAD_CREATE_DETACHED);
 
        /* Create the event structure for the kernel timer.  */
        struct sigevent sev =
@@ -132,10 +126,10 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
          }
 
        /* Add to the queue of active timers with thread delivery.  */
-       pthread_mutex_lock (&__timer_active_sigev_thread_lock);
+       __pthread_mutex_lock (&__timer_active_sigev_thread_lock);
        newp->next = __timer_active_sigev_thread;
        __timer_active_sigev_thread = newp;
-       pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
+       __pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
 
        *timerid = timer_to_timerid (newp);
       }
@@ -143,3 +137,52 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
 
   return 0;
 }
+versioned_symbol (libc, ___timer_create, timer_create, GLIBC_2_34);
+libc_hidden_ver (___timer_create, __timer_create)
+
+#if TIMER_T_WAS_INT_COMPAT
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)
+compat_symbol (librt, ___timer_create, timer_create, GLIBC_2_3_3);
+# endif
+
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
+timer_t __timer_compat_list[OLD_TIMER_MAX] __attribute__ ((nocommon));
+libc_hidden_data_def (__timer_compat_list)
+
+int
+__timer_create_old (clockid_t clock_id, struct sigevent *evp, int *timerid)
+{
+  timer_t newp;
+
+  int res = __timer_create (clock_id, evp, &newp);
+  if (res == 0)
+    {
+      int i;
+      for (i = 0; i < OLD_TIMER_MAX; ++i)
+       if (__timer_compat_list[i] == NULL
+           && ! atomic_compare_and_exchange_bool_acq (&__timer_compat_list[i],
+                                                      newp, NULL))
+         {
+           *timerid = i;
+           break;
+         }
+
+      if (__glibc_unlikely (i == OLD_TIMER_MAX))
+       {
+         /* No free slot.  */
+         __timer_delete (newp);
+         __set_errno (EINVAL);
+         res = -1;
+       }
+    }
+
+  return res;
+}
+compat_symbol (librt, __timer_create_old, timer_create, GLIBC_2_2);
+# endif /* OTHER_SHLIB_COMPAT */
+
+#else /* !TIMER_T_WAS_INT_COMPAT */
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (librt, ___timer_create, timer_create, GLIBC_2_2);
+# endif
+#endif /* !TIMER_T_WAS_INT_COMPAT */
index a7a183591e7658c05c2c532110c1c5cdb9ad8ab6..c068ca4c4130b4e008601cb1534d6825ec6c4ccc 100644 (file)
 #include <time.h>
 #include <sysdep.h>
 #include "kernel-posix-timers.h"
-
-
-#ifdef timer_delete_alias
-# define timer_delete timer_delete_alias
-#endif
-
+#include <pthreadP.h>
+#include <shlib-compat.h>
 
 int
-timer_delete (timer_t timerid)
+___timer_delete (timer_t timerid)
 {
-#undef timer_delete
   kernel_timer_t ktimerid = timerid_to_kernel_timer (timerid);
   int res = INLINE_SYSCALL_CALL (timer_delete, ktimerid);
 
@@ -42,7 +37,7 @@ timer_delete (timer_t timerid)
          struct timer *kt = timerid_to_timer (timerid);
 
          /* Remove the timer from the list.  */
-         pthread_mutex_lock (&__timer_active_sigev_thread_lock);
+         __pthread_mutex_lock (&__timer_active_sigev_thread_lock);
          if (__timer_active_sigev_thread == kt)
            __timer_active_sigev_thread = kt->next;
          else
@@ -57,7 +52,7 @@ timer_delete (timer_t timerid)
                else
                  prevp = prevp->next;
            }
-         pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
+         __pthread_mutex_unlock (&__timer_active_sigev_thread_lock);
 
          free (kt);
        }
@@ -69,3 +64,34 @@ timer_delete (timer_t timerid)
      Return the error.  */
   return -1;
 }
+versioned_symbol (libc, ___timer_delete, timer_delete, GLIBC_2_34);
+libc_hidden_ver (___timer_delete, __timer_delete)
+
+#if TIMER_T_WAS_INT_COMPAT
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_3_3, GLIBC_2_34)
+compat_symbol (librt, ___timer_delete, timer_delete, GLIBC_2_3_3);
+#endif
+
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
+int
+__timer_delete_old (int timerid)
+{
+  int res = __timer_delete (__timer_compat_list[timerid]);
+
+  if (res == 0)
+    /* Successful timer deletion, now free the index.  We only need to
+       store a word and that better be atomic.  */
+    __timer_compat_list[timerid] = NULL;
+
+  return res;
+}
+compat_symbol (librt, __timer_delete_old, timer_delete, GLIBC_2_2);
+# endif /* OTHER_SHLIB_COMPAT */
+
+#else /* !TIMER_T_WAS_INT_COMPAT */
+/* The transition from int to timer_t did not change ABI because the
+   type sizes are the same.  */
+# if OTHER_SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (librt, ___timer_delete, timer_delete, GLIBC_2_2);
+# endif
+#endif /* !TIMER_T_WAS_INT_COMPAT */
index 5d0a9c4012af9fb57c06b8c4ee5bae4bff3a0481..377d35a04ff5b5c252cca76c4b932334dfbafe7c 100644 (file)
@@ -1760,6 +1760,8 @@ GLIBC_2.2.5 tfind F
 GLIBC_2.2.5 time F
 GLIBC_2.2.5 timegm F
 GLIBC_2.2.5 timelocal F
+GLIBC_2.2.5 timer_create F
+GLIBC_2.2.5 timer_delete F
 GLIBC_2.2.5 times F
 GLIBC_2.2.5 timezone D 0x8
 GLIBC_2.2.5 tmpfile F
@@ -2196,6 +2198,8 @@ GLIBC_2.3.3 strtoll_l F
 GLIBC_2.3.3 strtoull_l F
 GLIBC_2.3.3 sys_sigabbrev D 0x208
 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.4 __chk_fail F
 GLIBC_2.3.4 __fprintf_chk F
 GLIBC_2.3.4 __gets_chk F
@@ -2440,6 +2444,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index ce501e124d133e92f070773fb44432d981ae07ec..13a2bf2022bdd0332ed258fe1d347944bf82a251 100644 (file)
@@ -1,10 +1,6 @@
-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 timer_settime F
-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.3 timer_settime F
index 2a7ed280fd707cdf2514fed921c673fafe8a9d0a..c4d1c5fb79fd742d2cbe2b26ef61d05f7faa5fec 100644 (file)
@@ -11,7 +11,7 @@ libc {
 librt {
   GLIBC_2.3.3 {
     # Changed timer_t.
-    timer_create; timer_delete; timer_getoverrun; timer_gettime;
+    timer_getoverrun; timer_gettime;
     timer_settime;
   }
 }
index 334808b5acae44f7fa413637c6e00f6a2af4193c..c61eb400702a618a4da4408f28953152bfc7961a 100644 (file)
 #include <time.h>
 #include <sys/types.h>
 
-#define OLD_TIMER_MAX  256
-
-extern timer_t __compat_timer_list[OLD_TIMER_MAX] attribute_hidden;
-
-
-extern int __timer_create_new (clockid_t clock_id, struct sigevent *evp,
-                              timer_t *timerid);
-extern int __timer_delete_new (timer_t timerid);
 extern int __timer_getoverrun_new (timer_t timerid);
 extern int __timer_gettime_new (timer_t timerid, struct itimerspec *value);
 extern int __timer_settime_new (timer_t timerid, int flags,
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_create.c b/sysdeps/unix/sysv/linux/x86_64/timer_create.c
deleted file mode 100644 (file)
index ec71ae4..0000000
+++ /dev/null
@@ -1,65 +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 "compat-timer.h"
-#include <atomic.h>
-
-
-#define timer_create_alias __timer_create_new
-#include <sysdeps/unix/sysv/linux/timer_create.c>
-
-#undef timer_create
-versioned_symbol (librt, __timer_create_new, timer_create, GLIBC_2_3_3);
-
-
-#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
-timer_t __compat_timer_list[OLD_TIMER_MAX] attribute_hidden;
-
-
-int
-__timer_create_old (clockid_t clock_id, struct sigevent *evp, int *timerid)
-{
-  timer_t newp;
-
-  int res = __timer_create_new (clock_id, evp, &newp);
-  if (res == 0)
-    {
-      int i;
-      for (i = 0; i < OLD_TIMER_MAX; ++i)
-       if (__compat_timer_list[i] == NULL
-           && ! atomic_compare_and_exchange_bool_acq (&__compat_timer_list[i],
-                                                      newp, NULL))
-         {
-           *timerid = i;
-           break;
-         }
-
-      if (__glibc_unlikely (i == OLD_TIMER_MAX))
-       {
-         /* No free slot.  */
-         (void) __timer_delete_new (newp);
-         __set_errno (EINVAL);
-         res = -1;
-       }
-    }
-
-  return res;
-}
-compat_symbol (librt, __timer_create_old, timer_create, GLIBC_2_2);
-#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_delete.c b/sysdeps/unix/sysv/linux/x86_64/timer_delete.c
deleted file mode 100644 (file)
index 7fc37fc..0000000
+++ /dev/null
@@ -1,44 +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 "compat-timer.h"
-
-
-#define timer_delete_alias __timer_delete_new
-#include <sysdeps/unix/sysv/linux/timer_delete.c>
-
-#undef timer_delete
-versioned_symbol (librt, __timer_delete_new, timer_delete, GLIBC_2_3_3);
-
-
-#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
-int
-__timer_delete_old (int timerid)
-{
-  int res = __timer_delete_new (__compat_timer_list[timerid]);
-
-  if (res == 0)
-    /* Successful timer deletion, now free the index.  We only need to
-       store a word and that better be atomic.  */
-    __compat_timer_list[timerid] = NULL;
-
-  return res;
-}
-compat_symbol (librt, __timer_delete_old, timer_delete, GLIBC_2_2);
-#endif
index 9b4c1b22358a0a2161bae6d88449a6e9425491d2..fb6e631a00b2621d158192328925b554a5811e92 100644 (file)
@@ -32,7 +32,7 @@ versioned_symbol (librt, __timer_getoverrun_new, timer_getoverrun,
 int
 __timer_getoverrun_old (int timerid)
 {
-  return __timer_getoverrun_new (__compat_timer_list[timerid]);
+  return __timer_getoverrun_new (__timer_compat_list[timerid]);
 }
 compat_symbol (librt, __timer_getoverrun_old, timer_getoverrun, GLIBC_2_2);
 #endif
index 3f3ae12d6bb4566afa7546c3661eded679cd9274..058577ecb2f26d3efcdf1d0644828eb34d371490 100644 (file)
@@ -35,7 +35,7 @@ versioned_symbol (librt, __timer_gettime_new, timer_gettime, GLIBC_2_3_3);
 int
 __timer_gettime_old (int timerid, struct itimerspec *value)
 {
-  return __timer_gettime_new (__compat_timer_list[timerid], value);
+  return __timer_gettime_new (__timer_compat_list[timerid], value);
 }
 compat_symbol (librt, __timer_gettime_old, timer_gettime, GLIBC_2_2);
 #endif
index 14a05965a3b5f16dea5fbce263663d8cdf63da57..2dae16f47853ab3e080544a37537f4e51b00db1a 100644 (file)
@@ -37,7 +37,7 @@ int
 __timer_settime_old (int timerid, int flags, const struct itimerspec *value,
                     struct itimerspec *ovalue)
 {
-  return __timer_settime_new (__compat_timer_list[timerid], flags,
+  return __timer_settime_new (__timer_compat_list[timerid], flags,
                              value, ovalue);
 }
 compat_symbol (librt, __timer_settime_old, timer_settime, GLIBC_2_2);
index d67ef0b6d5a1b74ff276136cf9d4075fe879ad09..620f35836cc20ae2e770c6a4a51eafa1788c581b 100644 (file)
@@ -2011,6 +2011,8 @@ GLIBC_2.16 tfind F
 GLIBC_2.16 time F
 GLIBC_2.16 timegm F
 GLIBC_2.16 timelocal F
+GLIBC_2.16 timer_create F
+GLIBC_2.16 timer_delete F
 GLIBC_2.16 timerfd_create F
 GLIBC_2.16 timerfd_gettime F
 GLIBC_2.16 timerfd_settime F
@@ -2544,6 +2546,8 @@ GLIBC_2.34 thrd_create F
 GLIBC_2.34 thrd_detach F
 GLIBC_2.34 thrd_exit F
 GLIBC_2.34 thrd_join F
+GLIBC_2.34 timer_create F
+GLIBC_2.34 timer_delete F
 GLIBC_2.34 timespec_getres F
 GLIBC_2.34 tss_create F
 GLIBC_2.34 tss_delete F
index 3144e2e290507ef9997a3d1a378bf9e75b9dc69e..4b3e816fdd88230eef61423a9aebf132cca083e7 100644 (file)
@@ -1,5 +1,3 @@
-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 timer_settime F