From patchwork Thu Jun 3 23:17:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 43712 X-Patchwork-Delegate: azanella@linux.vnet.ibm.com Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6A2EC39960ED for ; Thu, 3 Jun 2021 23:41:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6A2EC39960ED DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1622763716; bh=RNZN8m49KSmiFPo4TEcY2DI7FQ0FJ3HGpGbfMqachFI=; h=To:Subject:In-Reply-To:References:Date:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=nUPUP4j5+JKczUuvipT+9WkFilZaw5PZHVcdJr+95aIDwZ2zWBy2brBJHj7YpjIib zQhWozMiOw/DfxG0Mm217uaaLHvHZETdbxgDbOYkndTYdC97/n2S7fkNfna60kZ6fi nOGDQ9sSCuNh3gTnjPafoz7lJMgfRHzXZ3e9dyOw= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id D7D493990415 for ; Thu, 3 Jun 2021 23:17:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D7D493990415 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-583-c9G468tNNrqZUZQ0-GYjRw-1; Thu, 03 Jun 2021 19:17:34 -0400 X-MC-Unique: c9G468tNNrqZUZQ0-GYjRw-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A0EA680ED9B for ; Thu, 3 Jun 2021 23:17:33 +0000 (UTC) Received: from oldenburg.str.redhat.com (ovpn-113-228.ams2.redhat.com [10.36.113.228]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A60C95D6AB for ; Thu, 3 Jun 2021 23:17:31 +0000 (UTC) To: libc-alpha@sourceware.org Subject: [PATCH 31/35] Linux: Move timer_create, timer_delete from librt to libc In-Reply-To: References: X-From-Line: c7955d90e8319767fbf32e1cb16284be6fab0884 Mon Sep 17 00:00:00 2001 Message-Id: Date: Fri, 04 Jun 2021 01:17:29 +0200 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Florian Weimer via Libc-alpha From: Florian Weimer Reply-To: Florian Weimer Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" 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. --- rt/Makefile | 4 +- rt/Versions | 26 ++++--- sysdeps/unix/sysv/linux/Versions | 5 ++ sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/aarch64/librt.abilist | 2 - sysdeps/unix/sysv/linux/alpha/Versions | 2 +- sysdeps/unix/sysv/linux/alpha/libc.abilist | 6 ++ sysdeps/unix/sysv/linux/alpha/librt.abilist | 4 -- sysdeps/unix/sysv/linux/alpha/timer_create.c | 1 - sysdeps/unix/sysv/linux/alpha/timer_delete.c | 1 - sysdeps/unix/sysv/linux/arc/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/arc/librt.abilist | 2 - sysdeps/unix/sysv/linux/arm/be/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/arm/be/librt.abilist | 2 - sysdeps/unix/sysv/linux/arm/le/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/arm/le/librt.abilist | 2 - sysdeps/unix/sysv/linux/csky/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/csky/librt.abilist | 2 - sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/hppa/librt.abilist | 2 - sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/i386/librt.abilist | 2 - sysdeps/unix/sysv/linux/ia64/Versions | 2 +- sysdeps/unix/sysv/linux/ia64/libc.abilist | 6 ++ sysdeps/unix/sysv/linux/ia64/librt.abilist | 4 -- sysdeps/unix/sysv/linux/ia64/timer_create.c | 1 - sysdeps/unix/sysv/linux/ia64/timer_delete.c | 1 - sysdeps/unix/sysv/linux/kernel-posix-timers.h | 10 +++ .../sysv/linux/m68k/coldfire/libc.abilist | 4 ++ .../sysv/linux/m68k/coldfire/librt.abilist | 2 - .../unix/sysv/linux/m68k/m680x0/libc.abilist | 4 ++ .../unix/sysv/linux/m68k/m680x0/librt.abilist | 2 - .../sysv/linux/microblaze/be/libc.abilist | 4 ++ .../sysv/linux/microblaze/be/librt.abilist | 2 - .../sysv/linux/microblaze/le/libc.abilist | 4 ++ .../sysv/linux/microblaze/le/librt.abilist | 2 - .../sysv/linux/mips/mips32/fpu/libc.abilist | 4 ++ .../unix/sysv/linux/mips/mips32/librt.abilist | 2 - .../sysv/linux/mips/mips32/nofpu/libc.abilist | 4 ++ .../unix/sysv/linux/mips/mips64/librt.abilist | 2 - .../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++ .../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/nios2/librt.abilist | 2 - .../linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++ .../linux/powerpc/powerpc32/librt.abilist | 2 - .../powerpc/powerpc32/nofpu/libc.abilist | 4 ++ .../sysv/linux/powerpc/powerpc64/Versions | 2 +- .../linux/powerpc/powerpc64/be/libc.abilist | 6 ++ .../linux/powerpc/powerpc64/be/librt.abilist | 4 -- .../linux/powerpc/powerpc64/le/libc.abilist | 4 ++ .../linux/powerpc/powerpc64/le/librt.abilist | 2 - .../linux/powerpc/powerpc64/timer_create.c | 1 - .../linux/powerpc/powerpc64/timer_delete.c | 1 - .../unix/sysv/linux/riscv/rv32/libc.abilist | 4 ++ .../unix/sysv/linux/riscv/rv32/librt.abilist | 2 - .../unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++ .../unix/sysv/linux/riscv/rv64/librt.abilist | 2 - .../unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++ .../sysv/linux/s390/s390-32/librt.abilist | 2 - sysdeps/unix/sysv/linux/s390/s390-64/Versions | 2 +- .../unix/sysv/linux/s390/s390-64/libc.abilist | 6 ++ .../sysv/linux/s390/s390-64/librt.abilist | 4 -- .../sysv/linux/s390/s390-64/timer_create.c | 1 - .../sysv/linux/s390/s390-64/timer_delete.c | 1 - sysdeps/unix/sysv/linux/sh/be/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/sh/be/librt.abilist | 2 - sysdeps/unix/sysv/linux/sh/le/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/sh/le/librt.abilist | 2 - .../sysv/linux/sparc/sparc32/libc.abilist | 4 ++ .../sysv/linux/sparc/sparc32/librt.abilist | 2 - .../unix/sysv/linux/sparc/sparc64/Versions | 2 +- .../sysv/linux/sparc/sparc64/libc.abilist | 6 ++ .../sysv/linux/sparc/sparc64/librt.abilist | 4 -- .../sysv/linux/sparc/sparc64/timer_create.c | 1 - .../sysv/linux/sparc/sparc64/timer_delete.c | 1 - sysdeps/unix/sysv/linux/timer_create.c | 69 +++++++++++++++---- sysdeps/unix/sysv/linux/timer_delete.c | 46 ++++++++++--- .../unix/sysv/linux/x86_64/64/libc.abilist | 6 ++ .../unix/sysv/linux/x86_64/64/librt.abilist | 4 -- sysdeps/unix/sysv/linux/x86_64/Versions | 2 +- sysdeps/unix/sysv/linux/x86_64/compat-timer.h | 8 --- sysdeps/unix/sysv/linux/x86_64/timer_create.c | 65 ----------------- sysdeps/unix/sysv/linux/x86_64/timer_delete.c | 44 ------------ .../unix/sysv/linux/x86_64/timer_getoverr.c | 2 +- .../unix/sysv/linux/x86_64/timer_gettime.c | 2 +- .../unix/sysv/linux/x86_64/timer_settime.c | 2 +- .../unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++ .../unix/sysv/linux/x86_64/x32/librt.abilist | 2 - 89 files changed, 275 insertions(+), 240 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_create.c delete mode 100644 sysdeps/unix/sysv/linux/alpha/timer_delete.c delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_create.c delete mode 100644 sysdeps/unix/sysv/linux/ia64/timer_delete.c delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_create.c delete mode 100644 sysdeps/unix/sysv/linux/x86_64/timer_delete.c diff --git a/rt/Makefile b/rt/Makefile index 0574f11b89..2d0ad75f69 100644 --- a/rt/Makefile +++ b/rt/Makefile @@ -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 \ diff --git a/rt/Versions b/rt/Versions index 9a09062a2a..fca804148c 100644 --- a/rt/Versions +++ b/rt/Versions @@ -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; diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions index d7e8ee9d8b..573415ef3b 100644 --- a/sysdeps/unix/sysv/linux/Versions +++ b/sysdeps/unix/sysv/linux/Versions @@ -120,6 +120,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; @@ -196,6 +200,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; diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 4da2087b50..c4b0749b3f 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -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 @@ -2527,6 +2529,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/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist index 54bb3e5c7c..34768d1472 100644 --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist @@ -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/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions index db6116a890..d4bd056f64 100644 --- a/sysdeps/unix/sysv/linux/alpha/Versions +++ b/sysdeps/unix/sysv/linux/alpha/Versions @@ -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; } } diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 09c6b46594..3b1b10870c 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -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 @@ -2621,6 +2625,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/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist index 8592c90bdf..3b744cf5a1 100644 --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist @@ -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 index d307135003..0000000000 --- a/sysdeps/unix/sysv/linux/alpha/timer_create.c +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/sysdeps/unix/sysv/linux/alpha/timer_delete.c b/sysdeps/unix/sysv/linux/alpha/timer_delete.c deleted file mode 100644 index 2dd94f5c7a..0000000000 --- a/sysdeps/unix/sysv/linux/alpha/timer_delete.c +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist index 7bbea260c4..f3b60500e8 100644 --- a/sysdeps/unix/sysv/linux/arc/libc.abilist +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist @@ -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 @@ -2286,6 +2288,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/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/librt.abilist index 0454fb41fd..7bc7c57bf0 100644 --- a/sysdeps/unix/sysv/linux/arc/librt.abilist +++ b/sysdeps/unix/sysv/linux/arc/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist index a69ff1cfc6..e50811516d 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist @@ -353,6 +353,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 @@ -2269,6 +2271,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 diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist index 0c58d2a925..f9c27d7913 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.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 diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist index 5843fdd3ac..22793bf139 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist @@ -350,6 +350,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 @@ -2266,6 +2268,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 diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist index 0c58d2a925..f9c27d7913 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.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 diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist index e367d19dcc..20c8d77ad1 100644 --- a/sysdeps/unix/sysv/linux/csky/libc.abilist +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist @@ -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 @@ -2470,6 +2472,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/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist index a68d1c3ae3..19de53f9ad 100644 --- a/sysdeps/unix/sysv/linux/csky/librt.abilist +++ b/sysdeps/unix/sysv/linux/csky/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index c08dcaffa0..5ec5d10912 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -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 @@ -2423,6 +2425,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/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist index eea359a56e..421fa4f34b 100644 --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 4966f072a9..231b2601a3 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -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 @@ -2607,6 +2609,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/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist index eea359a56e..421fa4f34b 100644 --- a/sysdeps/unix/sysv/linux/i386/librt.abilist +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions index f438b12587..29b0d98cc6 100644 --- a/sysdeps/unix/sysv/linux/ia64/Versions +++ b/sysdeps/unix/sysv/linux/ia64/Versions @@ -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; } } diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index f7c185d66a..6673c5f715 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -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 @@ -2459,6 +2463,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/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist index 842df91625..74a4971070 100644 --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist @@ -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 index d307135003..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/timer_create.c +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/sysdeps/unix/sysv/linux/ia64/timer_delete.c b/sysdeps/unix/sysv/linux/ia64/timer_delete.c deleted file mode 100644 index 2dd94f5c7a..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/timer_delete.c +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h index 874b809eba..99a2937458 100644 --- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h +++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h @@ -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,8 @@ timerid_to_kernel_timer (timer_t timerid) /* New targets use int instead of timer_t. The difference only matters on 64-bit targets. */ #define TIMER_T_WAS_INT_COMPAT 0 + +/* Used if an override sets TIMER_T_WAS_INT_COMPAT to 1. */ +#define OLD_TIMER_MAX 256 +extern timer_t __timer_compat_list[OLD_TIMER_MAX]; +libc_hidden_proto (__timer_compat_list) diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 1d5fa00384..5a614614ff 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -354,6 +354,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 @@ -2249,6 +2251,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 diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist index 0c58d2a925..f9c27d7913 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.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 diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 481bac83eb..f535986d22 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -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 @@ -2550,6 +2552,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/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist index eea359a56e..421fa4f34b 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist index 6beb0360a8..b388529f33 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist @@ -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 @@ -2521,6 +2523,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/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist index 97a6b25afb..2a70b5df18 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist index 26d8885507..e7a54683bd 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist @@ -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 @@ -2518,6 +2520,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/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist index 97a6b25afb..2a70b5df18 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 17b0d0cc3e..f626859e72 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -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 @@ -2515,6 +2517,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/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist index 51354b072d..00fd77bbab 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index 35f2808b65..2857d72362 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -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 @@ -2513,6 +2515,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/mips/mips64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist index 51354b072d..00fd77bbab 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 14b175c0e9..d69903a236 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -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 @@ -2521,6 +2523,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/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 712773f831..cea7a13c44 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -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 @@ -2515,6 +2517,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/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index 16bca8aa54..fc8f4b2a34 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -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 @@ -2560,6 +2562,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/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist index 3f1e6df810..926b8661b7 100644 --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 65d93709de..3a3453029b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -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 @@ -2577,6 +2579,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/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist index eea359a56e..421fa4f34b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index 6d0de94fa6..2ba21f757a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -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 @@ -2610,6 +2612,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/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions index 84c809507f..4eb22c11ac 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions @@ -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; } } diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist index 2df3507cb6..66694044a4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist @@ -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 @@ -2423,6 +2427,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/powerpc/powerpc64/be/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist index 9df959a434..914203b043 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist index 41d0bcea46..7ca6196a98 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist @@ -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 @@ -2723,6 +2725,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/powerpc/powerpc64/le/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist index 54bb3e5c7c..34768d1472 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/librt.abilist @@ -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 index d307135003..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c +++ /dev/null @@ -1 +0,0 @@ -#include 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 index 2dd94f5c7a..0000000000 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist index 6f1b2cc4a2..bef6b3bffe 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist @@ -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 @@ -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 diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist index 540cdef209..09bbee0960 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv32/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index abfb3dac62..16c290c4e4 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist @@ -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 @@ -2488,6 +2490,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/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist index e436beaf7e..8e1d8b21fe 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 787135a791..74afe6a900 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -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 @@ -2575,6 +2577,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/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist index eea359a56e..421fa4f34b 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions index 3f4d960421..5989ac75a9 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions +++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions @@ -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; } } diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 817df83b6f..30cc1dc7c9 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -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 @@ -2460,6 +2464,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/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist index 9e185ecaef..34e8d31133 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist @@ -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 index d307135003..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c +++ /dev/null @@ -1 +0,0 @@ -#include 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 index 2dd94f5c7a..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist index 8073c87ef4..c14ecf0792 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist @@ -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 @@ -2430,6 +2432,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/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist index eea359a56e..421fa4f34b 100644 --- a/sysdeps/unix/sysv/linux/sh/be/librt.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist index aac7df1b9c..8a8cd2fbf3 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist @@ -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 @@ -2427,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 diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist index eea359a56e..421fa4f34b 100644 --- a/sysdeps/unix/sysv/linux/sh/le/librt.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 0cde20d416..b4c7658329 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -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 @@ -2570,6 +2572,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/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist index 745319ed5c..2db0b41152 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist @@ -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 diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions index 33b6779ec5..358081399a 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions @@ -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; } } diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index aa2ccd7777..d67359a267 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -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 @@ -2482,6 +2486,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/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist index 8592c90bdf..3b744cf5a1 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist @@ -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 index d307135003..0000000000 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c +++ /dev/null @@ -1 +0,0 @@ -#include 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 index 2dd94f5c7a..0000000000 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/sysdeps/unix/sysv/linux/timer_create.c b/sysdeps/unix/sysv/linux/timer_create.c index 3dcd5455fc..9861177cf2 100644 --- a/sysdeps/unix/sysv/linux/timer_create.c +++ b/sysdeps/unix/sysv/linux/timer_create.c @@ -27,17 +27,11 @@ #include #include #include "kernel-posix-cpu-timers.h" - - -#ifdef timer_create_alias -# define timer_create timer_create_alias -#endif - +#include 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. */ + (void) __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 */ diff --git a/sysdeps/unix/sysv/linux/timer_delete.c b/sysdeps/unix/sysv/linux/timer_delete.c index ee8c364d95..074a489afd 100644 --- a/sysdeps/unix/sysv/linux/timer_delete.c +++ b/sysdeps/unix/sysv/linux/timer_delete.c @@ -21,17 +21,12 @@ #include #include #include - - -#ifdef timer_delete_alias -# define timer_delete timer_delete_alias -#endif - +#include +#include 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 */ diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 69ea71b18c..2af1d79de7 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 @@ -2438,6 +2442,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 #include -#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 , 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 . */ - -#include -#include "compat-timer.h" -#include - - -#define timer_create_alias __timer_create_new -#include - -#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 , 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 . */ - -#include -#include "compat-timer.h" - - -#define timer_delete_alias __timer_delete_new -#include - -#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 107b1f97c7..06ccbc40bd 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 f987cd16d3..dd7d01e849 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 8d186c3ceb..c2e52cf10a 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 @@ -2542,6 +2544,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