From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com [IPv6:2607:f8b0:4864:20::735]) by sourceware.org (Postfix) with ESMTPS id 78BF8388A825 for ; Thu, 24 Jun 2021 17:18:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 78BF8388A825 Received: by mail-qk1-x735.google.com with SMTP id o6so16166041qkh.4 for ; Thu, 24 Jun 2021 10:18:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=vgdF3F9zIAEiSsm5tDC0vCGSwpIgbUotBYJd/EU3k0c=; b=d+tARJMC6ctoVqbe4948jjYpCFsxkIrsIHL3khDnPRxSn/BpASY7zjNq7PNywwFZjC 0u1xfWfelKVBbzavSmX9MfZqvGqmcpTOc6jCHsi2g65+2Kdt2MFGh9hblp9ZYCqntwBl G8eLZ6eZ5jDJDIakp9rpTDR8kANXuPDfqFOaLrgi7P1YjERNrgxYq0MdqN8j+TzacTSk Sbp3O7TlcspzpeJJEsHXBTPLcZCPxHpqGEDZ+uxmGtObJbEhLpbI+Lh4bvd7tMHO/JJ4 REuoIR3rM8dBOdB9jTeuNTFn638HDTFcGXGCMcHq6r4W2+17fwAAhC3s+/PsyekZEM66 fneg== X-Gm-Message-State: AOAM531IDWzAusw8gq8aQmOVhWK0xajQfS/zAhxwICx/9jOKxDgw/BWC 8iJkMQmJaiwTNxIwyQ7Le6WslMHZ5lDfRg== X-Google-Smtp-Source: ABdhPJy/GNeYbVPKn0aN99ZO6nmK1Io3jUJdCuBK3hbWH+A3dWoePvm1Xuk5BtS7qMOob1JeECcUxw== X-Received: by 2002:a37:a3ce:: with SMTP id m197mr6787781qke.77.1624555085691; Thu, 24 Jun 2021 10:18:05 -0700 (PDT) Received: from [192.168.1.108] ([177.194.59.218]) by smtp.gmail.com with ESMTPSA id c4sm3011131qkj.81.2021.06.24.10.18.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 24 Jun 2021 10:18:05 -0700 (PDT) Subject: Re: [PATCH 30/34] Linux: Move timer_create, timer_delete from librt to libc To: Florian Weimer , libc-alpha@sourceware.org References: <0df38f8461e28c4f6bbec50cce523f9e7888403a.1623956058.git.fweimer@redhat.com> From: Adhemerval Zanella Message-ID: <1bc7abd8-8021-61f4-9c07-8c22af35e1a5@linaro.org> Date: Thu, 24 Jun 2021 14:18:02 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <0df38f8461e28c4f6bbec50cce523f9e7888403a.1623956058.git.fweimer@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, 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-List-Received-Date: Thu, 24 Jun 2021 17:18:13 -0000 On 17/06/2021 15:59, Florian Weimer via Libc-alpha wrote: > 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. LGTM, thanks. There is only a nit below. Reviewed-by: Adhemerval Zanella > --- > 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 ++ > .../sysv/linux/mips/mips64/n32/libc.abilist | 4 ++ > .../sysv/linux/mips/mips64/n32/librt.abilist | 2 - > .../sysv/linux/mips/mips64/n64/libc.abilist | 4 ++ > .../sysv/linux/mips/mips64/n64/librt.abilist | 2 - > 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 - > 90 files changed, 275 insertions(+), 242 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 bd9d31b985..d2ff0221c7 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 \ Ok. > 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; Ok. > diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions > index 47d4357b9f..0db1b9c31c 100644 > --- a/sysdeps/unix/sysv/linux/Versions > +++ b/sysdeps/unix/sysv/linux/Versions > @@ -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; Ok. > diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist > index 141d5cb843..17779baac1 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 > @@ -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 > 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 Ok. > 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; > } > } Ok. > diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist > index 5441b6a3f3..985a1deca9 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 > @@ -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 > 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 Ok. > 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 Ok. > 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 Ok. > diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist > index 37fd195f70..22fa42dfc3 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 > @@ -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/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 42ba748c07..c8ff2a0b74 100644 > --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist > +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/arm/be/librt.abilist b/sysdeps/unix/sysv/linux/arm/be/librt.abilist > index 8682174e36..0887259367 100644 > --- a/sysdeps/unix/sysv/linux/arm/be/librt.abilist > +++ b/sysdeps/unix/sysv/linux/arm/be/librt.abilist > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist > index 92f06718bd..b237b78f85 100644 > --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist > +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/arm/le/librt.abilist b/sysdeps/unix/sysv/linux/arm/le/librt.abilist > index 8682174e36..0887259367 100644 > --- a/sysdeps/unix/sysv/linux/arm/le/librt.abilist > +++ b/sysdeps/unix/sysv/linux/arm/le/librt.abilist > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist > index 7ee4e79de2..c1b6927cea 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/csky/librt.abilist b/sysdeps/unix/sysv/linux/csky/librt.abilist > index c92668b743..3d7c839b9b 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 7610cc4343..c5021c8109 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist > index cfe4455a75..1268c7fc38 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 54a6d61b0b..8055ea6984 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist > index cfe4455a75..1268c7fc38 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 Ok. > 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; > } > } Ok. > diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist > index cad4a129d1..4cf1da5b62 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 > @@ -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 > 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 Ok. > 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 Ok. > 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 Ok. > 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) Ok. > diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > index ff831374fa..e7c0a81f37 100644 > --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist > index 8682174e36..0887259367 100644 > --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist > +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist > index b2c98b40e9..b82f6366ee 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist > index cfe4455a75..1268c7fc38 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 fa945ee6fc..3f9dfa7664 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/be/librt.abilist > index fcfed800bf..2efee3a326 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 c65815be74..bb2fd6251f 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/le/librt.abilist > index fcfed800bf..2efee3a326 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 9c0174bf65..938142fb4a 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist > index da85415743..dbc81ebe4b 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 ac245f4413..d62382883b 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist > index f17c4b3412..28a8a5d294 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist > index da85415743..dbc81ebe4b 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/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/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist > index 4d9dea349d..6748f9beef 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist > index 51354b072d..00fd77bbab 100644 > --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/librt.abilist > +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/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/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist > index a1f3808f18..03d13e5ee1 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist > index 29111b77bd..a83ae32d03 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 c80718d0b1..c9a45ecb17 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist > index cfe4455a75..1268c7fc38 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 8156d06db5..c7fbc347a1 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 > @@ -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 Ok. > 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; > } > } Ok. > diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist > index a99bd9409b..fb5eb9c67e 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 > @@ -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 > 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 ae562f2864..b89256aba0 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 > @@ -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 > 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 Ok. > 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 @@ Ok. > -#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 7422465183..c653f52373 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 > @@ -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 > 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 0bb8343ac4..711484eee5 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 > @@ -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 > 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 f9db909d63..4040312275 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist > index cfe4455a75..1268c7fc38 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 Ok. > 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; > } > } Ok. > diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist > index 593e5f9ae7..4cf6a5ea09 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 > @@ -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 > 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 Ok. > 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 Ok. > 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 Ok. > diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist > index 8da4e375d9..6fd93a5445 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/sh/be/librt.abilist b/sysdeps/unix/sysv/linux/sh/be/librt.abilist > index cfe4455a75..1268c7fc38 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 6f13625e6f..c5c41bf0e6 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/sh/le/librt.abilist b/sysdeps/unix/sysv/linux/sh/le/librt.abilist > index cfe4455a75..1268c7fc38 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 984222296d..132470d40b 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 > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist > index fb3a2042e0..d8ff3b0988 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 Ok. > 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; > } > } Ok. > diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist > index a6dc7f2e40..6ee552611b 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 > @@ -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 > 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 Ok. > 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 Ok. > 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 Ok. > 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. */ Ok. > @@ -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; > } Ok. > +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); No need to cast here. > + __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 */ Ok. > 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 Ok. > 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 */ Ok. > 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 Ok. > 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; > } > } Ok. > 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, Ok. > 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 Ok. > 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 Ok. > 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 Ok. > 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 Ok. > 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); Ok. > 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 > Ok.