diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/x86_64')
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/64/librt.abilist | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/Versions | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/compat-timer.h | 8 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/timer_create.c | 65 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/timer_delete.c | 44 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/timer_gettime.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/timer_settime.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist | 2 |
11 files changed, 14 insertions, 127 deletions
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 5d0a9c4012..377d35a04f 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist index ce501e124d..13a2bf2022 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions index 2a7ed280fd..c4d1c5fb79 100644 --- a/sysdeps/unix/sysv/linux/x86_64/Versions +++ b/sysdeps/unix/sysv/linux/x86_64/Versions @@ -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; } } diff --git a/sysdeps/unix/sysv/linux/x86_64/compat-timer.h b/sysdeps/unix/sysv/linux/x86_64/compat-timer.h index 334808b5ac..c61eb40070 100644 --- a/sysdeps/unix/sysv/linux/x86_64/compat-timer.h +++ b/sysdeps/unix/sysv/linux/x86_64/compat-timer.h @@ -20,14 +20,6 @@ #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 index ec71ae488b..0000000000 --- a/sysdeps/unix/sysv/linux/x86_64/timer_create.c +++ /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 index 7fc37fc1a7..0000000000 --- a/sysdeps/unix/sysv/linux/x86_64/timer_delete.c +++ /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 diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c b/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c index 9b4c1b2235..fb6e631a00 100644 --- a/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c +++ b/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c @@ -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 diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c index 3f3ae12d6b..058577ecb2 100644 --- a/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c +++ b/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c @@ -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 diff --git a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c b/sysdeps/unix/sysv/linux/x86_64/timer_settime.c index 14a05965a3..2dae16f478 100644 --- a/sysdeps/unix/sysv/linux/x86_64/timer_settime.c +++ b/sysdeps/unix/sysv/linux/x86_64/timer_settime.c @@ -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); diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index d67ef0b6d5..620f35836c 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist index 3144e2e290..4b3e816fdd 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist @@ -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 |