public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 00/23] nptl: Move almost all remaining functions into libc
@ 2021-05-12 16:57 Florian Weimer
  2021-05-12 16:57 ` [PATCH 01/23] nptl: Move __nptl_initial_report_events into ld.so/startup code Florian Weimer
                   ` (23 more replies)
  0 siblings, 24 replies; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:57 UTC (permalink / raw)
  To: libc-alpha

I had to fix initialization of the dormant _rtld_global_ro after static
dlopen because I was running into issues because threading
initialization depends on data from _rtld_global_ro, and that
increasingly happens even without libpthread linked in.

Tested on aarch64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
x86_64-linux-gnu.  Built with build-many-glibcs-py.

For pthread_create, I'm running into issues related to libthread_db
integration (the structure definition).  But with the current series,
debugging should still work (as verified by the GDB attach test).

Thanks,
Florian

Florian Weimer (23):
  nptl: Move __nptl_initial_report_events into ld.so/startup code
  nptl: Move __nptl_create_event, __nptl_death_event into libc
  elf: Partially initialize ld.so after static dlopen (bug 20802)
  aarch64: Remove _dl_var_init
  arc: Remove _dl_var_init
  ia64: Remove _dl_var_init
  m68k: Remove _dl_var_init
  mips: Remove _dl_var_init
  powerpc: Remove _dl_var_init
  elf: Remove DL_STATIC_INIT
  elf: Move static TLS size and alignment into _rtld_global_ro
  nptl: Introduce __nptl_deferred_init
  nptl: Eliminate the __static_tls_size, __static_tls_align_m1 variables
  nptl: Move pthread_getattr_default_np into libc
  nptl: Remove unused nptl/pthread_getcpuclockid.c implementation
  Linux: Move implementation of pthread_getcpuclockid to nptl directory
  nptl: Move pthread_getcpuclockid into libc
  nptl: Move pthread_getname_np into libc
  nptl: Move pthread_setaffinity_np into libc
  nptl: Move pthread_setname_np into libc
  nptl: Move pthread_setschedprio into libc
  nptl: Move pthread_sigqueue into libc
  nptl: Move semi-public __pthread_get_minstack symbol into libc

 dlfcn/tststatic5.c                            |  11 +-
 elf/Makefile                                  |  11 +-
 elf/dl-open.c                                 |  21 ++-
 elf/dl-reloc.c                                |   6 +-
 elf/dl-tls.c                                  |  27 ++--
 elf/rtld_static_init.c                        |  62 ++++++++
 elf/static-stubs.c                            |  14 ++
 .../aarch64/ldsodefs.h => elf/tst-auxvalmod.c |  34 ++--
 elf/tst-getauxval-static.c                    |  66 ++++++++
 nptl/Makefile                                 |  16 +-
 nptl/Versions                                 |  47 ++++--
 nptl/allocatestack.c                          |  25 +--
 nptl/events.c                                 |   4 +-
 nptl/libpthread-compat.c                      |  36 +++++
 nptl/nptl-init.c                              | 148 +-----------------
 nptl/nptl-stack.c                             |  17 ++
 nptl/nptl-stack.h                             |  11 +-
 nptl/pthreadP.h                               |  33 ++--
 nptl/pthread_cancel.c                         |  84 ++++++++++
 nptl/pthread_create.c                         |  12 +-
 nptl/pthread_getattr_default_np.c             |  14 +-
 nptl/pthread_getcpuclockid.c                  |  35 ++---
 nptl/pthread_getname.c                        |  14 +-
 nptl/pthread_setaffinity.c                    |  10 +-
 nptl/pthread_setname.c                        |  11 +-
 nptl/pthread_setschedprio.c                   |  13 +-
 nptl/pthread_sigqueue.c                       |  11 +-
 nptl_db/db-symbols.awk                        |   1 +
 nptl_db/db_info.c                             |   3 -
 nptl_db/structs.def                           |  13 +-
 nptl_db/td_thr_get_info.c                     |  11 +-
 sysdeps/generic/ldsodefs.h                    |  23 +--
 .../ldsodefs.h => generic/rtld_static_init.h} |  24 +--
 sysdeps/nptl/dl-tls_init_tp.c                 |   8 +
 sysdeps/nptl/pthread_early_init.h             |  28 ++++
 sysdeps/unix/sysv/linux/aarch64/Makefile      |   7 -
 sysdeps/unix/sysv/linux/aarch64/Versions      |   6 -
 sysdeps/unix/sysv/linux/aarch64/dl-static.c   |  84 ----------
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  14 ++
 .../sysv/linux/aarch64/libpthread.abilist     |   8 +-
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  15 ++
 .../unix/sysv/linux/alpha/libpthread.abilist  |  14 +-
 sysdeps/unix/sysv/linux/arc/Makefile          |   7 -
 sysdeps/unix/sysv/linux/arc/Versions          |   6 -
 sysdeps/unix/sysv/linux/arc/dl-static.c       |  84 ----------
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  14 ++
 .../unix/sysv/linux/arc/libpthread.abilist    |   7 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  14 ++
 .../unix/sysv/linux/arm/be/libpthread.abilist |  10 +-
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  14 ++
 .../unix/sysv/linux/arm/le/libpthread.abilist |  10 +-
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  14 ++
 .../unix/sysv/linux/csky/libpthread.abilist   |   7 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  15 ++
 .../unix/sysv/linux/hppa/libpthread.abilist   |  13 +-
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  15 ++
 .../unix/sysv/linux/i386/libpthread.abilist   |  14 +-
 sysdeps/unix/sysv/linux/ia64/Makefile         |   4 -
 sysdeps/unix/sysv/linux/ia64/Versions         |   5 -
 sysdeps/unix/sysv/linux/ia64/dl-static.c      |  61 --------
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  15 ++
 .../unix/sysv/linux/ia64/libpthread.abilist   |  13 +-
 .../{arc/ldsodefs.h => ia64/static-stubs.c}   |  24 ++-
 sysdeps/unix/sysv/linux/m68k/Makefile         |   1 -
 sysdeps/unix/sysv/linux/m68k/Versions         |   5 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |  14 ++
 .../linux/m68k/coldfire/libpthread.abilist    |  10 +-
 sysdeps/unix/sysv/linux/m68k/dl-static.c      |  84 ----------
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  15 ++
 .../sysv/linux/m68k/m680x0/libpthread.abilist |  14 +-
 .../sysv/linux/microblaze/be/libc.abilist     |  14 ++
 .../linux/microblaze/be/libpthread.abilist    |   7 -
 .../sysv/linux/microblaze/le/libc.abilist     |  14 ++
 .../linux/microblaze/le/libpthread.abilist    |   7 -
 sysdeps/unix/sysv/linux/mips/Makefile         |   4 -
 sysdeps/unix/sysv/linux/mips/Versions         |   6 -
 sysdeps/unix/sysv/linux/mips/dl-static.c      |  84 ----------
 sysdeps/unix/sysv/linux/mips/ldsodefs.h       |   6 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  15 ++
 .../sysv/linux/mips/mips32/libpthread.abilist |  13 +-
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  15 ++
 .../sysv/linux/mips/mips64/libpthread.abilist |  13 +-
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  15 ++
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  15 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  14 ++
 .../unix/sysv/linux/nios2/libpthread.abilist  |   7 -
 sysdeps/unix/sysv/linux/powerpc/Makefile      |   4 -
 sysdeps/unix/sysv/linux/powerpc/Versions      |   6 -
 sysdeps/unix/sysv/linux/powerpc/dl-static.c   |  96 ------------
 sysdeps/unix/sysv/linux/powerpc/ldsodefs.h    |  33 ----
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  15 ++
 .../powerpc/powerpc32/libpthread.abilist      |  14 +-
 .../powerpc/powerpc32/nofpu/libc.abilist      |  15 ++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  15 ++
 .../powerpc/powerpc64/be/libpthread.abilist   |  13 +-
 .../linux/powerpc/powerpc64/le/libc.abilist   |  14 ++
 .../powerpc/powerpc64/le/libpthread.abilist   |   8 +-
 .../ldsodefs.h => powerpc/rtld_static_init.h} |  25 ++-
 .../unix/sysv/linux/pthread_getcpuclockid.c   |  42 -----
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  14 ++
 .../sysv/linux/riscv/rv32/libpthread.abilist  |   7 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  14 ++
 .../sysv/linux/riscv/rv64/libpthread.abilist  |   7 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  15 ++
 .../linux/s390/s390-32/libpthread.abilist     |  14 +-
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  15 ++
 .../linux/s390/s390-64/libpthread.abilist     |  13 +-
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  15 ++
 .../unix/sysv/linux/sh/be/libpthread.abilist  |  13 +-
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  15 ++
 .../unix/sysv/linux/sh/le/libpthread.abilist  |  13 +-
 .../sysv/linux/sparc/sparc32/libc.abilist     |  15 ++
 .../linux/sparc/sparc32/libpthread.abilist    |  14 +-
 .../sysv/linux/sparc/sparc64/libc.abilist     |  15 ++
 .../linux/sparc/sparc64/libpthread.abilist    |  13 +-
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  15 ++
 .../sysv/linux/x86_64/64/libpthread.abilist   |  13 +-
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  14 ++
 .../sysv/linux/x86_64/x32/libpthread.abilist  |   8 +-
 119 files changed, 1161 insertions(+), 1211 deletions(-)
 create mode 100644 elf/rtld_static_init.c
 rename sysdeps/unix/sysv/linux/aarch64/ldsodefs.h => elf/tst-auxvalmod.c (56%)
 create mode 100644 elf/tst-getauxval-static.c
 rename sysdeps/{unix/sysv/linux/ia64/ldsodefs.h => generic/rtld_static_init.h} (59%)
 delete mode 100644 sysdeps/unix/sysv/linux/aarch64/dl-static.c
 delete mode 100644 sysdeps/unix/sysv/linux/arc/dl-static.c
 delete mode 100644 sysdeps/unix/sysv/linux/ia64/dl-static.c
 rename sysdeps/unix/sysv/linux/{arc/ldsodefs.h => ia64/static-stubs.c} (60%)
 delete mode 100644 sysdeps/unix/sysv/linux/m68k/dl-static.c
 delete mode 100644 sysdeps/unix/sysv/linux/mips/dl-static.c
 delete mode 100644 sysdeps/unix/sysv/linux/powerpc/dl-static.c
 delete mode 100644 sysdeps/unix/sysv/linux/powerpc/ldsodefs.h
 rename sysdeps/unix/sysv/linux/{m68k/ldsodefs.h => powerpc/rtld_static_init.h} (59%)
 delete mode 100644 sysdeps/unix/sysv/linux/pthread_getcpuclockid.c

-- 
2.31.1


^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 01/23] nptl: Move __nptl_initial_report_events into ld.so/startup code
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
@ 2021-05-12 16:57 ` Florian Weimer
  2021-05-13 17:51   ` Adhemerval Zanella
  2021-05-12 16:57 ` [PATCH 02/23] nptl: Move __nptl_create_event, __nptl_death_event into libc Florian Weimer
                   ` (22 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:57 UTC (permalink / raw)
  To: libc-alpha

The initialization of the report_events TCB field is now performed
in __tls_init_tp instead of __pthread_initialize_minimal_internal
(in libpthread).

The events interface is difficult to test becaue GDB stopped using it
in 2015.  The td_thr_get_info change to ingore lookup issues is
enough to support GDB with this change.
---
 nptl/Versions                 |  1 +
 nptl/nptl-init.c              | 12 ------------
 nptl/pthreadP.h               |  5 +++++
 nptl_db/db_info.c             |  3 ---
 nptl_db/structs.def           |  2 +-
 nptl_db/td_thr_get_info.c     | 11 +++++++++--
 sysdeps/nptl/dl-tls_init_tp.c |  8 ++++++++
 7 files changed, 24 insertions(+), 18 deletions(-)

diff --git a/nptl/Versions b/nptl/Versions
index 1dd3fbc18c..fb3379b788 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -497,6 +497,7 @@ libpthread {
 
 ld {
   GLIBC_PRIVATE {
+     __nptl_initial_report_events;
      __nptl_set_robust_list_avail;
   }
 }
\ No newline at end of file
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 16fb66bdf5..f4b86fbfaf 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -96,21 +96,9 @@ sigcancel_handler (int sig, siginfo_t *si, void *ctx)
 extern void **__libc_dl_error_tsd (void) __attribute__ ((const));
 
 
-/* This can be set by the debugger before initialization is complete.  */
-static bool __nptl_initial_report_events __attribute_used__;
-
 void
 __pthread_initialize_minimal_internal (void)
 {
-  /* Partial initialization of the TCB already happened in TLS_INIT_TP
-     and __tls_init_tp.  */
-  struct pthread *pd = THREAD_SELF;
-
-  /* Before initializing GL (dl_stack_user), the debugger could not
-     find us and had to set __nptl_initial_report_events.  Propagate
-     its setting.  */
-  THREAD_SETMEM (pd, report_events, __nptl_initial_report_events);
-
   struct sigaction sa;
   __sigemptyset (&sa.sa_mask);
 
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 5b844f331a..dc2aece37e 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -328,6 +328,11 @@ extern int __pthread_attr_init (pthread_attr_t *attr);
 libc_hidden_proto (__pthread_attr_init)
 extern int __pthread_attr_init_2_0 (pthread_attr_t *attr);
 
+/* Part of the legacy thread events interface (which has been
+   superseded by PTRACE_O_TRACECLONE).  This can be set by the
+   debugger before initialization is complete.  */
+extern bool __nptl_initial_report_events;
+rtld_hidden_proto (__nptl_initial_report_events)
 
 /* Event handlers for libthread_db interface.  */
 extern void __nptl_create_event (void);
diff --git a/nptl_db/db_info.c b/nptl_db/db_info.c
index bed6ed486e..b39aebb78c 100644
--- a/nptl_db/db_info.c
+++ b/nptl_db/db_info.c
@@ -42,9 +42,6 @@ typedef struct rtld_global rtld_global;
 typedef struct dtv_slotinfo_list dtv_slotinfo_list;
 typedef struct dtv_slotinfo dtv_slotinfo;
 
-/* Actually static in nptl/init.c, but we only need it for typeof.  */
-extern bool __nptl_initial_report_events;
-
 #define schedparam_sched_priority schedparam.sched_priority
 
 #define eventbuf_eventmask eventbuf.eventmask
diff --git a/nptl_db/structs.def b/nptl_db/structs.def
index 9173e1ab8f..275c12bc7a 100644
--- a/nptl_db/structs.def
+++ b/nptl_db/structs.def
@@ -80,7 +80,7 @@ DB_FUNCTION (__nptl_death_event)
 DB_SYMBOL (__nptl_threads_events)
 DB_MAIN_VARIABLE (__nptl_nthreads)
 DB_VARIABLE (__nptl_last_event)
-DB_VARIABLE (__nptl_initial_report_events)
+DB_RTLD_VARIABLE (__nptl_initial_report_events)
 
 DB_MAIN_ARRAY_VARIABLE (__pthread_keys)
 DB_STRUCT (pthread_key_struct)
diff --git a/nptl_db/td_thr_get_info.c b/nptl_db/td_thr_get_info.c
index 002a22a5be..01af021d2a 100644
--- a/nptl_db/td_thr_get_info.c
+++ b/nptl_db/td_thr_get_info.c
@@ -41,8 +41,15 @@ td_thr_get_info (const td_thrhandle_t *th, td_thrinfo_t *infop)
       schedpolicy = SCHED_OTHER;
       schedprio = 0;
       tid = 0;
-      err = DB_GET_VALUE (report_events, th->th_ta_p,
-			  __nptl_initial_report_events, 0);
+
+      /* Ignore errors to obtain the __nptl_initial_report_events
+	 value because GDB no longer uses the events interface, and
+	 other libthread_db consumers hopefully can handle different
+	 libpthread/lds.o load orders.  */
+      report_events = 0;
+      (void) DB_GET_VALUE (report_events, th->th_ta_p,
+			   __nptl_initial_report_events, 0);
+      err = TD_OK;
     }
   else
     {
diff --git a/sysdeps/nptl/dl-tls_init_tp.c b/sysdeps/nptl/dl-tls_init_tp.c
index f1aaa5aa9d..1f7790297f 100644
--- a/sysdeps/nptl/dl-tls_init_tp.c
+++ b/sysdeps/nptl/dl-tls_init_tp.c
@@ -27,6 +27,9 @@ bool __nptl_set_robust_list_avail __attribute__ ((nocommon));
 rtld_hidden_data_def (__nptl_set_robust_list_avail)
 #endif
 
+bool __nptl_initial_report_events __attribute__ ((nocommon));
+rtld_hidden_def (__nptl_initial_report_events)
+
 #ifdef SHARED
 /* Dummy implementation.  See __rtld_mutex_init.  */
 static int
@@ -63,6 +66,11 @@ __tls_init_tp (void)
    THREAD_SETMEM (pd, specific[0], &pd->specific_1stblock[0]);
    THREAD_SETMEM (pd, user_stack, true);
 
+  /* Before initializing GL (dl_stack_user), the debugger could not
+     find us and had to set __nptl_initial_report_events.  Propagate
+     its setting.  */
+  THREAD_SETMEM (pd, report_events, __nptl_initial_report_events);
+
   /* Initialize the robust mutex data.  */
   {
 #if __PTHREAD_MUTEX_HAVE_PREV
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 02/23] nptl: Move __nptl_create_event, __nptl_death_event into libc
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
  2021-05-12 16:57 ` [PATCH 01/23] nptl: Move __nptl_initial_report_events into ld.so/startup code Florian Weimer
@ 2021-05-12 16:57 ` Florian Weimer
  2021-05-13 18:04   ` Adhemerval Zanella
  2021-05-12 16:57 ` [PATCH 03/23] elf: Partially initialize ld.so after static dlopen (bug 20802) Florian Weimer
                   ` (21 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:57 UTC (permalink / raw)
  To: libc-alpha

In libthread_db, use the exported GLIBC_PRIVATE symbols directly
instead of relying on _thread_db_* variables in libpthread
(which used to be created by the DB_FUNCTION macros).
---
 nptl/Makefile          |  2 +-
 nptl/Versions          |  2 ++
 nptl/events.c          |  4 ++--
 nptl/pthreadP.h        |  4 ++--
 nptl_db/db-symbols.awk |  1 +
 nptl_db/structs.def    | 11 +++++++----
 6 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/nptl/Makefile b/nptl/Makefile
index 37a762d530..b57b010779 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -41,6 +41,7 @@ routines = \
   elision-timed \
   elision-trylock \
   elision-unlock \
+  events \
   futex-internal \
   libc-cleanup \
   libc_multiple_threads \
@@ -200,7 +201,6 @@ shared-only-routines = forward
 static-only-routines = pthread_atfork
 
 libpthread-routines = \
-  events \
   libpthread-compat \
   nptl-init \
   pt-interp \
diff --git a/nptl/Versions b/nptl/Versions
index fb3379b788..6e2def1b4c 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -351,6 +351,8 @@ libc {
     tss_set;
   }
   GLIBC_PRIVATE {
+     __nptl_create_event;
+     __nptl_death_event;
     __default_pthread_attr;
     __default_pthread_attr_lock;
     __futex_abstimed_wait64;
diff --git a/nptl/events.c b/nptl/events.c
index 5a07e58402..ab57fefd48 100644
--- a/nptl/events.c
+++ b/nptl/events.c
@@ -24,10 +24,10 @@ void
 __nptl_create_event (void)
 {
 }
-hidden_def (__nptl_create_event)
+libc_hidden_def (__nptl_create_event)
 
 void
 __nptl_death_event (void)
 {
 }
-hidden_def (__nptl_death_event)
+libc_hidden_def (__nptl_death_event)
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index dc2aece37e..a4a87cb549 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -337,8 +337,8 @@ rtld_hidden_proto (__nptl_initial_report_events)
 /* Event handlers for libthread_db interface.  */
 extern void __nptl_create_event (void);
 extern void __nptl_death_event (void);
-hidden_proto (__nptl_create_event)
-hidden_proto (__nptl_death_event)
+libc_hidden_proto (__nptl_create_event)
+libc_hidden_proto (__nptl_death_event)
 
 /* The fork generation counter, defined in libpthread.  */
 extern unsigned long int __fork_generation attribute_hidden;
diff --git a/nptl_db/db-symbols.awk b/nptl_db/db-symbols.awk
index 9e981537c8..6f326cf379 100644
--- a/nptl_db/db-symbols.awk
+++ b/nptl_db/db-symbols.awk
@@ -4,6 +4,7 @@
 BEGIN {
 %define DB_RTLD_VARIABLE(name) /* Nothing. */
 %define DB_MAIN_VARIABLE(name) /* Nothing. */
+%define DB_MAIN_SYMBOL(name) /* Nothing. */
 %define DB_MAIN_ARRAY_VARIABLE(name) /* Nothing. */
 %define DB_LOOKUP_NAME(idx, name)		required[STRINGIFY (name)] = 1;
 %define DB_LOOKUP_NAME_TH_UNIQUE(idx, name)	th_unique[STRINGIFY (name)] = 1;
diff --git a/nptl_db/structs.def b/nptl_db/structs.def
index 275c12bc7a..71c9f7bfc2 100644
--- a/nptl_db/structs.def
+++ b/nptl_db/structs.def
@@ -26,11 +26,14 @@
 # define DB_RTLD_VARIABLE(name) DB_VARIABLE (name)
 #endif
 
-/* DB_MAIN_VARIABLE and DB_MAIN_ARRAY_VARIABLE are not covered by the
-   libpthread symbol check in db-symbols.awk.  */
+/* DB_MAIN_VARIABLE, DB_MAIN_SYMBOL, DB_MAIN_ARRAY_VARIABLE are not
+   covered by the libpthread symbol check in db-symbols.awk.  */
 #ifndef DB_MAIN_VARIABLE
 # define DB_MAIN_VARIABLE(name) DB_VARIABLE (name)
 #endif
+#ifndef DB_MAIN_SYMBOL
+# define DB_MAIN_SYMBOL(name) DB_SYMBOL (name)
+#endif
 #ifndef DB_MAIN_ARRAY_VARIABLE
 # define DB_MAIN_ARRAY_VARIABLE(name) DB_ARRAY_VARIABLE (name)
 #endif
@@ -75,8 +78,8 @@ DB_STRUCT_FIELD (td_eventbuf_t, eventnum)
 DB_STRUCT_FIELD (td_eventbuf_t, eventdata)
 
 DB_SYMBOL (nptl_version)
-DB_FUNCTION (__nptl_create_event)
-DB_FUNCTION (__nptl_death_event)
+DB_MAIN_SYMBOL (__nptl_create_event)
+DB_MAIN_SYMBOL (__nptl_death_event)
 DB_SYMBOL (__nptl_threads_events)
 DB_MAIN_VARIABLE (__nptl_nthreads)
 DB_VARIABLE (__nptl_last_event)
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 03/23] elf: Partially initialize ld.so after static dlopen (bug 20802)
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
  2021-05-12 16:57 ` [PATCH 01/23] nptl: Move __nptl_initial_report_events into ld.so/startup code Florian Weimer
  2021-05-12 16:57 ` [PATCH 02/23] nptl: Move __nptl_create_event, __nptl_death_event into libc Florian Weimer
@ 2021-05-12 16:57 ` Florian Weimer
  2021-05-13 19:35   ` Adhemerval Zanella
  2021-05-12 16:57 ` [PATCH 04/23] aarch64: Remove _dl_var_init Florian Weimer
                   ` (20 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:57 UTC (permalink / raw)
  To: libc-alpha

After static dlopen, a copy of ld.so is loaded into the inner
namespace, but that copy is not initialized at all.  Some
architectures run into serious problems as result, which is why the
_dl_var_init mechanism was invented.  With libpthread moving into
libc and parts into ld.so, more architectures impacted, so it makes
sense to switch to a generic mechanism which performs the partial
initialization.

As a result, getauxval now works after static dlopen (bug 20802).
---
 dlfcn/tststatic5.c                 | 11 ++---
 elf/Makefile                       | 11 +++--
 elf/dl-open.c                      | 17 +++++++-
 elf/rtld_static_init.c             | 56 +++++++++++++++++++++++++
 elf/tst-auxvalmod.c                | 29 +++++++++++++
 elf/tst-getauxval-static.c         | 66 ++++++++++++++++++++++++++++++
 sysdeps/generic/ldsodefs.h         |  7 ++++
 sysdeps/generic/rtld_static_init.h | 24 +++++++++++
 8 files changed, 208 insertions(+), 13 deletions(-)
 create mode 100644 elf/rtld_static_init.c
 create mode 100644 elf/tst-auxvalmod.c
 create mode 100644 elf/tst-getauxval-static.c
 create mode 100644 sysdeps/generic/rtld_static_init.h

diff --git a/dlfcn/tststatic5.c b/dlfcn/tststatic5.c
index 872e87fbaf..e0a50b7dcc 100644
--- a/dlfcn/tststatic5.c
+++ b/dlfcn/tststatic5.c
@@ -25,14 +25,9 @@
    mapped from a static executable.
 
    On targets that support different page sizes, the kernel communicates
-   the size currently in use via the auxiliary vector.  This vector is
-   available to initial startup, but not any DSOs loaded later on.  As
-   static executables do not export their symbols a DSO cannot access
-   the value obtained by initial startup and the value therefore has to
-   be passed on to the DSO and stored within its data area explicitly.
-   This is performed by a call to DL_STATIC_INIT that is defined in a
-   target-dependent way, and that on variable page size targets stores
-   it in the GLRO(dl_pagesize) variable of the DSO's dynamic linker.  */
+   the size currently in use via the auxiliary vector.  The auxiliary
+   vector and HWCAP/HWCAP2 bits are copied across the static dlopen
+   boundary in __rtld_static_init.  */
 static int
 do_test (void)
 {
diff --git a/elf/Makefile b/elf/Makefile
index 4e148e532a..5e809dbfaa 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -25,7 +25,7 @@ headers		= elf.h bits/elfclass.h link.h bits/link.h
 routines	= $(all-dl-routines) dl-support dl-iteratephdr \
 		  dl-addr dl-addr-obj enbl-secure dl-profstub \
 		  dl-origin dl-libc dl-sym dl-sysdep dl-error \
-		  dl-reloc-static-pie libc_early_init
+		  dl-reloc-static-pie libc_early_init rtld_static_init
 
 # The core dynamic linking functions are in libc for the static and
 # profiled libraries.
@@ -60,7 +60,7 @@ all-dl-routines = $(dl-routines) $(sysdep-dl-routines)
 # But they are absent from the shared libc, because that code is in ld.so.
 elide-routines.os = $(all-dl-routines) dl-support enbl-secure dl-origin \
 		    dl-sysdep dl-exception dl-reloc-static-pie \
-		    thread_gscope_wait
+		    thread_gscope_wait rtld_static_init
 
 # ld.so uses those routines, plus some special stuff for being the program
 # interpreter and operating independent of libc.
@@ -161,7 +161,7 @@ tests-static-normal := tst-leaks1-static tst-array1-static tst-array5-static \
 	       tst-tlsalign-static tst-tlsalign-extern-static \
 	       tst-linkall-static tst-env-setuid tst-env-setuid-tunables \
 	       tst-single_threaded-static tst-single_threaded-pthread-static \
-	       tst-dst-static
+	       tst-dst-static tst-getauxval-static
 
 tests-static-internal := tst-tls1-static tst-tls2-static \
 	       tst-ptrguard1-static tst-stackguard1-static \
@@ -346,6 +346,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
 		libmarkermod3-1 libmarkermod3-2 libmarkermod3-3 \
 		libmarkermod4-1 libmarkermod4-2 libmarkermod4-3 libmarkermod4-4 \
 		tst-tls20mod-bad tst-tls21mod tst-dlmopen-dlerror-mod \
+		tst-auxvalmod \
 
 # Most modules build with _ISOMAC defined, but those filtered out
 # depend on internal headers.
@@ -1942,3 +1943,7 @@ $(objpfx)tst-tls20.out: $(objpfx)tst-tls20mod-bad.so \
 $(objpfx)tst-tls21: $(libdl) $(shared-thread-library)
 $(objpfx)tst-tls21.out: $(objpfx)tst-tls21mod.so
 $(objpfx)tst-tls21mod.so: $(tst-tls-many-dynamic-modules:%=$(objpfx)%.so)
+
+$(objpfx)tst-getauxval-static: $(common-objpfx)dlfcn/libdl.a
+$(objpfx)tst-getauxval-static.out: $(objpfx)tst-auxvalmod.so
+tst-getauxval-static-ENV = LD_LIBRARY_PATH=$(objpfx):$(common-objpfx)
diff --git a/elf/dl-open.c b/elf/dl-open.c
index 0887fc5cc5..7e018bb44c 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -35,6 +35,7 @@
 #include <libc-internal.h>
 #include <array_length.h>
 #include <libc-early-init.h>
+#include <gnu/lib-names.h>
 
 #include <dl-dst.h>
 #include <dl-prop.h>
@@ -590,8 +591,20 @@ dl_open_worker (void *a)
   /* So far, so good.  Now check the versions.  */
   for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
     if (new->l_searchlist.r_list[i]->l_real->l_versions == NULL)
-      (void) _dl_check_map_versions (new->l_searchlist.r_list[i]->l_real,
-				     0, 0);
+      {
+	struct link_map *map = new->l_searchlist.r_list[i]->l_real;
+	(void) _dl_check_map_versions (map, 0, 0);
+#ifndef SHARED
+	/* During static dlopen, check if ld.so has been loaded.
+	   Perform partial initialization in this case.  This must
+	   come after the symbol versioning initialization in
+	   _dl_check_map_versions.  */
+	if (map->l_info[DT_SONAME] != NULL
+	    && strcmp (((const char *) D_PTR (map, l_info[DT_STRTAB])
+			+ map->l_info[DT_SONAME]->d_un.d_val), LD_SO) == 0)
+	  __rtld_static_init (map);
+#endif
+      }
 
 #ifdef SHARED
   /* Auditing checkpoint: we have added all objects.  */
diff --git a/elf/rtld_static_init.c b/elf/rtld_static_init.c
new file mode 100644
index 0000000000..cd823096d6
--- /dev/null
+++ b/elf/rtld_static_init.c
@@ -0,0 +1,56 @@
+/* Partial initialization of ld.so loaded via static dlopen.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   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; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <assert.h>
+
+/* Very special case: This object is built into the static libc, but
+   must know the layout of _rtld_global_ro.  */
+#define SHARED
+#include <ldsodefs.h>
+
+#include <rtld_static_init.h>
+
+void
+__rtld_static_init (struct link_map *map)
+{
+  const ElfW(Sym) *sym
+    = _dl_lookup_direct (map, "_rtld_global_ro",
+                         0x9f28436a, /* dl_new_hash output.  */
+                         "GLIBC_PRIVATE",
+                         0x0963cf85); /* _dl_elf_hash output.  */
+  assert (sym != NULL);
+  struct rtld_global_ro *dl = DL_SYMBOL_ADDRESS (map, sym);
+
+  /* Perform partial initialization here.  Note that this runs before
+     ld.so is relocated, so only members initialized without
+     relocations can be written here.  */
+#ifdef HAVE_AUX_VECTOR
+  extern __typeof (dl->_dl_auxv) _dl_auxv attribute_hidden;
+  dl->_dl_auxv = _dl_auxv;
+  extern __typeof (dl->_dl_clktck) _dl_clktck attribute_hidden;
+  dl->_dl_clktck = _dl_clktck;
+#endif
+  extern __typeof (dl->_dl_hwcap) _dl_hwcap attribute_hidden;
+  dl->_dl_hwcap = _dl_hwcap;
+  extern __typeof (dl->_dl_hwcap2) _dl_hwcap2 attribute_hidden;
+  dl->_dl_hwcap2 = _dl_hwcap2;
+  extern __typeof (dl->_dl_pagesize) _dl_pagesize attribute_hidden;
+  dl->_dl_pagesize = _dl_pagesize;
+
+  __rtld_static_init_arch (map, dl);
+}
diff --git a/elf/tst-auxvalmod.c b/elf/tst-auxvalmod.c
new file mode 100644
index 0000000000..0676d66a0c
--- /dev/null
+++ b/elf/tst-auxvalmod.c
@@ -0,0 +1,29 @@
+/* Wrapper for getauxval testing.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   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; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <sys/auxv.h>
+
+unsigned long
+getauxval_wrapper (unsigned long type, int *errnop)
+{
+  errno = *errnop;
+  unsigned long result = getauxval (type);
+  *errnop = errno;
+  return result;
+}
diff --git a/elf/tst-getauxval-static.c b/elf/tst-getauxval-static.c
new file mode 100644
index 0000000000..1d5dc86915
--- /dev/null
+++ b/elf/tst-getauxval-static.c
@@ -0,0 +1,66 @@
+/* Test getauxval from a dynamic library after static dlopen.
+   Copyright (C) 2016 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   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; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <dlfcn.h>
+#include <errno.h>
+#include <stdio.h>
+#include <support/check.h>
+#include <support/xdlfcn.h>
+#include <sys/auxv.h>
+
+unsigned long getauxval_wrapper (unsigned long type, int *errnop);
+
+static int
+do_test (void)
+{
+  unsigned long outer_random = getauxval (AT_RANDOM);
+  if (outer_random == 0)
+    FAIL_UNSUPPORTED ("getauxval does not support RT_RANDOM");
+
+  unsigned long missing_auxv_type;
+  for (missing_auxv_type = AT_RANDOM + 1; ; ++missing_auxv_type)
+    {
+      errno = 0;
+      if (getauxval (missing_auxv_type) == 0 && errno != 0)
+        {
+          TEST_COMPARE (errno, ENOENT);
+          break;
+        }
+    }
+  printf ("info: first missing type: %lu\n", missing_auxv_type);
+
+  void *handle = xdlopen ("tst-auxvalmod.so", RTLD_LAZY);
+  void *ptr = xdlsym (handle, "getauxval_wrapper");
+
+  __typeof__ (getauxval_wrapper) *wrapper = ptr;
+  int inner_errno = 0;
+  unsigned long inner_random = wrapper (AT_RANDOM, &inner_errno);
+  TEST_COMPARE (outer_random, inner_random);
+
+  inner_errno = 0;
+  TEST_COMPARE (wrapper (missing_auxv_type, &inner_errno), 0);
+  TEST_COMPARE (inner_errno, ENOENT);
+
+  TEST_COMPARE (getauxval (AT_HWCAP), wrapper (AT_HWCAP, &inner_errno));
+  TEST_COMPARE (getauxval (AT_HWCAP2), wrapper (AT_HWCAP2, &inner_errno));
+
+  xdlclose (handle);
+  return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 8426b5cbd8..e43d6f5ecd 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -1313,6 +1313,13 @@ dl_init_static_tls (struct link_map *map)
 #endif
 }
 
+#ifndef SHARED
+/* Called before relocating ld.so during static dlopen.  This can be
+   used to partly initialize the dormant ld.so copy in the static
+   dlopen namespace.  */
+void __rtld_static_init (struct link_map *map) attribute_hidden;
+#endif
+
 /* Return true if the ld.so copy in this namespace is actually active
    and working.  If false, the dl_open/dlfcn hooks have to be used to
    call into the outer dynamic linker (which happens after static
diff --git a/sysdeps/generic/rtld_static_init.h b/sysdeps/generic/rtld_static_init.h
new file mode 100644
index 0000000000..3f8dde22a8
--- /dev/null
+++ b/sysdeps/generic/rtld_static_init.h
@@ -0,0 +1,24 @@
+/* Partial initialization of ld.so loaded via static dlopen.  Generic helper.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   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; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+static inline void
+__rtld_static_init_arch (struct link_map *map, struct rtld_global_ro *dl)
+{
+  /* The generic helper does not perform any additional
+     initialization.  */
+}
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 04/23] aarch64: Remove _dl_var_init
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (2 preceding siblings ...)
  2021-05-12 16:57 ` [PATCH 03/23] elf: Partially initialize ld.so after static dlopen (bug 20802) Florian Weimer
@ 2021-05-12 16:57 ` Florian Weimer
  2021-05-13 19:36   ` Adhemerval Zanella
  2021-05-12 16:57 ` [PATCH 05/23] arc: " Florian Weimer
                   ` (19 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:57 UTC (permalink / raw)
  To: libc-alpha

The generic __rtld_static_init code handles GLRO (dl_pagesize).
---
 sysdeps/unix/sysv/linux/aarch64/Makefile    |  7 --
 sysdeps/unix/sysv/linux/aarch64/Versions    |  6 --
 sysdeps/unix/sysv/linux/aarch64/dl-static.c | 84 ---------------------
 sysdeps/unix/sysv/linux/aarch64/ldsodefs.h  | 33 --------
 4 files changed, 130 deletions(-)
 delete mode 100644 sysdeps/unix/sysv/linux/aarch64/dl-static.c
 delete mode 100644 sysdeps/unix/sysv/linux/aarch64/ldsodefs.h

diff --git a/sysdeps/unix/sysv/linux/aarch64/Makefile b/sysdeps/unix/sysv/linux/aarch64/Makefile
index 3f22f71bef..40b9a2e5de 100644
--- a/sysdeps/unix/sysv/linux/aarch64/Makefile
+++ b/sysdeps/unix/sysv/linux/aarch64/Makefile
@@ -1,10 +1,3 @@
-ifeq ($(subdir),elf)
-ifeq ($(build-shared),yes)
-# This is needed for DSO loading from static binaries.
-sysdep-dl-routines += dl-static
-endif
-endif
-
 ifeq ($(subdir),misc)
 sysdep_headers += sys/elf.h
 endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/Versions b/sysdeps/unix/sysv/linux/aarch64/Versions
index 9bd87fe2d0..627ff53529 100644
--- a/sysdeps/unix/sysv/linux/aarch64/Versions
+++ b/sysdeps/unix/sysv/linux/aarch64/Versions
@@ -1,9 +1,3 @@
-ld {
-  GLIBC_PRIVATE {
-    # used for loading by static libraries
-    _dl_var_init;
-  }
-}
 libc {
   GLIBC_PRIVATE {
     __vdso_clock_gettime;
diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-static.c b/sysdeps/unix/sysv/linux/aarch64/dl-static.c
deleted file mode 100644
index 0f7913313d..0000000000
--- a/sysdeps/unix/sysv/linux/aarch64/dl-static.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Variable initialization.  AArch64 version.
-   Copyright (C) 2001-2021 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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.  If not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#include <ldsodefs.h>
-
-#ifdef SHARED
-
-void
-_dl_var_init (void *array[])
-{
-  /* It has to match "variables" below. */
-  enum
-    {
-      DL_PAGESIZE = 0
-    };
-
-  GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
-}
-
-#else
-
-static void *variables[] =
-{
-  &GLRO(dl_pagesize)
-};
-
-static void
-_dl_unprotect_relro (struct link_map *l)
-{
-  ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
-		      & ~(GLRO(dl_pagesize) - 1));
-  ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
-		    & ~(GLRO(dl_pagesize) - 1));
-
-  if (start != end)
-    __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
-}
-
-void
-_dl_static_init (struct link_map *l)
-{
-  struct link_map *rtld_map = l;
-  struct r_scope_elem **scope;
-  const ElfW(Sym) *ref = NULL;
-  lookup_t loadbase;
-  void (*f) (void *[]);
-  size_t i;
-
-  loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
-				  NULL, 0, 1, NULL);
-
-  for (scope = l->l_local_scope; *scope != NULL; scope++)
-    for (i = 0; i < (*scope)->r_nlist; i++)
-      if ((*scope)->r_list[i] == loadbase)
-	{
-	  rtld_map = (*scope)->r_list[i];
-	  break;
-	}
-
-  if (ref != NULL)
-    {
-      f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
-      _dl_unprotect_relro (rtld_map);
-      f (variables);
-      _dl_protect_relro (rtld_map);
-    }
-}
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h b/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
deleted file mode 100644
index df739d4369..0000000000
--- a/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Run-time dynamic linker data structures for loaded ELF shared objects.
-   AArch64 version.
-   Copyright (C) 2001-2021 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef	_LDSODEFS_H
-
-/* Get the real definitions.  */
-#include_next <ldsodefs.h>
-
-/* Now define our stuff.  */
-
-/* We need special support to initialize DSO loaded for statically linked
-   binaries.  */
-extern void _dl_static_init (struct link_map *map);
-#undef DL_STATIC_INIT
-#define DL_STATIC_INIT(map) _dl_static_init (map)
-
-#endif /* ldsodefs.h */
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 05/23] arc: Remove _dl_var_init
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (3 preceding siblings ...)
  2021-05-12 16:57 ` [PATCH 04/23] aarch64: Remove _dl_var_init Florian Weimer
@ 2021-05-12 16:57 ` Florian Weimer
  2021-05-13 19:36   ` Adhemerval Zanella
  2021-05-12 16:57 ` [PATCH 06/23] ia64: " Florian Weimer
                   ` (18 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:57 UTC (permalink / raw)
  To: libc-alpha

The generic __rtld_static_init code handles GLRO (dl_pagesize).
---
 sysdeps/unix/sysv/linux/arc/Makefile    |  7 ---
 sysdeps/unix/sysv/linux/arc/Versions    |  6 --
 sysdeps/unix/sysv/linux/arc/dl-static.c | 84 -------------------------
 sysdeps/unix/sysv/linux/arc/ldsodefs.h  | 32 ----------
 4 files changed, 129 deletions(-)
 delete mode 100644 sysdeps/unix/sysv/linux/arc/dl-static.c
 delete mode 100644 sysdeps/unix/sysv/linux/arc/ldsodefs.h

diff --git a/sysdeps/unix/sysv/linux/arc/Makefile b/sysdeps/unix/sysv/linux/arc/Makefile
index 25d7bbecac..eca9a9fd3a 100644
--- a/sysdeps/unix/sysv/linux/arc/Makefile
+++ b/sysdeps/unix/sysv/linux/arc/Makefile
@@ -12,13 +12,6 @@ sysdep_headers += sys/cachectl.h
 sysdep_routines += cacheflush
 endif
 
-ifeq ($(subdir),elf)
-ifeq ($(build-shared),yes)
-# This is needed for DSO loading from static binaries.
-sysdep-dl-routines += dl-static
-endif
-endif
-
 abi-variants := arcle arcbe
 
 ifeq (,$(filter $(default-abi),$(abi-variants)))
diff --git a/sysdeps/unix/sysv/linux/arc/Versions b/sysdeps/unix/sysv/linux/arc/Versions
index 292f1974b0..b951cda5aa 100644
--- a/sysdeps/unix/sysv/linux/arc/Versions
+++ b/sysdeps/unix/sysv/linux/arc/Versions
@@ -1,9 +1,3 @@
-ld {
-  GLIBC_PRIVATE {
-    # used for loading by static libraries
-    _dl_var_init;
-  }
-}
 libc {
   GLIBC_2.32 {
     _flush_cache;
diff --git a/sysdeps/unix/sysv/linux/arc/dl-static.c b/sysdeps/unix/sysv/linux/arc/dl-static.c
deleted file mode 100644
index ac63705245..0000000000
--- a/sysdeps/unix/sysv/linux/arc/dl-static.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Variable initialization.  ARC version.
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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.  If not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#include <ldsodefs.h>
-
-#ifdef SHARED
-
-void
-_dl_var_init (void *array[])
-{
-  /* It has to match "variables" below. */
-  enum
-    {
-      DL_PAGESIZE = 0
-    };
-
-  GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
-}
-
-#else
-
-static void *variables[] =
-{
-  &GLRO(dl_pagesize)
-};
-
-static void
-_dl_unprotect_relro (struct link_map *l)
-{
-  ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
-		      & ~(GLRO(dl_pagesize) - 1));
-  ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
-		    & ~(GLRO(dl_pagesize) - 1));
-
-  if (start != end)
-    __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
-}
-
-void
-_dl_static_init (struct link_map *l)
-{
-  struct link_map *rtld_map = l;
-  struct r_scope_elem **scope;
-  const ElfW(Sym) *ref = NULL;
-  lookup_t loadbase;
-  void (*f) (void *[]);
-  size_t i;
-
-  loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
-				  NULL, 0, 1, NULL);
-
-  for (scope = l->l_local_scope; *scope != NULL; scope++)
-    for (i = 0; i < (*scope)->r_nlist; i++)
-      if ((*scope)->r_list[i] == loadbase)
-	{
-	  rtld_map = (*scope)->r_list[i];
-	  break;
-	}
-
-  if (ref != NULL)
-    {
-      f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
-      _dl_unprotect_relro (rtld_map);
-      f (variables);
-      _dl_protect_relro (rtld_map);
-    }
-}
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/arc/ldsodefs.h b/sysdeps/unix/sysv/linux/arc/ldsodefs.h
deleted file mode 100644
index 07546825b8..0000000000
--- a/sysdeps/unix/sysv/linux/arc/ldsodefs.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Run-time dynamic linker data structures for loaded ELF shared objects. ARC
-   Copyright (C) 2020-2021 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef	_LDSODEFS_H
-
-/* Get the real definitions.  */
-#include_next <ldsodefs.h>
-
-/* Now define our stuff.  */
-
-/* We need special support to initialize DSO loaded for statically linked
-   binaries.  */
-extern void _dl_static_init (struct link_map *map);
-#undef DL_STATIC_INIT
-#define DL_STATIC_INIT(map) _dl_static_init (map)
-
-#endif /* ldsodefs.h */
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 06/23] ia64: Remove _dl_var_init
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (4 preceding siblings ...)
  2021-05-12 16:57 ` [PATCH 05/23] arc: " Florian Weimer
@ 2021-05-12 16:57 ` Florian Weimer
  2021-05-13 19:37   ` Adhemerval Zanella
  2021-05-12 16:57 ` [PATCH 07/23] m68k: " Florian Weimer
                   ` (17 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:57 UTC (permalink / raw)
  To: libc-alpha

The generic __rtld_static_init code handles GLRO (dl_pagesize)
and GLRO (dl_clktck).
---
 sysdeps/unix/sysv/linux/ia64/Makefile    |  4 --
 sysdeps/unix/sysv/linux/ia64/Versions    |  5 --
 sysdeps/unix/sysv/linux/ia64/dl-static.c | 61 ------------------------
 sysdeps/unix/sysv/linux/ia64/ldsodefs.h  | 32 -------------
 4 files changed, 102 deletions(-)
 delete mode 100644 sysdeps/unix/sysv/linux/ia64/dl-static.c
 delete mode 100644 sysdeps/unix/sysv/linux/ia64/ldsodefs.h

diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile
index f6a08d15d0..da85ba43e2 100644
--- a/sysdeps/unix/sysv/linux/ia64/Makefile
+++ b/sysdeps/unix/sysv/linux/ia64/Makefile
@@ -13,10 +13,6 @@ sysdep_routines += ioperm clone2
 gen-as-const-headers += sigaltstack-offsets.sym
 endif
 
-ifeq ($(subdir),elf)
-sysdep-dl-routines += dl-static
-endif
-
 ifeq ($(subdir),rt)
 librt-routines += rt-sysdep
 librt-shared-only-routines += rt-sysdep
diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
index 116f4e8503..214e6f9f1a 100644
--- a/sysdeps/unix/sysv/linux/ia64/Versions
+++ b/sysdeps/unix/sysv/linux/ia64/Versions
@@ -1,8 +1,3 @@
-ld {
-  GLIBC_PRIVATE {
-    _dl_var_init;
-  }
-}
 libc {
   GLIBC_2.2 {
     ioperm; iopl;
diff --git a/sysdeps/unix/sysv/linux/ia64/dl-static.c b/sysdeps/unix/sysv/linux/ia64/dl-static.c
deleted file mode 100644
index 1cc2563b36..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/dl-static.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Variable initialization.  IA-64 version.
-   Copyright (C) 2001-2021 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#include <ldsodefs.h>
-
-#ifdef SHARED
-
-void
-_dl_var_init (void *array[])
-{
-  /* It has to match "variables" below. */
-  enum
-    {
-      DL_PAGESIZE = 0,
-      DL_CLKTCK
-    };
-
-  GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
-  GLRO(dl_clktck) = *((int *) array[DL_CLKTCK]);
-}
-
-#else
-
-static void *variables[] =
-{
-  &GLRO(dl_pagesize),
-  &GLRO(dl_clktck)
-};
-
-void
-_dl_static_init (struct link_map *map)
-{
-  const ElfW(Sym) *ref = NULL;
-  lookup_t loadbase;
-  void (*f) (void *[]);
-
-  loadbase = _dl_lookup_symbol_x ("_dl_var_init", map, &ref,
-				  map->l_local_scope, NULL, 0, 1, NULL);
-  if (ref != NULL)
-    {
-      f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
-      f (variables);
-    }
-}
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/ia64/ldsodefs.h b/sysdeps/unix/sysv/linux/ia64/ldsodefs.h
deleted file mode 100644
index c868efe592..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/ldsodefs.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Run-time dynamic linker data structures for loaded ELF shared objects. IA64.
-   Copyright (C) 2001-2021 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef	_LDSODEFS_H
-
-/* Get the real definitions.  */
-#include_next <ldsodefs.h>
-
-/* Now define our stuff.  */
-
-/* We need special support to initialize DSO loaded for statically linked
-   binaries.  */
-extern void _dl_static_init (struct link_map *map);
-#undef DL_STATIC_INIT
-#define DL_STATIC_INIT(map) _dl_static_init (map)
-
-#endif /* ldsodefs.h */
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 07/23] m68k: Remove _dl_var_init
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (5 preceding siblings ...)
  2021-05-12 16:57 ` [PATCH 06/23] ia64: " Florian Weimer
@ 2021-05-12 16:57 ` Florian Weimer
  2021-05-13 19:37   ` Adhemerval Zanella
  2021-05-12 16:57 ` [PATCH 08/23] mips: " Florian Weimer
                   ` (16 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:57 UTC (permalink / raw)
  To: libc-alpha

The generic __rtld_static_init code handles GLRO (dl_pagesize).
---
 sysdeps/unix/sysv/linux/m68k/Makefile    |  1 -
 sysdeps/unix/sysv/linux/m68k/Versions    |  5 --
 sysdeps/unix/sysv/linux/m68k/dl-static.c | 84 ------------------------
 sysdeps/unix/sysv/linux/m68k/ldsodefs.h  | 32 ---------
 4 files changed, 122 deletions(-)
 delete mode 100644 sysdeps/unix/sysv/linux/m68k/dl-static.c
 delete mode 100644 sysdeps/unix/sysv/linux/m68k/ldsodefs.h

diff --git a/sysdeps/unix/sysv/linux/m68k/Makefile b/sysdeps/unix/sysv/linux/m68k/Makefile
index be40fae68a..18ad2bf0ee 100644
--- a/sysdeps/unix/sysv/linux/m68k/Makefile
+++ b/sysdeps/unix/sysv/linux/m68k/Makefile
@@ -17,7 +17,6 @@ sysdep_headers += sys/reg.h
 endif
 
 ifeq ($(subdir),elf)
-sysdep-dl-routines += dl-static
 sysdep-others += lddlibc4
 install-bin += lddlibc4
 endif
diff --git a/sysdeps/unix/sysv/linux/m68k/Versions b/sysdeps/unix/sysv/linux/m68k/Versions
index 4b18795513..d98ae120c1 100644
--- a/sysdeps/unix/sysv/linux/m68k/Versions
+++ b/sysdeps/unix/sysv/linux/m68k/Versions
@@ -1,8 +1,3 @@
-ld {
-  GLIBC_PRIVATE {
-    _dl_var_init;
-  }
-}
 libc {
   GLIBC_2.0 {
     # Exception handling support functions from libgcc
diff --git a/sysdeps/unix/sysv/linux/m68k/dl-static.c b/sysdeps/unix/sysv/linux/m68k/dl-static.c
deleted file mode 100644
index e959d8b750..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/dl-static.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Variable initialization.  M68K version.
-   Copyright (C) 2013-2021 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#include <ldsodefs.h>
-
-#ifdef SHARED
-
-void
-_dl_var_init (void *array[])
-{
-  /* It has to match "variables" below. */
-  enum
-    {
-      DL_PAGESIZE = 0,
-    };
-
-  GLRO(dl_pagesize) = *(size_t *) array[DL_PAGESIZE];
-}
-
-#else
-
-static void *variables[] =
-{
-  &GLRO(dl_pagesize)
-};
-
-static void
-_dl_unprotect_relro (struct link_map *l)
-{
-  ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
-		      & ~(GLRO(dl_pagesize) - 1));
-  ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
-		    & ~(GLRO(dl_pagesize) - 1));
-
-  if (start != end)
-    __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
-}
-
-void
-_dl_static_init (struct link_map *l)
-{
-  struct link_map *rtld_map = l;
-  struct r_scope_elem **scope;
-  const ElfW(Sym) *ref = NULL;
-  lookup_t loadbase;
-  void (*f) (void *[]);
-  size_t i;
-
-  loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
-				  NULL, 0, 1, NULL);
-
-  for (scope = l->l_local_scope; *scope != NULL; scope++)
-    for (i = 0; i < (*scope)->r_nlist; i++)
-      if ((*scope)->r_list[i] == loadbase)
-	{
-	  rtld_map = (*scope)->r_list[i];
-	  break;
-	}
-
-  if (ref != NULL)
-    {
-      f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
-      _dl_unprotect_relro (rtld_map);
-      f (variables);
-      _dl_protect_relro (rtld_map);
-    }
-}
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/m68k/ldsodefs.h b/sysdeps/unix/sysv/linux/m68k/ldsodefs.h
deleted file mode 100644
index ef46b21ed8..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/ldsodefs.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Run-time dynamic linker data structures for loaded ELF shared objects. M68K.
-   Copyright (C) 2013-2021 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef	_LDSODEFS_H
-
-/* Get the real definitions.  */
-#include_next <ldsodefs.h>
-
-/* Now define our stuff.  */
-
-/* We need special support to initialize DSO loaded for statically linked
-   binaries.  */
-extern void _dl_static_init (struct link_map *map);
-#undef DL_STATIC_INIT
-#define DL_STATIC_INIT(map) _dl_static_init (map)
-
-#endif /* ldsodefs.h */
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 08/23] mips: Remove _dl_var_init
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (6 preceding siblings ...)
  2021-05-12 16:57 ` [PATCH 07/23] m68k: " Florian Weimer
@ 2021-05-12 16:57 ` Florian Weimer
  2021-05-13 19:37   ` Adhemerval Zanella
  2021-05-12 16:58 ` [PATCH 09/23] powerpc: " Florian Weimer
                   ` (15 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:57 UTC (permalink / raw)
  To: libc-alpha

The generic __rtld_static_init code handles GLRO (dl_pagesize).
---
 sysdeps/unix/sysv/linux/mips/Makefile    |  4 --
 sysdeps/unix/sysv/linux/mips/Versions    |  6 --
 sysdeps/unix/sysv/linux/mips/dl-static.c | 84 ------------------------
 sysdeps/unix/sysv/linux/mips/ldsodefs.h  |  6 --
 4 files changed, 100 deletions(-)
 delete mode 100644 sysdeps/unix/sysv/linux/mips/dl-static.c

diff --git a/sysdeps/unix/sysv/linux/mips/Makefile b/sysdeps/unix/sysv/linux/mips/Makefile
index 026ba242cf..d5725c69d8 100644
--- a/sysdeps/unix/sysv/linux/mips/Makefile
+++ b/sysdeps/unix/sysv/linux/mips/Makefile
@@ -57,10 +57,6 @@ abi-n64_hard_2008-condition := defined(__mips_nan2008) \
 			       && (_MIPS_SIM == _MIPS_SIM_ABI64)
 
 ifeq ($(subdir),elf)
-ifeq ($(build-shared),yes)
-# This is needed for DSO loading from static binaries.
-sysdep-dl-routines += dl-static
-endif
 # If the compiler doesn't use GNU.stack note,
 # this test is expected to fail.
 ifneq ($(mips-has-gnustack),yes)
diff --git a/sysdeps/unix/sysv/linux/mips/Versions b/sysdeps/unix/sysv/linux/mips/Versions
index 0ec82dc480..aeaac41744 100644
--- a/sysdeps/unix/sysv/linux/mips/Versions
+++ b/sysdeps/unix/sysv/linux/mips/Versions
@@ -1,9 +1,3 @@
-ld {
-  GLIBC_PRIVATE {
-    # used for loading by static libraries
-    _dl_var_init;
-  }
-}
 libc {
   GLIBC_2.0 {
     _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
diff --git a/sysdeps/unix/sysv/linux/mips/dl-static.c b/sysdeps/unix/sysv/linux/mips/dl-static.c
deleted file mode 100644
index 07947c2a00..0000000000
--- a/sysdeps/unix/sysv/linux/mips/dl-static.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Variable initialization.  MIPS version.
-   Copyright (C) 2001-2021 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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.  If not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#include <ldsodefs.h>
-
-#ifdef SHARED
-
-void
-_dl_var_init (void *array[])
-{
-  /* It has to match "variables" below. */
-  enum
-    {
-      DL_PAGESIZE = 0
-    };
-
-  GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
-}
-
-#else
-
-static void *variables[] =
-{
-  &GLRO(dl_pagesize)
-};
-
-static void
-_dl_unprotect_relro (struct link_map *l)
-{
-  ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
-		      & ~(GLRO(dl_pagesize) - 1));
-  ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
-		    & ~(GLRO(dl_pagesize) - 1));
-
-  if (start != end)
-    __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
-}
-
-void
-_dl_static_init (struct link_map *l)
-{
-  struct link_map *rtld_map = l;
-  struct r_scope_elem **scope;
-  const ElfW(Sym) *ref = NULL;
-  lookup_t loadbase;
-  void (*f) (void *[]);
-  size_t i;
-
-  loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
-				  NULL, 0, 1, NULL);
-
-  for (scope = l->l_local_scope; *scope != NULL; scope++)
-    for (i = 0; i < (*scope)->r_nlist; i++)
-      if ((*scope)->r_list[i] == loadbase)
-	{
-	  rtld_map = (*scope)->r_list[i];
-	  break;
-	}
-
-  if (ref != NULL)
-    {
-      f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
-      _dl_unprotect_relro (rtld_map);
-      f (variables);
-      _dl_protect_relro (rtld_map);
-    }
-}
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/mips/ldsodefs.h b/sysdeps/unix/sysv/linux/mips/ldsodefs.h
index 7510248ef0..f609eb12c3 100644
--- a/sysdeps/unix/sysv/linux/mips/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/mips/ldsodefs.h
@@ -23,12 +23,6 @@
 
 /* Now define our stuff.  */
 
-/* We need special support to initialize DSO loaded for statically linked
-   binaries.  */
-extern void _dl_static_init (struct link_map *map);
-#undef DL_STATIC_INIT
-#define DL_STATIC_INIT(map) _dl_static_init (map)
-
 /* Allow ABIVERSION == 1, meaning PLTs and copy relocations are
    required, with ELFOSABI_SYSV, and ELFOSABI_GNU.  */
 #undef VALID_ELF_ABIVERSION
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 09/23] powerpc: Remove _dl_var_init
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (7 preceding siblings ...)
  2021-05-12 16:57 ` [PATCH 08/23] mips: " Florian Weimer
@ 2021-05-12 16:58 ` Florian Weimer
  2021-05-13 19:38   ` Adhemerval Zanella
  2021-05-12 16:58 ` [PATCH 10/23] elf: Remove DL_STATIC_INIT Florian Weimer
                   ` (14 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:58 UTC (permalink / raw)
  To: libc-alpha

The generic __rtld_static_init code handles GLRO (dl_pagesize),
GLRO (dl_auxv), GLRO (dl_hwcap), GLRO (dl_hwcap2).
GLRO (dl_cache_line_size) is handled in an __rtld_static_init_arch
override.
---
 sysdeps/unix/sysv/linux/powerpc/Makefile      |  4 -
 sysdeps/unix/sysv/linux/powerpc/Versions      |  6 --
 sysdeps/unix/sysv/linux/powerpc/dl-static.c   | 96 -------------------
 .../{ldsodefs.h => rtld_static_init.h}        | 26 ++---
 4 files changed, 10 insertions(+), 122 deletions(-)
 delete mode 100644 sysdeps/unix/sysv/linux/powerpc/dl-static.c
 rename sysdeps/unix/sysv/linux/powerpc/{ldsodefs.h => rtld_static_init.h} (59%)

diff --git a/sysdeps/unix/sysv/linux/powerpc/Makefile b/sysdeps/unix/sysv/linux/powerpc/Makefile
index a093cda68b..06f1328fab 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Makefile
+++ b/sysdeps/unix/sysv/linux/powerpc/Makefile
@@ -13,10 +13,6 @@ gen-as-const-headers += ucontext_i.sym
 endif
 
 ifeq ($(subdir),elf)
-ifeq ($(build-shared),yes)
-# This is needed for DSO loading from static binaries.
-sysdep-dl-routines += dl-static
-endif
 # Otherwise tst-tls-dlinfo fails due to tst-tlsmod2.so using static tls.
 LDFLAGS-tst-tlsmod2.so += -Wl,--no-tls-get-addr-optimize
 endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/Versions b/sysdeps/unix/sysv/linux/powerpc/Versions
index cc28d84744..416272b718 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Versions
+++ b/sysdeps/unix/sysv/linux/powerpc/Versions
@@ -1,9 +1,3 @@
-ld {
-  GLIBC_PRIVATE {
-  # used for loading by static libraries
-    _dl_var_init;
-  }
-}
 libc {
   GLIBC_PRIVATE {
     __vdso_get_tbfreq;
diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-static.c b/sysdeps/unix/sysv/linux/powerpc/dl-static.c
deleted file mode 100644
index e35ca4c44b..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/dl-static.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Variable initialization.  PowerPC version.
-   Copyright (C) 2013-2021 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   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.  If not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#include <ldsodefs.h>
-
-#ifdef SHARED
-
-void
-_dl_var_init (void *array[])
-{
-  /* It has to match "variables" below. */
-  enum
-    {
-      DL_PAGESIZE = 0,
-      DL_AUXV = 1,
-      DL_HWCAP = 2,
-      DL_HWCAP2 = 3,
-      DL_CACHE_LINE_SIZE = 4
-    };
-
-  GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
-  GLRO(dl_auxv) = (ElfW(auxv_t) *) *((size_t *) array[DL_AUXV]);
-  GLRO(dl_hwcap)  = *((unsigned long int *) array[DL_HWCAP]);
-  GLRO(dl_hwcap2) = *((unsigned long int *) array[DL_HWCAP2]);
-  GLRO(dl_cache_line_size) = (int) *((int *) array[DL_CACHE_LINE_SIZE]);
-}
-
-#else
-
-static void *variables[] =
-{
-  &GLRO(dl_pagesize),
-  &GLRO(dl_auxv),
-  &GLRO(dl_hwcap),
-  &GLRO(dl_hwcap2),
-  &GLRO(dl_cache_line_size)
-};
-
-static void
-_dl_unprotect_relro (struct link_map *l)
-{
-  ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
-		      & ~(GLRO(dl_pagesize) - 1));
-  ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
-		    & ~(GLRO(dl_pagesize) - 1));
-
-  if (start != end)
-    __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
-}
-
-void
-_dl_static_init (struct link_map *l)
-{
-  struct link_map *rtld_map = l;
-  struct r_scope_elem **scope;
-  const ElfW(Sym) *ref = NULL;
-  lookup_t loadbase;
-  void (*f) (void *[]);
-  size_t i;
-
-  loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
-				  NULL, 0, 1, NULL);
-
-  for (scope = l->l_local_scope; *scope != NULL; scope++)
-    for (i = 0; i < (*scope)->r_nlist; i++)
-      if ((*scope)->r_list[i] == loadbase)
-	{
-	  rtld_map = (*scope)->r_list[i];
-	  break;
-	}
-
-  if (ref != NULL)
-    {
-      f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
-      _dl_unprotect_relro (rtld_map);
-      f (variables);
-      _dl_protect_relro (rtld_map);
-    }
-}
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h b/sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h
similarity index 59%
rename from sysdeps/unix/sysv/linux/powerpc/ldsodefs.h
rename to sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h
index bb9c262299..730ac19f77 100644
--- a/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h
@@ -1,6 +1,5 @@
-/* Run-time dynamic linker data structures for loaded ELF shared objects.
-   PowerPC version.
-   Copyright (C) 2013-2021 Free Software Foundation, Inc.
+/* Partial initialization of ld.so loaded via static dlopen.  powerpc helper.
+   Copyright (C) 2021 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -17,17 +16,12 @@
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
-#ifndef _LDSODEFS_H
+static inline void
+__rtld_static_init_arch (struct link_map *map, struct rtld_global_ro *dl)
+{
+  /* This field does not exist in the generic _rtld_global_ro version.  */
 
-/* Get the real definitions.  */
-#include_next <ldsodefs.h>
-
-/* Now define our stuff.  */
-
-/* We need special support to initialize DSO loaded for statically linked
-   binaries.  */
-extern void _dl_static_init (struct link_map *map);
-#undef DL_STATIC_INIT
-#define DL_STATIC_INIT(map) _dl_static_init (map)
-
-#endif /* ldsodefs.h */
+  extern __typeof (dl->_dl_cache_line_size) _dl_cache_line_size
+    attribute_hidden;
+  dl->_dl_cache_line_size = _dl_cache_line_size;
+}
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 10/23] elf: Remove DL_STATIC_INIT
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (8 preceding siblings ...)
  2021-05-12 16:58 ` [PATCH 09/23] powerpc: " Florian Weimer
@ 2021-05-12 16:58 ` Florian Weimer
  2021-05-13 19:38   ` Adhemerval Zanella
  2021-05-12 16:58 ` [PATCH 11/23] elf: Move static TLS size and alignment into _rtld_global_ro Florian Weimer
                   ` (13 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:58 UTC (permalink / raw)
  To: libc-alpha

All users have been converted to the __rtld_static_init mechanism.
---
 elf/dl-open.c              | 4 ----
 sysdeps/generic/ldsodefs.h | 6 ------
 2 files changed, 10 deletions(-)

diff --git a/elf/dl-open.c b/elf/dl-open.c
index 7e018bb44c..5a870aaf2e 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -781,10 +781,6 @@ dl_open_worker (void *a)
       _dl_call_libc_early_init (libc_map, initial);
     }
 
-#ifndef SHARED
-  DL_STATIC_INIT (new);
-#endif
-
   /* Run the initializer functions of new objects.  Temporarily
      disable the exception handler, so that lazy binding failures are
      fatal.  */
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index e43d6f5ecd..c288f3a2a1 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -135,12 +135,6 @@ dl_symbol_visibility_binds_local_p (const ElfW(Sym) *sym)
 # define DL_UNMAP(map)	_dl_unmap_segments (map)
 #endif
 
-/* By default we do not need special support to initialize DSOs loaded
-   by statically linked binaries.  */
-#ifndef DL_STATIC_INIT
-# define DL_STATIC_INIT(map)
-#endif
-
 /* Reloc type classes as returned by elf_machine_type_class().
    ELF_RTYPE_CLASS_PLT means this reloc should not be satisfied by
    some PLT symbol, ELF_RTYPE_CLASS_COPY means this reloc should not be
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 11/23] elf: Move static TLS size and alignment into _rtld_global_ro
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (9 preceding siblings ...)
  2021-05-12 16:58 ` [PATCH 10/23] elf: Remove DL_STATIC_INIT Florian Weimer
@ 2021-05-12 16:58 ` Florian Weimer
  2021-05-13 19:45   ` Adhemerval Zanella
  2021-05-12 16:58 ` [PATCH 12/23] nptl: Introduce __nptl_deferred_init Florian Weimer
                   ` (12 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:58 UTC (permalink / raw)
  To: libc-alpha

This helps to clarify that the caching of these fields in libpthread
(in __static_tls_size, __static_tls_align_m1) is unnecessary.
---
 elf/dl-reloc.c             |  6 +++---
 elf/dl-tls.c               | 22 +++++++++++-----------
 elf/rtld_static_init.c     |  6 ++++++
 sysdeps/generic/ldsodefs.h | 10 ++++++----
 4 files changed, 26 insertions(+), 18 deletions(-)

diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c
index bb9ca1a101..e13a672ade 100644
--- a/elf/dl-reloc.c
+++ b/elf/dl-reloc.c
@@ -53,14 +53,14 @@ _dl_try_allocate_static_tls (struct link_map *map, bool optional)
   /* If we've already used the variable with dynamic access, or if the
      alignment requirements are too high, fail.  */
   if (map->l_tls_offset == FORCED_DYNAMIC_TLS_OFFSET
-      || map->l_tls_align > GL(dl_tls_static_align))
+      || map->l_tls_align > GLRO (dl_tls_static_align))
     {
     fail:
       return -1;
     }
 
 #if TLS_TCB_AT_TP
-  size_t freebytes = GL(dl_tls_static_size) - GL(dl_tls_static_used);
+  size_t freebytes = GLRO (dl_tls_static_size) - GL(dl_tls_static_used);
   if (freebytes < TLS_TCB_SIZE)
     goto fail;
   freebytes -= TLS_TCB_SIZE;
@@ -89,7 +89,7 @@ _dl_try_allocate_static_tls (struct link_map *map, bool optional)
 		   + map->l_tls_firstbyte_offset);
   size_t used = offset + map->l_tls_blocksize;
 
-  if (used > GL(dl_tls_static_size))
+  if (used > GLRO (dl_tls_static_size))
     goto fail;
 
   /* Account optional static TLS surplus usage.  */
diff --git a/elf/dl-tls.c b/elf/dl-tls.c
index 67781bc108..91031c2b72 100644
--- a/elf/dl-tls.c
+++ b/elf/dl-tls.c
@@ -300,9 +300,9 @@ _dl_determine_tlsoffset (void)
     }
 
   GL(dl_tls_static_used) = offset;
-  GL(dl_tls_static_size) = (roundup (offset + GLRO(dl_tls_static_surplus),
-				     max_align)
-			    + TLS_TCB_SIZE);
+  GLRO (dl_tls_static_size) = (roundup (offset + GLRO(dl_tls_static_surplus),
+					max_align)
+			       + TLS_TCB_SIZE);
 #elif TLS_DTV_AT_TP
   /* The TLS blocks start right after the TCB.  */
   size_t offset = TLS_TCB_SIZE;
@@ -345,14 +345,14 @@ _dl_determine_tlsoffset (void)
     }
 
   GL(dl_tls_static_used) = offset;
-  GL(dl_tls_static_size) = roundup (offset + GLRO(dl_tls_static_surplus),
-				    TLS_TCB_ALIGN);
+  GLRO (dl_tls_static_size) = roundup (offset + GLRO(dl_tls_static_surplus),
+				       TLS_TCB_ALIGN);
 #else
 # error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
 #endif
 
   /* The alignment requirement for the static TLS block.  */
-  GL(dl_tls_static_align) = max_align;
+  GLRO (dl_tls_static_align) = max_align;
 }
 #endif /* SHARED */
 
@@ -391,8 +391,8 @@ allocate_dtv (void *result)
 void
 _dl_get_tls_static_info (size_t *sizep, size_t *alignp)
 {
-  *sizep = GL(dl_tls_static_size);
-  *alignp = GL(dl_tls_static_align);
+  *sizep = GLRO (dl_tls_static_size);
+  *alignp = GLRO (dl_tls_static_align);
 }
 
 /* Derive the location of the pointer to the start of the original
@@ -416,7 +416,7 @@ void *
 _dl_allocate_tls_storage (void)
 {
   void *result;
-  size_t size = GL(dl_tls_static_size);
+  size_t size = GLRO (dl_tls_static_size);
 
 #if TLS_DTV_AT_TP
   /* Memory layout is:
@@ -427,7 +427,7 @@ _dl_allocate_tls_storage (void)
 
   /* Perform the allocation.  Reserve space for the required alignment
      and the pointer to the original allocation.  */
-  size_t alignment = GL(dl_tls_static_align);
+  size_t alignment = GLRO (dl_tls_static_align);
   void *allocated = malloc (size + alignment + sizeof (void *));
   if (__glibc_unlikely (allocated == NULL))
     return NULL;
@@ -436,7 +436,7 @@ _dl_allocate_tls_storage (void)
 #if TLS_TCB_AT_TP
   /* The TCB follows the TLS blocks, which determine the alignment.
      (TCB alignment requirements have been taken into account when
-     calculating GL(dl_tls_static_align).)  */
+     calculating GLRO (dl_tls_static_align).)  */
   void *aligned = (void *) roundup ((uintptr_t) allocated, alignment);
   result = aligned + size - TLS_TCB_SIZE;
 
diff --git a/elf/rtld_static_init.c b/elf/rtld_static_init.c
index cd823096d6..bded6bd2d4 100644
--- a/elf/rtld_static_init.c
+++ b/elf/rtld_static_init.c
@@ -51,6 +51,12 @@ __rtld_static_init (struct link_map *map)
   dl->_dl_hwcap2 = _dl_hwcap2;
   extern __typeof (dl->_dl_pagesize) _dl_pagesize attribute_hidden;
   dl->_dl_pagesize = _dl_pagesize;
+  extern __typeof (dl->_dl_tls_static_align) _dl_tls_static_align
+    attribute_hidden;
+  dl->_dl_tls_static_align = _dl_tls_static_align;
+  extern __typeof (dl->_dl_tls_static_size) _dl_tls_static_size
+    attribute_hidden;
+  dl->_dl_tls_static_size = _dl_tls_static_size;
 
   __rtld_static_init_arch (map, dl);
 }
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index c288f3a2a1..e383aa1dc3 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -437,12 +437,8 @@ struct rtld_global
   } *_dl_tls_dtv_slotinfo_list;
   /* Number of modules in the static TLS block.  */
   EXTERN size_t _dl_tls_static_nelem;
-  /* Size of the static TLS block.  */
-  EXTERN size_t _dl_tls_static_size;
   /* Size actually allocated in the static TLS block.  */
   EXTERN size_t _dl_tls_static_used;
-  /* Alignment requirement of the static TLS block.  */
-  EXTERN size_t _dl_tls_static_align;
   /* Remaining amount of static TLS that may be used for optimizing
      dynamic TLS access (e.g. with TLSDESC).  */
   EXTERN size_t _dl_tls_static_optional;
@@ -610,6 +606,12 @@ struct rtld_global_ro
      binaries, don't honor for PIEs).  */
   EXTERN ElfW(Addr) _dl_use_load_bias;
 
+  /* Size of the static TLS block.  */
+  EXTERN size_t _dl_tls_static_size;
+
+  /* Alignment requirement of the static TLS block.  */
+  EXTERN size_t _dl_tls_static_align;
+
   /* Size of surplus space in the static TLS area for dynamically
      loaded modules with IE-model TLS or for TLSDESC optimization.
      See comments in elf/dl-tls.c where it is initialized.  */
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 12/23] nptl: Introduce __nptl_deferred_init
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (10 preceding siblings ...)
  2021-05-12 16:58 ` [PATCH 11/23] elf: Move static TLS size and alignment into _rtld_global_ro Florian Weimer
@ 2021-05-12 16:58 ` Florian Weimer
  2021-05-13 20:20   ` Adhemerval Zanella
  2021-05-12 16:58 ` [PATCH 13/23] nptl: Eliminate the __static_tls_size, __static_tls_align_m1 variables Florian Weimer
                   ` (11 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:58 UTC (permalink / raw)
  To: libc-alpha

This function is called once by pthread_create, before spawning
the first thread, and also within pthread_cancel.  Since it sets up
cancellation handlers, place it along with the pthread_cancel
implementation within libc.

It is necessary to drop the weak attribute for the unwinding function
because otherwise, the implementation is no longer being pulled in.
This increases ldconfig size by about 1200 bytes, despite the updated
static stubs.
---
 elf/static-stubs.c                          | 14 ++++
 nptl/Versions                               |  5 +-
 nptl/nptl-init.c                            | 75 ------------------
 nptl/pthreadP.h                             | 17 ++---
 nptl/pthread_cancel.c                       | 84 +++++++++++++++++++++
 nptl/pthread_create.c                       |  8 +-
 sysdeps/unix/sysv/linux/ia64/static-stubs.c | 26 +++++++
 7 files changed, 140 insertions(+), 89 deletions(-)
 create mode 100644 sysdeps/unix/sysv/linux/ia64/static-stubs.c

diff --git a/elf/static-stubs.c b/elf/static-stubs.c
index a8f24b9028..1752bc7372 100644
--- a/elf/static-stubs.c
+++ b/elf/static-stubs.c
@@ -33,6 +33,20 @@ _Unwind_Resume (struct _Unwind_Exception *exc __attribute__ ((unused)))
   abort ();
 }
 
+_Unwind_Word
+_Unwind_GetCFA (struct _Unwind_Context *ctx __attribute__ ((unused)))
+{
+  abort ();
+}
+
+_Unwind_Reason_Code
+_Unwind_ForcedUnwind (struct _Unwind_Exception *exc __attribute__ ((unused)),
+		      _Unwind_Stop_Fn fn __attribute__ ((unused)),
+		      void *ptr __attribute__ ((unused)))
+{
+  abort ();
+}
+
 _Unwind_Reason_Code
 __gcc_personality_v0 (int version __attribute__ ((unused)),
 		      _Unwind_Action actions __attribute__ ((unused)),
diff --git a/nptl/Versions b/nptl/Versions
index 6e2def1b4c..200055cffa 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -351,8 +351,6 @@ libc {
     tss_set;
   }
   GLIBC_PRIVATE {
-     __nptl_create_event;
-     __nptl_death_event;
     __default_pthread_attr;
     __default_pthread_attr_lock;
     __futex_abstimed_wait64;
@@ -370,8 +368,11 @@ libc {
     __lll_trylock_elision;
     __lll_unlock_elision;
     __mutex_aconf;
+    __nptl_create_event;
     __nptl_deallocate_stack;
     __nptl_deallocate_tsd;
+    __nptl_death_event;
+    __nptl_deferred_init;
     __nptl_free_tcb;
     __nptl_nthreads;
     __nptl_setxid_sighandler;
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index f4b86fbfaf..bc4831ac89 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -44,84 +44,9 @@ size_t __static_tls_align_m1;
 /* Version of the library, used in libthread_db to detect mismatches.  */
 static const char nptl_version[] __attribute_used__ = VERSION;
 
-/* For asynchronous cancellation we use a signal.  This is the handler.  */
-static void
-sigcancel_handler (int sig, siginfo_t *si, void *ctx)
-{
-  /* Safety check.  It would be possible to call this function for
-     other signals and send a signal from another process.  This is not
-     correct and might even be a security problem.  Try to catch as
-     many incorrect invocations as possible.  */
-  if (sig != SIGCANCEL
-      || si->si_pid != __getpid()
-      || si->si_code != SI_TKILL)
-    return;
-
-  struct pthread *self = THREAD_SELF;
-
-  int oldval = THREAD_GETMEM (self, cancelhandling);
-  while (1)
-    {
-      /* We are canceled now.  When canceled by another thread this flag
-	 is already set but if the signal is directly send (internally or
-	 from another process) is has to be done here.  */
-      int newval = oldval | CANCELING_BITMASK | CANCELED_BITMASK;
-
-      if (oldval == newval || (oldval & EXITING_BITMASK) != 0)
-	/* Already canceled or exiting.  */
-	break;
-
-      int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling, newval,
-					      oldval);
-      if (curval == oldval)
-	{
-	  /* Set the return value.  */
-	  THREAD_SETMEM (self, result, PTHREAD_CANCELED);
-
-	  /* Make sure asynchronous cancellation is still enabled.  */
-	  if ((newval & CANCELTYPE_BITMASK) != 0)
-	    /* Run the registered destructors and terminate the thread.  */
-	    __do_cancel ();
-
-	  break;
-	}
-
-      oldval = curval;
-    }
-}
-
-
-/* When using __thread for this, we do it in libc so as not
-   to give libpthread its own TLS segment just for this.  */
-extern void **__libc_dl_error_tsd (void) __attribute__ ((const));
-
-
 void
 __pthread_initialize_minimal_internal (void)
 {
-  struct sigaction sa;
-  __sigemptyset (&sa.sa_mask);
-
-  /* Install the cancellation signal handler.  If for some reason we
-     cannot install the handler we do not abort.  Maybe we should, but
-     it is only asynchronous cancellation which is affected.  */
-  sa.sa_sigaction = sigcancel_handler;
-  sa.sa_flags = SA_SIGINFO;
-  (void) __libc_sigaction (SIGCANCEL, &sa, NULL);
-
-  /* Install the handle to change the threads' uid/gid.  */
-  sa.sa_sigaction = __nptl_setxid_sighandler;
-  sa.sa_flags = SA_SIGINFO | SA_RESTART;
-  (void) __libc_sigaction (SIGSETXID, &sa, NULL);
-
-  /* The parent process might have left the signals blocked.  Just in
-     case, unblock it.  We reuse the signal mask in the sigaction
-     structure.  It is already cleared.  */
-  __sigaddset (&sa.sa_mask, SIGCANCEL);
-  __sigaddset (&sa.sa_mask, SIGSETXID);
-  INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_UNBLOCK, &sa.sa_mask,
-			 NULL, __NSIG_BYTES);
-
   /* Get the size of the static and alignment requirements for the TLS
      block.  */
   size_t static_tls_align;
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index a4a87cb549..e33b071a4d 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -262,18 +262,10 @@ libc_hidden_proto (__pthread_current_priority)
 
 
 extern void __pthread_unwind (__pthread_unwind_buf_t *__buf)
-     __cleanup_fct_attribute __attribute ((__noreturn__))
-#if !defined SHARED && !IS_IN (libpthread)
-     weak_function
-#endif
-     ;
+     __cleanup_fct_attribute __attribute ((__noreturn__));
 libc_hidden_proto (__pthread_unwind)
 extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
-     __cleanup_fct_attribute __attribute ((__noreturn__))
-#ifndef SHARED
-     weak_function
-#endif
-     ;
+     __cleanup_fct_attribute __attribute ((__noreturn__));
 /* NB: No hidden proto for __pthread_unwind_next: inside glibc, the
    legacy unwinding mechanism is used.  */
 
@@ -301,6 +293,11 @@ __do_cancel (void)
 
 /* Internal prototypes.  */
 
+/* One-time initialization activities before pthread_create spawns a
+   new thread.  */
+void __nptl_deferred_init (void);
+libc_hidden_proto (__nptl_deferred_init)
+
 /* Deallocate a thread's stack after optionally making sure the thread
    descriptor is still valid.  */
 extern void __nptl_free_tcb (struct pthread *pd);
diff --git a/nptl/pthread_cancel.c b/nptl/pthread_cancel.c
index e4ad602900..76daa791ea 100644
--- a/nptl/pthread_cancel.c
+++ b/nptl/pthread_cancel.c
@@ -26,6 +26,81 @@
 #include <unwind-link.h>
 #include <stdio.h>
 #include <gnu/lib-names.h>
+#include <sys/single_threaded.h>
+
+/* For asynchronous cancellation we use a signal.  This is the handler.  */
+static void
+sigcancel_handler (int sig, siginfo_t *si, void *ctx)
+{
+  /* Safety check.  It would be possible to call this function for
+     other signals and send a signal from another process.  This is not
+     correct and might even be a security problem.  Try to catch as
+     many incorrect invocations as possible.  */
+  if (sig != SIGCANCEL
+      || si->si_pid != __getpid()
+      || si->si_code != SI_TKILL)
+    return;
+
+  struct pthread *self = THREAD_SELF;
+
+  int oldval = THREAD_GETMEM (self, cancelhandling);
+  while (1)
+    {
+      /* We are canceled now.  When canceled by another thread this flag
+	 is already set but if the signal is directly send (internally or
+	 from another process) is has to be done here.  */
+      int newval = oldval | CANCELING_BITMASK | CANCELED_BITMASK;
+
+      if (oldval == newval || (oldval & EXITING_BITMASK) != 0)
+	/* Already canceled or exiting.  */
+	break;
+
+      int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling, newval,
+					      oldval);
+      if (curval == oldval)
+	{
+	  /* Set the return value.  */
+	  THREAD_SETMEM (self, result, PTHREAD_CANCELED);
+
+	  /* Make sure asynchronous cancellation is still enabled.  */
+	  if ((newval & CANCELTYPE_BITMASK) != 0)
+	    /* Run the registered destructors and terminate the thread.  */
+	    __do_cancel ();
+
+	  break;
+	}
+
+      oldval = curval;
+    }
+}
+
+void
+__nptl_deferred_init (void)
+{
+  struct sigaction sa;
+  __sigemptyset (&sa.sa_mask);
+
+  /* Install the cancellation signal handler.  If for some reason we
+     cannot install the handler we do not abort.  Maybe we should, but
+     it is only asynchronous cancellation which is affected.  */
+  sa.sa_sigaction = sigcancel_handler;
+  sa.sa_flags = SA_SIGINFO;
+  (void) __libc_sigaction (SIGCANCEL, &sa, NULL);
+
+  /* Install the handle to change the threads' uid/gid.  */
+  sa.sa_sigaction = __nptl_setxid_sighandler;
+  sa.sa_flags = SA_SIGINFO | SA_RESTART;
+  (void) __libc_sigaction (SIGSETXID, &sa, NULL);
+
+  /* The parent process might have left the signals blocked.  Just in
+     case, unblock it.  We reuse the signal mask in the sigaction
+     structure.  It is already cleared.  */
+  __sigaddset (&sa.sa_mask, SIGCANCEL);
+  __sigaddset (&sa.sa_mask, SIGSETXID);
+  INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_UNBLOCK, &sa.sa_mask,
+			 NULL, __NSIG_BYTES);
+}
+libc_hidden_def (__nptl_deferred_init)
 
 int
 __pthread_cancel (pthread_t th)
@@ -46,6 +121,15 @@ __pthread_cancel (pthread_t th)
 		    " must be installed for pthread_cancel to work\n");
   }
 #endif
+
+  /* Perform the deferred initialization if necessary, to install the
+     signal handler for a potential self-cancellation below.  */
+  if (__libc_single_threaded)
+    {
+      __nptl_deferred_init ();
+      __libc_single_threaded = 0;
+    }
+
   int result = 0;
   int oldval;
   int newval;
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index 770656453d..43f3722f57 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -459,9 +459,13 @@ __pthread_create_2_1 (pthread_t *newthread, const pthread_attr_t *attr,
 {
   STACK_VARIABLES;
 
-  /* Avoid a data race in the multi-threaded case.  */
+  /* Avoid a data race in the multi-threaded case, and call the
+     deferred initialization only once.  */
   if (__libc_single_threaded)
-    __libc_single_threaded = 0;
+    {
+      __nptl_deferred_init ();
+      __libc_single_threaded = 0;
+    }
 
   const struct pthread_attr *iattr = (struct pthread_attr *) attr;
   union pthread_attr_transparent default_attr;
diff --git a/sysdeps/unix/sysv/linux/ia64/static-stubs.c b/sysdeps/unix/sysv/linux/ia64/static-stubs.c
new file mode 100644
index 0000000000..8bd594c2f1
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/ia64/static-stubs.c
@@ -0,0 +1,26 @@
+/* Stub implementations of functions to link into statically linked
+   programs without needing libgcc_eh.  ia64 version.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   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; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <elf/static-stubs.c>
+
+_Unwind_Word
+_Unwind_GetBSP (struct _Unwind_Context *ctx)
+{
+  abort ();
+}
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 13/23] nptl: Eliminate the __static_tls_size, __static_tls_align_m1 variables
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (11 preceding siblings ...)
  2021-05-12 16:58 ` [PATCH 12/23] nptl: Introduce __nptl_deferred_init Florian Weimer
@ 2021-05-12 16:58 ` Florian Weimer
  2021-05-14 12:40   ` Adhemerval Zanella
  2021-05-12 16:58 ` [PATCH 14/23] nptl: Move pthread_getattr_default_np into libc Florian Weimer
                   ` (10 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:58 UTC (permalink / raw)
  To: libc-alpha

Use the  __nptl_tls_static_size_for_stack inline function instead,
and the GLRO (dl_tls_static_align) value directly.

The computation of GLRO (dl_tls_static_align)  in
_dl_determine_tlsoffset ensures that the alignment is at least
TLS_TCB_ALIGN, which at least STACK_ALIGN (see allocate_stack).
Therefore, the additional rounding-up step is removed.

ALso move the initialization of the default stack size from
__pthread_initialize_minimal_internal to __pthread_early_init.
This introduces an extra system call during single-threaded startup,
but this simplifies the initialization sequence.  No locking is
needed around the writes to __default_pthread_attr because the
process is single-threaded at this point.
---
 elf/dl-tls.c                      |  5 ++--
 nptl/allocatestack.c              | 25 +++++++++--------
 nptl/nptl-init.c                  | 46 ++-----------------------------
 nptl/nptl-stack.h                 | 11 +++++++-
 nptl/pthreadP.h                   |  4 ---
 sysdeps/nptl/pthread_early_init.h | 28 +++++++++++++++++++
 6 files changed, 58 insertions(+), 61 deletions(-)

diff --git a/elf/dl-tls.c b/elf/dl-tls.c
index 91031c2b72..e531ec5913 100644
--- a/elf/dl-tls.c
+++ b/elf/dl-tls.c
@@ -386,8 +386,9 @@ allocate_dtv (void *result)
   return result;
 }
 
-
-/* Get size and alignment requirements of the static TLS block.  */
+/* Get size and alignment requirements of the static TLS block.  This
+   function is no longer used by glibc itself, but the GCC sanitizers
+   use it despite the GLIBC_PRIVATE status.  */
 void
 _dl_get_tls_static_info (size_t *sizep, size_t *alignp)
 {
diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c
index c0a5c4d96d..dc81a2ca73 100644
--- a/nptl/allocatestack.c
+++ b/nptl/allocatestack.c
@@ -254,6 +254,8 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
   struct pthread *pd;
   size_t size;
   size_t pagesize_m1 = __getpagesize () - 1;
+  size_t tls_static_size_for_stack = __nptl_tls_static_size_for_stack ();
+  size_t tls_static_align_m1 = GLRO (dl_tls_static_align) - 1;
 
   assert (powerof2 (pagesize_m1 + 1));
   assert (TCB_ALIGNMENT >= STACK_ALIGN);
@@ -284,17 +286,18 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
       /* If the user also specified the size of the stack make sure it
 	 is large enough.  */
       if (attr->stacksize != 0
-	  && attr->stacksize < (__static_tls_size + MINIMAL_REST_STACK))
+	  && attr->stacksize < (tls_static_size_for_stack
+				+ MINIMAL_REST_STACK))
 	return EINVAL;
 
       /* Adjust stack size for alignment of the TLS block.  */
 #if TLS_TCB_AT_TP
       adj = ((uintptr_t) stackaddr - TLS_TCB_SIZE)
-	    & __static_tls_align_m1;
+	    & tls_static_align_m1;
       assert (size > adj + TLS_TCB_SIZE);
 #elif TLS_DTV_AT_TP
-      adj = ((uintptr_t) stackaddr - __static_tls_size)
-	    & __static_tls_align_m1;
+      adj = ((uintptr_t) stackaddr - tls_static_size_for_stack)
+	    & tls_static_align_m1;
       assert (size > adj);
 #endif
 
@@ -307,7 +310,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
 			       - TLS_TCB_SIZE - adj);
 #elif TLS_DTV_AT_TP
       pd = (struct pthread *) (((uintptr_t) stackaddr
-				- __static_tls_size - adj)
+				- tls_static_size_for_stack - adj)
 			       - TLS_PRE_TCB_SIZE);
 #endif
 
@@ -366,7 +369,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
 			| ((GL(dl_stack_flags) & PF_X) ? PROT_EXEC : 0));
 
       /* Adjust the stack size for alignment.  */
-      size &= ~__static_tls_align_m1;
+      size &= ~tls_static_align_m1;
       assert (size != 0);
 
       /* Make sure the size of the stack is enough for the guard and
@@ -385,7 +388,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
 	/* Arithmetic overflow.  */
 	return EINVAL;
       size += guardsize;
-      if (__builtin_expect (size < ((guardsize + __static_tls_size
+      if (__builtin_expect (size < ((guardsize + tls_static_size_for_stack
 				     + MINIMAL_REST_STACK + pagesize_m1)
 				    & ~pagesize_m1),
 			    0))
@@ -414,11 +417,11 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
 #if TLS_TCB_AT_TP
 	  pd = (struct pthread *) ((((uintptr_t) mem + size)
 				    - TLS_TCB_SIZE)
-				   & ~__static_tls_align_m1);
+				   & ~tls_static_align_m1);
 #elif TLS_DTV_AT_TP
 	  pd = (struct pthread *) ((((uintptr_t) mem + size
-				    - __static_tls_size)
-				    & ~__static_tls_align_m1)
+				    - tls_static_size_for_stack)
+				    & ~tls_static_align_m1)
 				   - TLS_PRE_TCB_SIZE);
 #endif
 
@@ -602,7 +605,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
 
 # if TLS_TCB_AT_TP
   /* The stack begins before the TCB and the static TLS block.  */
-  stacktop = ((char *) (pd + 1) - __static_tls_size);
+  stacktop = ((char *) (pd + 1) - tls_static_size_for_stack);
 # elif TLS_DTV_AT_TP
   stacktop = (char *) (pd - 1);
 # endif
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index bc4831ac89..732e580355 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -36,10 +36,7 @@
 #include <kernel-features.h>
 #include <libc-pointer-arith.h>
 #include <pthread_mutex_conf.h>
-
-/* Size and alignment of static TLS block.  */
-size_t __static_tls_size;
-size_t __static_tls_align_m1;
+#include <nptl-stack.h>
 
 /* Version of the library, used in libthread_db to detect mismatches.  */
 static const char nptl_version[] __attribute_used__ = VERSION;
@@ -47,44 +44,6 @@ static const char nptl_version[] __attribute_used__ = VERSION;
 void
 __pthread_initialize_minimal_internal (void)
 {
-  /* Get the size of the static and alignment requirements for the TLS
-     block.  */
-  size_t static_tls_align;
-  _dl_get_tls_static_info (&__static_tls_size, &static_tls_align);
-
-  /* Make sure the size takes all the alignments into account.  */
-  if (STACK_ALIGN > static_tls_align)
-    static_tls_align = STACK_ALIGN;
-  __static_tls_align_m1 = static_tls_align - 1;
-
-  __static_tls_size = roundup (__static_tls_size, static_tls_align);
-
-  /* Determine the default allowed stack size.  This is the size used
-     in case the user does not specify one.  */
-  struct rlimit limit;
-  if (__getrlimit (RLIMIT_STACK, &limit) != 0
-      || limit.rlim_cur == RLIM_INFINITY)
-    /* The system limit is not usable.  Use an architecture-specific
-       default.  */
-    limit.rlim_cur = ARCH_STACK_DEFAULT_SIZE;
-  else if (limit.rlim_cur < PTHREAD_STACK_MIN)
-    /* The system limit is unusably small.
-       Use the minimal size acceptable.  */
-    limit.rlim_cur = PTHREAD_STACK_MIN;
-
-  /* Make sure it meets the minimum size that allocate_stack
-     (allocatestack.c) will demand, which depends on the page size.  */
-  const uintptr_t pagesz = GLRO(dl_pagesize);
-  const size_t minstack = pagesz + __static_tls_size + MINIMAL_REST_STACK;
-  if (limit.rlim_cur < minstack)
-    limit.rlim_cur = minstack;
-
-  /* Round the resource limit up to page size.  */
-  limit.rlim_cur = ALIGN_UP (limit.rlim_cur, pagesz);
-  lll_lock (__default_pthread_attr_lock, LLL_PRIVATE);
-  __default_pthread_attr.internal.stacksize = limit.rlim_cur;
-  __default_pthread_attr.internal.guardsize = GLRO (dl_pagesize);
-  lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE);
 }
 strong_alias (__pthread_initialize_minimal_internal,
 	      __pthread_initialize_minimal)
@@ -101,5 +60,6 @@ strong_alias (__pthread_initialize_minimal_internal,
 size_t
 __pthread_get_minstack (const pthread_attr_t *attr)
 {
-  return GLRO(dl_pagesize) + __static_tls_size + PTHREAD_STACK_MIN;
+  return (GLRO(dl_pagesize) + __nptl_tls_static_size_for_stack ()
+	  + PTHREAD_STACK_MIN);
 }
diff --git a/nptl/nptl-stack.h b/nptl/nptl-stack.h
index 8631b61816..a6bd8df77f 100644
--- a/nptl/nptl-stack.h
+++ b/nptl/nptl-stack.h
@@ -20,7 +20,8 @@
 #ifndef _NPTL_STACK_H
 #define _NPTL_STACK_H
 
-#include <descr.h>
+#include <nptl/descr.h>
+#include <ldsodefs.h>
 #include <list.h>
 #include <stdbool.h>
 
@@ -47,4 +48,12 @@ libc_hidden_proto (__nptl_deallocate_stack)
 /* Free stacks until cache size is lower than LIMIT.  */
 void __nptl_free_stacks (size_t limit) attribute_hidden;
 
+/* Compute the size of the static TLS area based on data from the
+   dynamic loader.  */
+static inline size_t
+__nptl_tls_static_size_for_stack (void)
+{
+  return roundup (GLRO (dl_tls_static_size), GLRO (dl_tls_static_align));
+}
+
 #endif /* _NPTL_STACK_H */
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index e33b071a4d..9ee61af8b3 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -205,10 +205,6 @@ libc_hidden_proto (__default_pthread_attr_lock)
 /* Called from __libc_freeres to deallocate the default attribute.  */
 extern void __default_pthread_attr_freeres (void) attribute_hidden;
 
-/* Size and alignment of static TLS block.  */
-extern size_t __static_tls_size attribute_hidden;
-extern size_t __static_tls_align_m1 attribute_hidden;
-
 /* Attribute handling.  */
 extern struct pthread_attr *__attr_list attribute_hidden;
 extern int __attr_list_lock attribute_hidden;
diff --git a/sysdeps/nptl/pthread_early_init.h b/sysdeps/nptl/pthread_early_init.h
index 2d15303dd9..5b49ce39c2 100644
--- a/sysdeps/nptl/pthread_early_init.h
+++ b/sysdeps/nptl/pthread_early_init.h
@@ -19,12 +19,40 @@
 #ifndef _PTHREAD_EARLY_INIT_H
 #define _PTHREAD_EARLY_INIT_H 1
 
+#include <nptl/nptl-stack.h>
 #include <nptl/pthreadP.h>
 #include <pthread_mutex_conf.h>
+#include <sys/resource.h>
 
 static inline void
 __pthread_early_init (void)
 {
+  /* Determine the default allowed stack size.  This is the size used
+     in case the user does not specify one.  */
+  struct rlimit limit;
+  if (__getrlimit (RLIMIT_STACK, &limit) != 0
+      || limit.rlim_cur == RLIM_INFINITY)
+    /* The system limit is not usable.  Use an architecture-specific
+       default.  */
+    limit.rlim_cur = ARCH_STACK_DEFAULT_SIZE;
+  else if (limit.rlim_cur < PTHREAD_STACK_MIN)
+    /* The system limit is unusably small.
+       Use the minimal size acceptable.  */
+    limit.rlim_cur = PTHREAD_STACK_MIN;
+
+  /* Make sure it meets the minimum size that allocate_stack
+     (allocatestack.c) will demand, which depends on the page size.  */
+  const uintptr_t pagesz = GLRO(dl_pagesize);
+  const size_t minstack = (pagesz + __nptl_tls_static_size_for_stack ()
+                           + MINIMAL_REST_STACK);
+  if (limit.rlim_cur < minstack)
+    limit.rlim_cur = minstack;
+
+  /* Round the resource limit up to page size.  */
+  limit.rlim_cur = ALIGN_UP (limit.rlim_cur, pagesz);
+  __default_pthread_attr.internal.stacksize = limit.rlim_cur;
+  __default_pthread_attr.internal.guardsize = GLRO (dl_pagesize);
+
 #if HAVE_TUNABLES
   __pthread_tunables_init ();
 #endif
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 14/23] nptl: Move pthread_getattr_default_np into libc
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (12 preceding siblings ...)
  2021-05-12 16:58 ` [PATCH 13/23] nptl: Eliminate the __static_tls_size, __static_tls_align_m1 variables Florian Weimer
@ 2021-05-12 16:58 ` Florian Weimer
  2021-05-14 14:00   ` Adhemerval Zanella
  2021-05-12 16:58 ` [PATCH 15/23] nptl: Remove unused nptl/pthread_getcpuclockid.c implementation Florian Weimer
                   ` (9 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:58 UTC (permalink / raw)
  To: libc-alpha

The symbol was moved using scripts/move-symbol-to-libc.py.

A new placeholder symbol __libpthread_version_placeholder@GLIBC_2.18
is needed to keep the GLIBC_2.18 symbol version in libpthread.
The __pthread_getattr_default_np@@GLIBC_PRIVATE export is used
from pthread_create.
---
 nptl/Makefile                                      |  2 +-
 nptl/Versions                                      |  8 +++++++-
 nptl/libpthread-compat.c                           |  6 ++++++
 nptl/pthreadP.h                                    |  2 +-
 nptl/pthread_getattr_default_np.c                  | 14 +++++++++++---
 sysdeps/unix/sysv/linux/aarch64/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist |  2 +-
 sysdeps/unix/sysv/linux/alpha/libc.abilist         |  2 ++
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist   |  2 +-
 sysdeps/unix/sysv/linux/arc/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist  |  2 +-
 sysdeps/unix/sysv/linux/arm/le/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist  |  2 +-
 sysdeps/unix/sysv/linux/csky/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/i386/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/ia64/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist |  2 ++
 .../sysv/linux/m68k/coldfire/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist   |  2 ++
 .../unix/sysv/linux/m68k/m680x0/libpthread.abilist |  2 +-
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist |  2 ++
 .../sysv/linux/microblaze/be/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist |  2 ++
 .../sysv/linux/microblaze/le/libpthread.abilist    |  1 -
 .../unix/sysv/linux/mips/mips32/fpu/libc.abilist   |  2 ++
 .../unix/sysv/linux/mips/mips32/libpthread.abilist |  2 +-
 .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist |  2 ++
 .../unix/sysv/linux/mips/mips64/libpthread.abilist |  2 +-
 .../unix/sysv/linux/mips/mips64/n32/libc.abilist   |  2 ++
 .../unix/sysv/linux/mips/mips64/n64/libc.abilist   |  2 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist         |  2 ++
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist   |  1 -
 .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist  |  2 ++
 .../linux/powerpc/powerpc32/libpthread.abilist     |  2 +-
 .../linux/powerpc/powerpc32/nofpu/libc.abilist     |  2 ++
 .../sysv/linux/powerpc/powerpc64/be/libc.abilist   |  2 ++
 .../linux/powerpc/powerpc64/be/libpthread.abilist  |  2 +-
 .../sysv/linux/powerpc/powerpc64/le/libc.abilist   |  2 ++
 .../linux/powerpc/powerpc64/le/libpthread.abilist  |  2 +-
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist    |  2 ++
 .../unix/sysv/linux/riscv/rv32/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist    |  2 ++
 .../unix/sysv/linux/riscv/rv64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist  |  2 ++
 .../sysv/linux/s390/s390-32/libpthread.abilist     |  2 +-
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist  |  2 ++
 .../sysv/linux/s390/s390-64/libpthread.abilist     |  2 +-
 sysdeps/unix/sysv/linux/sh/be/libc.abilist         |  2 ++
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist   |  2 +-
 sysdeps/unix/sysv/linux/sh/le/libc.abilist         |  2 ++
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist   |  2 +-
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist |  2 ++
 .../sysv/linux/sparc/sparc32/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist |  2 ++
 .../sysv/linux/sparc/sparc64/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist     |  2 ++
 .../unix/sysv/linux/x86_64/64/libpthread.abilist   |  2 +-
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist    |  2 ++
 .../unix/sysv/linux/x86_64/x32/libpthread.abilist  |  2 +-
 66 files changed, 112 insertions(+), 35 deletions(-)

diff --git a/nptl/Makefile b/nptl/Makefile
index b57b010779..a7c1932332 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -113,6 +113,7 @@ routines = \
   pthread_equal \
   pthread_exit \
   pthread_getaffinity \
+  pthread_getattr_default_np \
   pthread_getattr_np \
   pthread_getconcurrency \
   pthread_getschedparam \
@@ -205,7 +206,6 @@ libpthread-routines = \
   nptl-init \
   pt-interp \
   pthread_create \
-  pthread_getattr_default_np \
   pthread_getcpuclockid \
   pthread_getname \
   pthread_setaffinity \
diff --git a/nptl/Versions b/nptl/Versions
index 200055cffa..657a53d658 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -189,6 +189,7 @@ libc {
     pthread_mutexattr_setrobust;
   }
   GLIBC_2.18 {
+    pthread_getattr_default_np;
     pthread_setattr_default_np;
   }
   # C11 thread symbols.
@@ -282,6 +283,7 @@ libc {
     pthread_condattr_setclock;
     pthread_condattr_setpshared;
     pthread_detach;
+    pthread_getattr_default_np;
     pthread_getconcurrency;
     pthread_getspecific;
     pthread_join;
@@ -393,6 +395,7 @@ libc {
     __pthread_enable_asynccancel;
     __pthread_force_elision;
     __pthread_getattr_default_np;
+    __pthread_getattr_default_np;
     __pthread_keys;
     __pthread_mutex_unlock_usercnt;
     __pthread_setcancelstate;
@@ -474,7 +477,10 @@ libpthread {
   };
 
   GLIBC_2.18 {
-    pthread_getattr_default_np;
+    __libpthread_version_placeholder;
+  }
+
+  GLIBC_2.19 {
   }
 
   # C11 thread symbols.
diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
index bc9ee36df0..c828fd8f9e 100644
--- a/nptl/libpthread-compat.c
+++ b/nptl/libpthread-compat.c
@@ -65,6 +65,12 @@ compat_symbol (libpthread, __libpthread_version_placeholder_1,
 	       __libpthread_version_placeholder, GLIBC_2_4);
 #endif
 
+#if SHLIB_COMPAT (libpthread, GLIBC_2_18, GLIBC_2_19) \
+  && ABI_libpthread_GLIBC_2_18 != ABI_libpthread_GLIBC_2_0
+compat_symbol (libpthread, __libpthread_version_placeholder_1,
+	       __libpthread_version_placeholder, GLIBC_2_18);
+#endif
+
 #if (SHLIB_COMPAT (libpthread, GLIBC_2_30, GLIBC_2_31))
 compat_symbol (libpthread, __libpthread_version_placeholder_1,
 	       __libpthread_version_placeholder, GLIBC_2_30);
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 9ee61af8b3..3e9da9c7ea 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -406,7 +406,7 @@ extern int __pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
 int __pthread_attr_setaffinity_np (pthread_attr_t *, size_t, const cpu_set_t *);
 libc_hidden_proto (__pthread_attr_setaffinity_np)
 extern __typeof (pthread_getattr_default_np) __pthread_getattr_default_np;
-libpthread_hidden_proto (__pthread_getattr_default_np)
+libc_hidden_proto (__pthread_getattr_default_np)
 extern int __pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
 				  const pthread_rwlockattr_t *__restrict
 				  __attr);
diff --git a/nptl/pthread_getattr_default_np.c b/nptl/pthread_getattr_default_np.c
index c403d1231c..f38f687431 100644
--- a/nptl/pthread_getattr_default_np.c
+++ b/nptl/pthread_getattr_default_np.c
@@ -17,14 +17,22 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include <pthreadP.h>
+#include <shlib-compat.h>
 
 int
-__pthread_getattr_default_np (pthread_attr_t *out)
+___pthread_getattr_default_np (pthread_attr_t *out)
 {
   lll_lock (__default_pthread_attr_lock, LLL_PRIVATE);
   int ret = __pthread_attr_copy (out, &__default_pthread_attr.external);
   lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE);
   return ret;
 }
-libpthread_hidden_def (__pthread_getattr_default_np)
-weak_alias (__pthread_getattr_default_np, pthread_getattr_default_np)
+versioned_symbol (libc, ___pthread_getattr_default_np,
+                  pthread_getattr_default_np, GLIBC_2_34);
+versioned_symbol (libc, ___pthread_getattr_default_np,
+                  __pthread_getattr_default_np, GLIBC_PRIVATE);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_18, GLIBC_2_34)
+compat_symbol (libpthread, ___pthread_getattr_default_np,
+               pthread_getattr_default_np, GLIBC_2_18);
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index ee5a5523f4..9ab880c72a 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2199,6 +2199,7 @@ GLIBC_2.17 xprt_register F
 GLIBC_2.17 xprt_unregister F
 GLIBC_2.18 __cxa_thread_atexit_impl F
 GLIBC_2.18 _mcount F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.22 fmemopen F
 GLIBC_2.23 fts64_children F
@@ -2364,6 +2365,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index e476011333..ebd930eee5 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -6,7 +6,7 @@ GLIBC_2.17 pthread_setaffinity_np F
 GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_sigqueue F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 387007f7aa..b99aa07295 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1865,6 +1865,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_fgetpos F
@@ -2454,6 +2455,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 990366049d..4f5f151530 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -6,7 +6,7 @@ GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 2cfd596853..4a4ae72dad 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1433,6 +1433,7 @@ GLIBC_2.32 pthread_detach F
 GLIBC_2.32 pthread_equal F
 GLIBC_2.32 pthread_exit F
 GLIBC_2.32 pthread_getaffinity_np F
+GLIBC_2.32 pthread_getattr_default_np F
 GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_getconcurrency F
 GLIBC_2.32 pthread_getschedparam F
@@ -2123,6 +2124,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 2ee77456dc..9bb26a4ac4 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.32 __errno_location F
 GLIBC_2.32 pthread_create F
-GLIBC_2.32 pthread_getattr_default_np F
 GLIBC_2.32 pthread_getcpuclockid F
 GLIBC_2.32 pthread_getname_np F
 GLIBC_2.32 pthread_setaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index f7373394fd..c86ef8913d 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -74,6 +74,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.22 fmemopen F
 GLIBC_2.23 fts64_children F
@@ -233,6 +234,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index cef7ed6237..b550c922bf 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -1,7 +1,7 @@
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index cce828e28a..627b485571 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -74,6 +74,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.22 fmemopen F
 GLIBC_2.23 fts64_children F
@@ -230,6 +231,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index cef7ed6237..b550c922bf 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -1,7 +1,7 @@
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index c74d145e6b..eec048321d 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1492,6 +1492,7 @@ GLIBC_2.29 pthread_detach F
 GLIBC_2.29 pthread_equal F
 GLIBC_2.29 pthread_exit F
 GLIBC_2.29 pthread_getaffinity_np F
+GLIBC_2.29 pthread_getattr_default_np F
 GLIBC_2.29 pthread_getattr_np F
 GLIBC_2.29 pthread_getconcurrency F
 GLIBC_2.29 pthread_getschedparam F
@@ -2307,6 +2308,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 42df3c726d..4014014a3f 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.29 __errno_location F
 GLIBC_2.29 pthread_create F
-GLIBC_2.29 pthread_getattr_default_np F
 GLIBC_2.29 pthread_getcpuclockid F
 GLIBC_2.29 pthread_getname_np F
 GLIBC_2.29 pthread_setaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 0d5acb6c89..24a4c0b90b 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -77,6 +77,7 @@ GLIBC_2.17 secure_getenv F
 GLIBC_2.17 sys_errlist D 0x410
 GLIBC_2.17 sys_nerr D 0x4
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.19 fanotify_mark F
 GLIBC_2.2 _Exit F
@@ -2259,6 +2260,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 04c8975664..96d1dd51d2 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -1,7 +1,7 @@
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index e739d7788a..e4481f9520 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1867,6 +1867,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_fgetpos F
@@ -2442,6 +2443,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 990366049d..4f5f151530 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -6,7 +6,7 @@ GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 975d3d3070..0202e484ff 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -74,6 +74,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
@@ -2295,6 +2296,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 04c8975664..96d1dd51d2 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -1,7 +1,7 @@
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 18f69e5bd3..8ce579eb44 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -75,6 +75,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.22 fmemopen F
 GLIBC_2.23 fts64_children F
@@ -234,6 +235,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index cef7ed6237..b550c922bf 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -1,7 +1,7 @@
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index c04fc80932..01843db834 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1823,6 +1823,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_fgetpos F
@@ -2385,6 +2386,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 990366049d..4f5f151530 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -6,7 +6,7 @@ GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 91676762d1..8a3d634f46 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1494,6 +1494,7 @@ GLIBC_2.18 pthread_detach F
 GLIBC_2.18 pthread_equal F
 GLIBC_2.18 pthread_exit F
 GLIBC_2.18 pthread_getaffinity_np F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_getattr_np F
 GLIBC_2.18 pthread_getconcurrency F
 GLIBC_2.18 pthread_getschedparam F
@@ -2358,6 +2359,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 3186b124fc..7029d1e887 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_getcpuclockid F
 GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_setaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index b61b7efc69..0fd67bfe75 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1494,6 +1494,7 @@ GLIBC_2.18 pthread_detach F
 GLIBC_2.18 pthread_equal F
 GLIBC_2.18 pthread_exit F
 GLIBC_2.18 pthread_getaffinity_np F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_getattr_np F
 GLIBC_2.18 pthread_getconcurrency F
 GLIBC_2.18 pthread_getschedparam F
@@ -2355,6 +2356,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 3186b124fc..7029d1e887 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_getcpuclockid F
 GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_setaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index e053d8ad44..b5ddc9223d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1424,6 +1424,7 @@ GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
 GLIBC_2.18 __mips_fpu_getcw F
 GLIBC_2.18 __mips_fpu_setcw F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.19 getrlimit64 F
 GLIBC_2.19 setrlimit64 F
@@ -2350,6 +2351,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 5d662334df..35ed1d1b60 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index d17deca37d..0401fa1910 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1422,6 +1422,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.19 getrlimit64 F
 GLIBC_2.19 setrlimit64 F
@@ -2348,6 +2349,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 5d662334df..35ed1d1b60 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index e1fda2a811..5139b67189 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1422,6 +1422,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.19 getrlimit64 F
 GLIBC_2.19 setrlimit64 F
@@ -2356,6 +2357,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 4d0673d7a9..a14aa6c93a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1420,6 +1420,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
@@ -2350,6 +2351,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index f417ac1d6d..b00cc87c2e 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1537,6 +1537,7 @@ GLIBC_2.21 pthread_detach F
 GLIBC_2.21 pthread_equal F
 GLIBC_2.21 pthread_exit F
 GLIBC_2.21 pthread_getaffinity_np F
+GLIBC_2.21 pthread_getattr_default_np F
 GLIBC_2.21 pthread_getattr_np F
 GLIBC_2.21 pthread_getconcurrency F
 GLIBC_2.21 pthread_getschedparam F
@@ -2397,6 +2398,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 41c9a5f97d..543c3221eb 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.21 __errno_location F
 GLIBC_2.21 pthread_create F
-GLIBC_2.21 pthread_getattr_default_np F
 GLIBC_2.21 pthread_getcpuclockid F
 GLIBC_2.21 pthread_getname_np F
 GLIBC_2.21 pthread_setaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index c51ae17a5c..8529703a5a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1829,6 +1829,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_fgetpos F
@@ -2412,6 +2413,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 698a17837f..e3a4a8cb4f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -6,7 +6,7 @@ GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index de52f0b14f..2657f37e62 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1829,6 +1829,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.19 __atomic_feclearexcept F
 GLIBC_2.19 __atomic_feholdexcept F
@@ -2445,6 +2446,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 98dc2c37db..54ce0f911c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -75,6 +75,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.22 fmemopen F
 GLIBC_2.23 fts64_children F
@@ -2260,6 +2261,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index c224f8de1a..dfd44d67d0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -1,7 +1,7 @@
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3 __errno_location F
 GLIBC_2.3 pthread_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 8be99e5849..11553b21a9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2286,6 +2286,7 @@ GLIBC_2.17 xencrypt F
 GLIBC_2.17 xprt_register F
 GLIBC_2.17 xprt_unregister F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.22 fmemopen F
 GLIBC_2.23 fts64_children F
@@ -2560,6 +2561,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index e476011333..ebd930eee5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -6,7 +6,7 @@ GLIBC_2.17 pthread_setaffinity_np F
 GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_sigqueue F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index aee2f59bb0..7650629bd0 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1435,6 +1435,7 @@ GLIBC_2.33 pthread_detach F
 GLIBC_2.33 pthread_equal F
 GLIBC_2.33 pthread_exit F
 GLIBC_2.33 pthread_getaffinity_np F
+GLIBC_2.33 pthread_getattr_default_np F
 GLIBC_2.33 pthread_getattr_np F
 GLIBC_2.33 pthread_getconcurrency F
 GLIBC_2.33 pthread_getschedparam F
@@ -2125,6 +2126,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index e5b76b829d..e5ea464b5c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.33 __errno_location F
 GLIBC_2.33 pthread_create F
-GLIBC_2.33 pthread_getattr_default_np F
 GLIBC_2.33 pthread_getcpuclockid F
 GLIBC_2.33 pthread_getname_np F
 GLIBC_2.33 pthread_setaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index ef4f86b1ce..5d3321728c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1482,6 +1482,7 @@ GLIBC_2.27 pthread_detach F
 GLIBC_2.27 pthread_equal F
 GLIBC_2.27 pthread_exit F
 GLIBC_2.27 pthread_getaffinity_np F
+GLIBC_2.27 pthread_getattr_default_np F
 GLIBC_2.27 pthread_getattr_np F
 GLIBC_2.27 pthread_getconcurrency F
 GLIBC_2.27 pthread_getschedparam F
@@ -2325,6 +2326,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index d697ba7e19..c8723da669 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.27 __errno_location F
 GLIBC_2.27 pthread_create F
-GLIBC_2.27 pthread_getattr_default_np F
 GLIBC_2.27 pthread_getcpuclockid F
 GLIBC_2.27 pthread_getname_np F
 GLIBC_2.27 pthread_setaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 420c5eb1b0..20cf480080 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1819,6 +1819,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.19 __longjmp_chk F
 GLIBC_2.19 __sigsetjmp F
@@ -2410,6 +2411,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index cba826514c..dad6202523 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -6,7 +6,7 @@ GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.19 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index e3fd068bf4..e6dd727487 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -78,6 +78,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.19 __longjmp_chk F
 GLIBC_2.19 __sigsetjmp F
@@ -2297,6 +2298,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 787e56be1b..1c1c65ffcd 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -1,7 +1,7 @@
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.19 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 7d43481afa..feefe0ba54 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -78,6 +78,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0x98
@@ -2266,6 +2267,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 04c8975664..96d1dd51d2 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -1,7 +1,7 @@
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index adc53a4d54..e34f45cd08 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -78,6 +78,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0x98
@@ -2263,6 +2264,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 04c8975664..96d1dd51d2 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -1,7 +1,7 @@
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index abcdb0deec..a47858e4d1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1825,6 +1825,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.2 _IO_adjust_wcolumn F
 GLIBC_2.2 _IO_fgetpos F
@@ -2403,6 +2404,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 990366049d..4f5f151530 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -6,7 +6,7 @@ GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 2bfe9c786b..50777a3806 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -83,6 +83,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.2 _Exit F
 GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
@@ -2316,6 +2317,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 04c8975664..96d1dd51d2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -1,7 +1,7 @@
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index b6f9385076..922730fc2c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -76,6 +76,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.2.5 _Exit F
 GLIBC_2.2.5 _IO_2_1_stderr_ D 0xe0
@@ -2275,6 +2276,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 931013d746..9b6138ac89 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -1,7 +1,7 @@
 GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2.5 __errno_location F
 GLIBC_2.2.5 pthread_create F
 GLIBC_2.2.5 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 61ae4b65f4..b232b5545e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2209,6 +2209,7 @@ GLIBC_2.17 clock_nanosleep F
 GLIBC_2.17 clock_settime F
 GLIBC_2.17 secure_getenv F
 GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.22 fmemopen F
 GLIBC_2.23 fts64_children F
@@ -2379,6 +2380,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
 GLIBC_2.34 pthread_condattr_setclock F
 GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
+GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 94d721b81f..0554188755 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -6,7 +6,7 @@ GLIBC_2.16 pthread_setaffinity_np F
 GLIBC_2.16 pthread_setname_np F
 GLIBC_2.16 pthread_setschedprio F
 GLIBC_2.16 pthread_sigqueue F
-GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 15/23] nptl: Remove unused nptl/pthread_getcpuclockid.c implementation
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (13 preceding siblings ...)
  2021-05-12 16:58 ` [PATCH 14/23] nptl: Move pthread_getattr_default_np into libc Florian Weimer
@ 2021-05-12 16:58 ` Florian Weimer
  2021-05-13 20:22   ` Adhemerval Zanella
  2021-05-12 16:58 ` [PATCH 16/23] Linux: Move implementation of pthread_getcpuclockid to nptl directory Florian Weimer
                   ` (8 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:58 UTC (permalink / raw)
  To: libc-alpha

---
 nptl/pthread_getcpuclockid.c | 54 ------------------------------------
 1 file changed, 54 deletions(-)
 delete mode 100644 nptl/pthread_getcpuclockid.c

diff --git a/nptl/pthread_getcpuclockid.c b/nptl/pthread_getcpuclockid.c
deleted file mode 100644
index ebc48d59ea..0000000000
--- a/nptl/pthread_getcpuclockid.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <https://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthreadP.h>
-#include <sys/time.h>
-#include <tls.h>
-
-
-int
-pthread_getcpuclockid (pthread_t threadid, clockid_t *clockid)
-{
-  struct pthread *pd = (struct pthread *) threadid;
-
-  /* Make sure the descriptor is valid.  */
-  if (INVALID_TD_P (pd))
-    /* Not a valid thread handle.  */
-    return ESRCH;
-
-#ifdef CLOCK_THREAD_CPUTIME_ID
-  /* We need to store the thread ID in the CLOCKID variable together
-     with a number identifying the clock.  We reserve the low 3 bits
-     for the clock ID and the rest for the thread ID.  This is
-     problematic if the thread ID is too large.  But 29 bits should be
-     fine.
-
-     If some day more clock IDs are needed the ID part can be
-     enlarged.  The IDs are entirely internal.  */
-  if (pd->tid >= 1 << (8 * sizeof (*clockid) - CLOCK_IDFIELD_SIZE))
-    return ERANGE;
-
-  /* Store the number.  */
-  *clockid = CLOCK_THREAD_CPUTIME_ID | (pd->tid << CLOCK_IDFIELD_SIZE);
-
-  return 0;
-#else
-  /* We don't have a timer for that.  */
-  return ENOENT;
-#endif
-}
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 16/23] Linux: Move implementation of pthread_getcpuclockid to nptl directory
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (14 preceding siblings ...)
  2021-05-12 16:58 ` [PATCH 15/23] nptl: Remove unused nptl/pthread_getcpuclockid.c implementation Florian Weimer
@ 2021-05-12 16:58 ` Florian Weimer
  2021-05-13 20:23   ` Adhemerval Zanella
  2021-05-12 16:58 ` [PATCH 17/23] nptl: Move pthread_getcpuclockid into libc Florian Weimer
                   ` (7 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:58 UTC (permalink / raw)
  To: libc-alpha

---
 {sysdeps/unix/sysv/linux => nptl}/pthread_getcpuclockid.c | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename {sysdeps/unix/sysv/linux => nptl}/pthread_getcpuclockid.c (100%)

diff --git a/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c b/nptl/pthread_getcpuclockid.c
similarity index 100%
rename from sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
rename to nptl/pthread_getcpuclockid.c
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 17/23] nptl: Move pthread_getcpuclockid into libc
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (15 preceding siblings ...)
  2021-05-12 16:58 ` [PATCH 16/23] Linux: Move implementation of pthread_getcpuclockid to nptl directory Florian Weimer
@ 2021-05-12 16:58 ` Florian Weimer
  2021-05-14 14:05   ` Adhemerval Zanella
  2021-05-12 16:58 ` [PATCH 18/23] nptl: Move pthread_getname_np " Florian Weimer
                   ` (6 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:58 UTC (permalink / raw)
  To: libc-alpha

The symbol was moved using scripts/move-symbol-to-libc.py.

__libpthread_version_placeholder@@GLIBC_2.2 is needed by this change;
the Versions entry for GLIBC_2.2 in libpthread had leftover symbols
due to an error in a previous conflict resolution.  The condition
for the placeholder symbol is complicated because some architectures
have earlier symbols at the GLIBC_2.2 symbol versions, so the
placeholder is not required there (yet).
---
 nptl/Makefile                                         |  2 +-
 nptl/Versions                                         |  7 +++----
 nptl/libpthread-compat.c                              | 10 ++++++++++
 nptl/pthread_getcpuclockid.c                          | 11 +++++++++--
 sysdeps/unix/sysv/linux/aarch64/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist      |  2 +-
 sysdeps/unix/sysv/linux/arc/libc.abilist              |  2 ++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist        |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist       |  2 +-
 sysdeps/unix/sysv/linux/ia64/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist    |  2 ++
 .../unix/sysv/linux/m68k/coldfire/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist      |  2 ++
 .../unix/sysv/linux/m68k/m680x0/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist    |  2 ++
 .../unix/sysv/linux/microblaze/be/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist    |  2 ++
 .../unix/sysv/linux/microblaze/le/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist  |  2 ++
 .../unix/sysv/linux/mips/mips32/libpthread.abilist    |  1 -
 .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist    |  2 ++
 .../unix/sysv/linux/mips/mips64/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist  |  2 ++
 sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist  |  2 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist      |  1 -
 .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist     |  2 ++
 .../sysv/linux/powerpc/powerpc32/libpthread.abilist   |  2 +-
 .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist   |  2 ++
 .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist |  2 ++
 .../linux/powerpc/powerpc64/be/libpthread.abilist     |  1 -
 .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist |  2 ++
 .../linux/powerpc/powerpc64/le/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist     |  2 ++
 .../unix/sysv/linux/s390/s390-32/libpthread.abilist   |  2 +-
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist     |  2 ++
 .../unix/sysv/linux/s390/s390-64/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist      |  1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist      |  1 -
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist    |  2 ++
 .../unix/sysv/linux/sparc/sparc32/libpthread.abilist  |  2 +-
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist    |  2 ++
 .../unix/sysv/linux/sparc/sparc64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist |  1 -
 65 files changed, 93 insertions(+), 36 deletions(-)

diff --git a/nptl/Makefile b/nptl/Makefile
index a7c1932332..9c810b2b6c 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -116,6 +116,7 @@ routines = \
   pthread_getattr_default_np \
   pthread_getattr_np \
   pthread_getconcurrency \
+  pthread_getcpuclockid \
   pthread_getschedparam \
   pthread_getspecific \
   pthread_join \
@@ -206,7 +207,6 @@ libpthread-routines = \
   nptl-init \
   pt-interp \
   pthread_create \
-  pthread_getcpuclockid \
   pthread_getname \
   pthread_setaffinity \
   pthread_setname \
diff --git a/nptl/Versions b/nptl/Versions
index 657a53d658..18ead25af6 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -127,6 +127,7 @@ libc {
     pthread_barrierattr_setpshared;
     pthread_condattr_getpshared;
     pthread_condattr_setpshared;
+    pthread_getcpuclockid;
     pthread_mutex_timedlock;
     pthread_mutexattr_getpshared;
     pthread_mutexattr_setpshared;
@@ -285,6 +286,7 @@ libc {
     pthread_detach;
     pthread_getattr_default_np;
     pthread_getconcurrency;
+    pthread_getcpuclockid;
     pthread_getspecific;
     pthread_join;
     pthread_key_create;
@@ -435,10 +437,7 @@ libpthread {
   }
 
   GLIBC_2.2 {
-    pthread_getcpuclockid;
-    pthread_yield;
-    pthread_rwlock_timedrdlock;
-    pthread_rwlock_timedwrlock;
+    __libpthread_version_placeholder;
   }
 
   GLIBC_2.2.3 {
diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
index c828fd8f9e..18069870d1 100644
--- a/nptl/libpthread-compat.c
+++ b/nptl/libpthread-compat.c
@@ -45,6 +45,16 @@ compat_symbol (libpthread, __libpthread_version_placeholder_1,
 	       __libpthread_version_placeholder, GLIBC_2_1_2);
 #endif
 
+/* Do not create the placeholder symbol version if there are other
+   symbols left that keep the version around (because GLIBC_2.0 got
+   promoted to GLIBC_2.2).  */
+#if SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_2_3) \
+  && ABI_libpthread_GLIBC_2_2 != ABI_libpthread_GLIBC_2_0 \
+  && ABI_libpthread_GLIBC_2_2 != ABI_libpthread_GLIBC_2_1_3
+compat_symbol (libpthread, __libpthread_version_placeholder_1,
+	       __libpthread_version_placeholder, GLIBC_2_2);
+#endif
+
 #if (SHLIB_COMPAT (libpthread, GLIBC_2_2_3, GLIBC_2_2_4))
 compat_symbol (libpthread, __libpthread_version_placeholder_1,
 	       __libpthread_version_placeholder, GLIBC_2_2_3);
diff --git a/nptl/pthread_getcpuclockid.c b/nptl/pthread_getcpuclockid.c
index ae7122cb5f..0a6656ea4c 100644
--- a/nptl/pthread_getcpuclockid.c
+++ b/nptl/pthread_getcpuclockid.c
@@ -21,10 +21,10 @@
 #include <sys/time.h>
 #include <tls.h>
 #include <kernel-posix-cpu-timers.h>
-
+#include <shlib-compat.h>
 
 int
-pthread_getcpuclockid (pthread_t threadid, clockid_t *clockid)
+__pthread_getcpuclockid (pthread_t threadid, clockid_t *clockid)
 {
   struct pthread *pd = (struct pthread *) threadid;
 
@@ -40,3 +40,10 @@ pthread_getcpuclockid (pthread_t threadid, clockid_t *clockid)
   *clockid = tidclock;
   return 0;
 }
+versioned_symbol (libc, __pthread_getcpuclockid, pthread_getcpuclockid,
+                  GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_getcpuclockid, pthread_getcpuclockid,
+               GLIBC_2_2);
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 9ab880c72a..dde11d1d0b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1494,6 +1494,7 @@ GLIBC_2.17 pthread_exit F
 GLIBC_2.17 pthread_getaffinity_np F
 GLIBC_2.17 pthread_getattr_np F
 GLIBC_2.17 pthread_getconcurrency F
+GLIBC_2.17 pthread_getcpuclockid F
 GLIBC_2.17 pthread_getschedparam F
 GLIBC_2.17 pthread_getspecific F
 GLIBC_2.17 pthread_join F
@@ -2367,6 +2368,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index ebd930eee5..9ac9be4ec4 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_getcpuclockid F
 GLIBC_2.17 pthread_getname_np F
 GLIBC_2.17 pthread_setaffinity_np F
 GLIBC_2.17 pthread_setname_np F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index b99aa07295..0c3f66e309 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2031,6 +2031,7 @@ GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_setpshared F
@@ -2457,6 +2458,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 4f5f151530..ae50cb30c6 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -7,7 +7,7 @@ GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
-GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 __libpthread_version_placeholder F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 4a4ae72dad..129040de57 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1436,6 +1436,7 @@ GLIBC_2.32 pthread_getaffinity_np F
 GLIBC_2.32 pthread_getattr_default_np F
 GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_getconcurrency F
+GLIBC_2.32 pthread_getcpuclockid F
 GLIBC_2.32 pthread_getschedparam F
 GLIBC_2.32 pthread_getspecific F
 GLIBC_2.32 pthread_join F
@@ -2126,6 +2127,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 9bb26a4ac4..88273f1424 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.32 __errno_location F
 GLIBC_2.32 pthread_create F
-GLIBC_2.32 pthread_getcpuclockid F
 GLIBC_2.32 pthread_getname_np F
 GLIBC_2.32 pthread_setaffinity_np F
 GLIBC_2.32 pthread_setname_np F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index c86ef8913d..822b3f4005 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -236,6 +236,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
@@ -1736,6 +1737,7 @@ GLIBC_2.4 pthread_exit F
 GLIBC_2.4 pthread_getaffinity_np F
 GLIBC_2.4 pthread_getattr_np F
 GLIBC_2.4 pthread_getconcurrency F
+GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_getschedparam F
 GLIBC_2.4 pthread_getspecific F
 GLIBC_2.4 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index b550c922bf..7d023cb181 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -8,6 +8,5 @@ GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __errno_location F
 GLIBC_2.4 __libpthread_version_placeholder F
 GLIBC_2.4 pthread_create F
-GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 627b485571..e38c13db21 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -233,6 +233,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
@@ -1733,6 +1734,7 @@ GLIBC_2.4 pthread_exit F
 GLIBC_2.4 pthread_getaffinity_np F
 GLIBC_2.4 pthread_getattr_np F
 GLIBC_2.4 pthread_getconcurrency F
+GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_getschedparam F
 GLIBC_2.4 pthread_getspecific F
 GLIBC_2.4 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index b550c922bf..7d023cb181 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -8,6 +8,5 @@ GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __errno_location F
 GLIBC_2.4 __libpthread_version_placeholder F
 GLIBC_2.4 pthread_create F
-GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index eec048321d..899002975d 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1495,6 +1495,7 @@ GLIBC_2.29 pthread_getaffinity_np F
 GLIBC_2.29 pthread_getattr_default_np F
 GLIBC_2.29 pthread_getattr_np F
 GLIBC_2.29 pthread_getconcurrency F
+GLIBC_2.29 pthread_getcpuclockid F
 GLIBC_2.29 pthread_getschedparam F
 GLIBC_2.29 pthread_getspecific F
 GLIBC_2.29 pthread_join F
@@ -2310,6 +2311,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 4014014a3f..95574381d5 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.29 __errno_location F
 GLIBC_2.29 pthread_create F
-GLIBC_2.29 pthread_getcpuclockid F
 GLIBC_2.29 pthread_getname_np F
 GLIBC_2.29 pthread_setaffinity_np F
 GLIBC_2.29 pthread_setname_np F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 24a4c0b90b..dda8816136 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1313,6 +1313,7 @@ GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_getschedparam F
 GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_join F
@@ -2262,6 +2263,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 96d1dd51d2..1c20789e32 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -4,7 +4,6 @@ GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index e4481f9520..1ecc3a30bd 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2040,6 +2040,7 @@ GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_setpshared F
@@ -2445,6 +2446,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 4f5f151530..ae50cb30c6 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -7,7 +7,7 @@ GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
-GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 __libpthread_version_placeholder F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 0202e484ff..e3aefdeed6 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1334,6 +1334,7 @@ GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_getschedparam F
 GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_join F
@@ -2298,6 +2299,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 96d1dd51d2..1c20789e32 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -4,7 +4,6 @@ GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 8ce579eb44..e3d4b739aa 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -237,6 +237,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
@@ -1716,6 +1717,7 @@ GLIBC_2.4 pthread_exit F
 GLIBC_2.4 pthread_getaffinity_np F
 GLIBC_2.4 pthread_getattr_np F
 GLIBC_2.4 pthread_getconcurrency F
+GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_getschedparam F
 GLIBC_2.4 pthread_getspecific F
 GLIBC_2.4 pthread_join F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index b550c922bf..7d023cb181 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -8,6 +8,5 @@ GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __errno_location F
 GLIBC_2.4 __libpthread_version_placeholder F
 GLIBC_2.4 pthread_create F
-GLIBC_2.4 pthread_getcpuclockid F
 GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 01843db834..37eaedebd7 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1996,6 +1996,7 @@ GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_setpshared F
@@ -2388,6 +2389,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 4f5f151530..ae50cb30c6 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -7,7 +7,7 @@ GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
-GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 __libpthread_version_placeholder F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 8a3d634f46..07729d04e1 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1497,6 +1497,7 @@ GLIBC_2.18 pthread_getaffinity_np F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_getattr_np F
 GLIBC_2.18 pthread_getconcurrency F
+GLIBC_2.18 pthread_getcpuclockid F
 GLIBC_2.18 pthread_getschedparam F
 GLIBC_2.18 pthread_getspecific F
 GLIBC_2.18 pthread_join F
@@ -2361,6 +2362,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 7029d1e887..67a5cb9ab5 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_getcpuclockid F
 GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_setaffinity_np F
 GLIBC_2.18 pthread_setname_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 0fd67bfe75..f690095f65 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1497,6 +1497,7 @@ GLIBC_2.18 pthread_getaffinity_np F
 GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_getattr_np F
 GLIBC_2.18 pthread_getconcurrency F
+GLIBC_2.18 pthread_getcpuclockid F
 GLIBC_2.18 pthread_getschedparam F
 GLIBC_2.18 pthread_getspecific F
 GLIBC_2.18 pthread_join F
@@ -2358,6 +2359,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 7029d1e887..67a5cb9ab5 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_getcpuclockid F
 GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_setaffinity_np F
 GLIBC_2.18 pthread_setname_np F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index b5ddc9223d..a9a33c8d0c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1867,6 +1867,7 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_setpshared F
 GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_gettype F
@@ -2353,6 +2354,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 35ed1d1b60..7ec95cd7f5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -5,7 +5,6 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 0401fa1910..e592dbac83 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1865,6 +1865,7 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_setpshared F
 GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_gettype F
@@ -2351,6 +2352,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 35ed1d1b60..7ec95cd7f5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -5,7 +5,6 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 5139b67189..3fea1c5fda 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1865,6 +1865,7 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_setpshared F
 GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_gettype F
@@ -2359,6 +2360,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index a14aa6c93a..777ebc3591 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1861,6 +1861,7 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_setpshared F
 GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_gettype F
@@ -2353,6 +2354,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index b00cc87c2e..f3c575c293 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1540,6 +1540,7 @@ GLIBC_2.21 pthread_getaffinity_np F
 GLIBC_2.21 pthread_getattr_default_np F
 GLIBC_2.21 pthread_getattr_np F
 GLIBC_2.21 pthread_getconcurrency F
+GLIBC_2.21 pthread_getcpuclockid F
 GLIBC_2.21 pthread_getschedparam F
 GLIBC_2.21 pthread_getspecific F
 GLIBC_2.21 pthread_join F
@@ -2400,6 +2401,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 543c3221eb..9924c04cea 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.21 __errno_location F
 GLIBC_2.21 pthread_create F
-GLIBC_2.21 pthread_getcpuclockid F
 GLIBC_2.21 pthread_getname_np F
 GLIBC_2.21 pthread_setaffinity_np F
 GLIBC_2.21 pthread_setname_np F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 8529703a5a..1133324bf7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2001,6 +2001,7 @@ GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_setpshared F
@@ -2415,6 +2416,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index e3a4a8cb4f..0320e73dbb 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -7,7 +7,7 @@ GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
-GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 __libpthread_version_placeholder F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 2657f37e62..d57c7e438f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2005,6 +2005,7 @@ GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_setpshared F
@@ -2448,6 +2449,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 54ce0f911c..c41682739e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1439,6 +1439,7 @@ GLIBC_2.3 pthread_equal F
 GLIBC_2.3 pthread_exit F
 GLIBC_2.3 pthread_getattr_np F
 GLIBC_2.3 pthread_getconcurrency F
+GLIBC_2.3 pthread_getcpuclockid F
 GLIBC_2.3 pthread_getschedparam F
 GLIBC_2.3 pthread_getspecific F
 GLIBC_2.3 pthread_join F
@@ -2263,6 +2264,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index dfd44d67d0..dca9c1f876 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -5,7 +5,6 @@ GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3 __errno_location F
 GLIBC_2.3 pthread_create F
-GLIBC_2.3 pthread_getcpuclockid F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 11553b21a9..6b60cdc8eb 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1582,6 +1582,7 @@ GLIBC_2.17 pthread_exit F
 GLIBC_2.17 pthread_getaffinity_np F
 GLIBC_2.17 pthread_getattr_np F
 GLIBC_2.17 pthread_getconcurrency F
+GLIBC_2.17 pthread_getcpuclockid F
 GLIBC_2.17 pthread_getschedparam F
 GLIBC_2.17 pthread_getspecific F
 GLIBC_2.17 pthread_join F
@@ -2563,6 +2564,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index ebd930eee5..9ac9be4ec4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_getcpuclockid F
 GLIBC_2.17 pthread_getname_np F
 GLIBC_2.17 pthread_setaffinity_np F
 GLIBC_2.17 pthread_setname_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 7650629bd0..bf5e54123f 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1438,6 +1438,7 @@ GLIBC_2.33 pthread_getaffinity_np F
 GLIBC_2.33 pthread_getattr_default_np F
 GLIBC_2.33 pthread_getattr_np F
 GLIBC_2.33 pthread_getconcurrency F
+GLIBC_2.33 pthread_getcpuclockid F
 GLIBC_2.33 pthread_getschedparam F
 GLIBC_2.33 pthread_getspecific F
 GLIBC_2.33 pthread_join F
@@ -2128,6 +2129,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index e5ea464b5c..abd4e6a9c4 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.33 __errno_location F
 GLIBC_2.33 pthread_create F
-GLIBC_2.33 pthread_getcpuclockid F
 GLIBC_2.33 pthread_getname_np F
 GLIBC_2.33 pthread_setaffinity_np F
 GLIBC_2.33 pthread_setname_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 5d3321728c..6387850fd5 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1485,6 +1485,7 @@ GLIBC_2.27 pthread_getaffinity_np F
 GLIBC_2.27 pthread_getattr_default_np F
 GLIBC_2.27 pthread_getattr_np F
 GLIBC_2.27 pthread_getconcurrency F
+GLIBC_2.27 pthread_getcpuclockid F
 GLIBC_2.27 pthread_getschedparam F
 GLIBC_2.27 pthread_getspecific F
 GLIBC_2.27 pthread_join F
@@ -2328,6 +2329,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index c8723da669..e43f1e723e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.27 __errno_location F
 GLIBC_2.27 pthread_create F
-GLIBC_2.27 pthread_getcpuclockid F
 GLIBC_2.27 pthread_getname_np F
 GLIBC_2.27 pthread_setaffinity_np F
 GLIBC_2.27 pthread_setname_np F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 20cf480080..dc6d0776f8 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1999,6 +1999,7 @@ GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_setpshared F
@@ -2413,6 +2414,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index dad6202523..c349f281d5 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -8,7 +8,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.19 __libpthread_version_placeholder F
-GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 __libpthread_version_placeholder F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index e6dd727487..f3da8ca119 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1331,6 +1331,7 @@ GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_getschedparam F
 GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_join F
@@ -2300,6 +2301,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 1c1c65ffcd..7c42617688 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -5,7 +5,6 @@ GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.19 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index feefe0ba54..83ce2ef1c5 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1317,6 +1317,7 @@ GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_getschedparam F
 GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_join F
@@ -2269,6 +2270,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 96d1dd51d2..1c20789e32 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -4,7 +4,6 @@ GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index e34f45cd08..ed832e9e5d 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1317,6 +1317,7 @@ GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_getschedparam F
 GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_join F
@@ -2266,6 +2267,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 96d1dd51d2..1c20789e32 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -4,7 +4,6 @@ GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index a47858e4d1..d0870d3d75 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1995,6 +1995,7 @@ GLIBC_2.2 pthread_barrierattr_init F
 GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_condattr_getpshared F
 GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_setpshared F
@@ -2406,6 +2407,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 4f5f151530..ae50cb30c6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -7,7 +7,7 @@ GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
-GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 __libpthread_version_placeholder F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 50777a3806..58a3cdb004 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1360,6 +1360,7 @@ GLIBC_2.2 pthread_detach F
 GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_getschedparam F
 GLIBC_2.2 pthread_getspecific F
 GLIBC_2.2 pthread_join F
@@ -2319,6 +2320,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 96d1dd51d2..1c20789e32 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -4,7 +4,6 @@ GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
-GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 922730fc2c..a71bd400c6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1328,6 +1328,7 @@ GLIBC_2.2.5 pthread_equal F
 GLIBC_2.2.5 pthread_exit F
 GLIBC_2.2.5 pthread_getattr_np F
 GLIBC_2.2.5 pthread_getconcurrency F
+GLIBC_2.2.5 pthread_getcpuclockid F
 GLIBC_2.2.5 pthread_getschedparam F
 GLIBC_2.2.5 pthread_getspecific F
 GLIBC_2.2.5 pthread_join F
@@ -2278,6 +2279,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 9b6138ac89..040c0b7b8e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -4,7 +4,6 @@ GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2.5 __errno_location F
 GLIBC_2.2.5 pthread_create F
-GLIBC_2.2.5 pthread_getcpuclockid F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index b232b5545e..cb321c43b3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1501,6 +1501,7 @@ GLIBC_2.16 pthread_exit F
 GLIBC_2.16 pthread_getaffinity_np F
 GLIBC_2.16 pthread_getattr_np F
 GLIBC_2.16 pthread_getconcurrency F
+GLIBC_2.16 pthread_getcpuclockid F
 GLIBC_2.16 pthread_getschedparam F
 GLIBC_2.16 pthread_getspecific F
 GLIBC_2.16 pthread_join F
@@ -2382,6 +2383,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
 GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
+GLIBC_2.34 pthread_getcpuclockid F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 0554188755..357774d540 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.16 __errno_location F
 GLIBC_2.16 pthread_create F
-GLIBC_2.16 pthread_getcpuclockid F
 GLIBC_2.16 pthread_getname_np F
 GLIBC_2.16 pthread_setaffinity_np F
 GLIBC_2.16 pthread_setname_np F
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 18/23] nptl: Move pthread_getname_np into libc
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (16 preceding siblings ...)
  2021-05-12 16:58 ` [PATCH 17/23] nptl: Move pthread_getcpuclockid into libc Florian Weimer
@ 2021-05-12 16:58 ` Florian Weimer
  2021-05-14 14:44   ` Adhemerval Zanella
  2021-05-12 16:59 ` [PATCH 19/23] nptl: Move pthread_setaffinity_np " Florian Weimer
                   ` (5 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:58 UTC (permalink / raw)
  To: libc-alpha

The symbol was moved using scripts/move-symbol-to-libc.py.
---
 nptl/Makefile                                      |  2 +-
 nptl/Versions                                      |  3 ++-
 nptl/pthread_getname.c                             | 14 ++++++++++----
 sysdeps/unix/sysv/linux/aarch64/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist         |  2 ++
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/arc/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/i386/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist |  2 ++
 .../sysv/linux/m68k/coldfire/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist   |  2 ++
 .../unix/sysv/linux/m68k/m680x0/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist |  2 ++
 .../sysv/linux/microblaze/be/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist |  2 ++
 .../sysv/linux/microblaze/le/libpthread.abilist    |  1 -
 .../unix/sysv/linux/mips/mips32/fpu/libc.abilist   |  2 ++
 .../unix/sysv/linux/mips/mips32/libpthread.abilist |  1 -
 .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist |  2 ++
 .../unix/sysv/linux/mips/mips64/libpthread.abilist |  1 -
 .../unix/sysv/linux/mips/mips64/n32/libc.abilist   |  2 ++
 .../unix/sysv/linux/mips/mips64/n64/libc.abilist   |  2 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist         |  2 ++
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist   |  1 -
 .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist  |  2 ++
 .../linux/powerpc/powerpc32/libpthread.abilist     |  1 -
 .../linux/powerpc/powerpc32/nofpu/libc.abilist     |  2 ++
 .../sysv/linux/powerpc/powerpc64/be/libc.abilist   |  2 ++
 .../linux/powerpc/powerpc64/be/libpthread.abilist  |  1 -
 .../sysv/linux/powerpc/powerpc64/le/libc.abilist   |  2 ++
 .../linux/powerpc/powerpc64/le/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist    |  2 ++
 .../unix/sysv/linux/riscv/rv32/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist    |  2 ++
 .../unix/sysv/linux/riscv/rv64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist  |  2 ++
 .../sysv/linux/s390/s390-32/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist  |  2 ++
 .../sysv/linux/s390/s390-64/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist         |  2 ++
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist         |  2 ++
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist |  2 ++
 .../sysv/linux/sparc/sparc32/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist |  2 ++
 .../sysv/linux/sparc/sparc64/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist     |  2 ++
 .../unix/sysv/linux/x86_64/64/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist    |  2 ++
 .../unix/sysv/linux/x86_64/x32/libpthread.abilist  |  1 -
 64 files changed, 77 insertions(+), 35 deletions(-)

diff --git a/nptl/Makefile b/nptl/Makefile
index 9c810b2b6c..516410cb84 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -117,6 +117,7 @@ routines = \
   pthread_getattr_np \
   pthread_getconcurrency \
   pthread_getcpuclockid \
+  pthread_getname \
   pthread_getschedparam \
   pthread_getspecific \
   pthread_join \
@@ -207,7 +208,6 @@ libpthread-routines = \
   nptl-init \
   pt-interp \
   pthread_create \
-  pthread_getname \
   pthread_setaffinity \
   pthread_setname \
   pthread_setschedprio \
diff --git a/nptl/Versions b/nptl/Versions
index 18ead25af6..cfdf548c77 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -185,6 +185,7 @@ libc {
     pthread_mutexattr_setrobust_np;
   }
   GLIBC_2.12 {
+    pthread_getname_np;
     pthread_mutex_consistent;
     pthread_mutexattr_getrobust;
     pthread_mutexattr_setrobust;
@@ -287,6 +288,7 @@ libc {
     pthread_getattr_default_np;
     pthread_getconcurrency;
     pthread_getcpuclockid;
+    pthread_getname_np;
     pthread_getspecific;
     pthread_join;
     pthread_key_create;
@@ -471,7 +473,6 @@ libpthread {
   };
 
   GLIBC_2.12 {
-    pthread_getname_np;
     pthread_setname_np;
   };
 
diff --git a/nptl/pthread_getname.c b/nptl/pthread_getname.c
index d796844e86..8ac814366a 100644
--- a/nptl/pthread_getname.c
+++ b/nptl/pthread_getname.c
@@ -23,12 +23,11 @@
 #include <string.h>
 #include <unistd.h>
 #include <sys/prctl.h>
-
 #include <not-cancel.h>
-
+#include <shlib-compat.h>
 
 int
-pthread_getname_np (pthread_t th, char *buf, size_t len)
+__pthread_getname_np (pthread_t th, char *buf, size_t len)
 {
   const struct pthread *pd = (const struct pthread *) th;
 
@@ -39,7 +38,7 @@ pthread_getname_np (pthread_t th, char *buf, size_t len)
     return ERANGE;
 
   if (pd == THREAD_SELF)
-    return prctl (PR_GET_NAME, buf) ? errno : 0;
+    return __prctl (PR_GET_NAME, buf) ? errno : 0;
 
 #define FMT "/proc/self/task/%u/comm"
   char fname[sizeof (FMT) + 8];
@@ -67,3 +66,10 @@ pthread_getname_np (pthread_t th, char *buf, size_t len)
 
   return res;
 }
+versioned_symbol (libc, __pthread_getname_np, pthread_getname_np,
+		  GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_getname_np, pthread_getname_np,
+	       GLIBC_2_12);
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index dde11d1d0b..a0043fcc72 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1495,6 +1495,7 @@ GLIBC_2.17 pthread_getaffinity_np F
 GLIBC_2.17 pthread_getattr_np F
 GLIBC_2.17 pthread_getconcurrency F
 GLIBC_2.17 pthread_getcpuclockid F
+GLIBC_2.17 pthread_getname_np F
 GLIBC_2.17 pthread_getschedparam F
 GLIBC_2.17 pthread_getspecific F
 GLIBC_2.17 pthread_join F
@@ -2369,6 +2370,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 9ac9be4ec4..8245b4910a 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_getname_np F
 GLIBC_2.17 pthread_setaffinity_np F
 GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 0c3f66e309..1409f32c5e 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1820,6 +1820,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x458
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2459,6 +2460,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index ae50cb30c6..3a8fce8fc2 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 129040de57..a780f261bd 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1437,6 +1437,7 @@ GLIBC_2.32 pthread_getattr_default_np F
 GLIBC_2.32 pthread_getattr_np F
 GLIBC_2.32 pthread_getconcurrency F
 GLIBC_2.32 pthread_getcpuclockid F
+GLIBC_2.32 pthread_getname_np F
 GLIBC_2.32 pthread_getschedparam F
 GLIBC_2.32 pthread_getspecific F
 GLIBC_2.32 pthread_join F
@@ -2128,6 +2129,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 88273f1424..dff4c4d2ae 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.32 __errno_location F
 GLIBC_2.32 pthread_create F
-GLIBC_2.32 pthread_getname_np F
 GLIBC_2.32 pthread_setaffinity_np F
 GLIBC_2.32 pthread_setname_np F
 GLIBC_2.32 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 822b3f4005..3c4439d0fd 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -237,6 +238,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 7d023cb181..9459d1f7fb 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -1,5 +1,4 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index e38c13db21..05174f6fb0 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -234,6 +235,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 7d023cb181..9459d1f7fb 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -1,5 +1,4 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 899002975d..515dc54d6a 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1496,6 +1496,7 @@ GLIBC_2.29 pthread_getattr_default_np F
 GLIBC_2.29 pthread_getattr_np F
 GLIBC_2.29 pthread_getconcurrency F
 GLIBC_2.29 pthread_getcpuclockid F
+GLIBC_2.29 pthread_getname_np F
 GLIBC_2.29 pthread_getschedparam F
 GLIBC_2.29 pthread_getspecific F
 GLIBC_2.29 pthread_join F
@@ -2312,6 +2313,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 95574381d5..ba9e21e735 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.29 __errno_location F
 GLIBC_2.29 pthread_create F
-GLIBC_2.29 pthread_getname_np F
 GLIBC_2.29 pthread_setaffinity_np F
 GLIBC_2.29 pthread_setname_np F
 GLIBC_2.29 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index dda8816136..78e104a073 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x404
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2264,6 +2265,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 1c20789e32..6b97d836ef 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -1,5 +1,4 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 1ecc3a30bd..e713095510 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1825,6 +1825,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2447,6 +2448,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index ae50cb30c6..3a8fce8fc2 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index e3aefdeed6..f1eb533894 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x438
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2300,6 +2301,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 1c20789e32..6b97d836ef 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -1,5 +1,4 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index e3d4b739aa..97efbfdd91 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -34,6 +34,7 @@ GLIBC_2.12 __m68k_read_tp F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -238,6 +239,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 7d023cb181..9459d1f7fb 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -1,5 +1,4 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 37eaedebd7..a242798112 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1782,6 +1782,7 @@ GLIBC_2.12 __m68k_read_tp F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2390,6 +2391,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index ae50cb30c6..3a8fce8fc2 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 07729d04e1..ed8e1cd0d5 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1498,6 +1498,7 @@ GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_getattr_np F
 GLIBC_2.18 pthread_getconcurrency F
 GLIBC_2.18 pthread_getcpuclockid F
+GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_getschedparam F
 GLIBC_2.18 pthread_getspecific F
 GLIBC_2.18 pthread_join F
@@ -2363,6 +2364,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 67a5cb9ab5..e4c2d2c0fe 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_setaffinity_np F
 GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index f690095f65..71c563bc1d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1498,6 +1498,7 @@ GLIBC_2.18 pthread_getattr_default_np F
 GLIBC_2.18 pthread_getattr_np F
 GLIBC_2.18 pthread_getconcurrency F
 GLIBC_2.18 pthread_getcpuclockid F
+GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_getschedparam F
 GLIBC_2.18 pthread_getspecific F
 GLIBC_2.18 pthread_join F
@@ -2360,6 +2361,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 67a5cb9ab5..e4c2d2c0fe 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_getname_np F
 GLIBC_2.18 pthread_setaffinity_np F
 GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index a9a33c8d0c..de345aa521 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1383,6 +1383,7 @@ GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2355,6 +2356,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 7ec95cd7f5..8827ba7772 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __errno_location F
 GLIBC_2.0 pthread_create F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index e592dbac83..5ace56265c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1383,6 +1383,7 @@ GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2353,6 +2354,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 7ec95cd7f5..8827ba7772 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -1,7 +1,6 @@
 GLIBC_2.0 __errno_location F
 GLIBC_2.0 pthread_create F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 3fea1c5fda..31acf12768 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1383,6 +1383,7 @@ GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2361,6 +2362,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 777ebc3591..4d5e4e9dd4 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1381,6 +1381,7 @@ GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2355,6 +2356,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index f3c575c293..2176d0e6e4 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1541,6 +1541,7 @@ GLIBC_2.21 pthread_getattr_default_np F
 GLIBC_2.21 pthread_getattr_np F
 GLIBC_2.21 pthread_getconcurrency F
 GLIBC_2.21 pthread_getcpuclockid F
+GLIBC_2.21 pthread_getname_np F
 GLIBC_2.21 pthread_getschedparam F
 GLIBC_2.21 pthread_getspecific F
 GLIBC_2.21 pthread_join F
@@ -2402,6 +2403,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 9924c04cea..9009a98b88 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.21 __errno_location F
 GLIBC_2.21 pthread_create F
-GLIBC_2.21 pthread_getname_np F
 GLIBC_2.21 pthread_setaffinity_np F
 GLIBC_2.21 pthread_setname_np F
 GLIBC_2.21 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 1133324bf7..3abd4e065f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1786,6 +1786,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2417,6 +2418,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 0320e73dbb..a5c6a8d42f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index d57c7e438f..67db071d92 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1786,6 +1786,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2450,6 +2451,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index c41682739e..a2b923bcb2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x438
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2265,6 +2266,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index dca9c1f876..8b55edb1b4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -1,5 +1,4 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 6b60cdc8eb..2827acac75 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1583,6 +1583,7 @@ GLIBC_2.17 pthread_getaffinity_np F
 GLIBC_2.17 pthread_getattr_np F
 GLIBC_2.17 pthread_getconcurrency F
 GLIBC_2.17 pthread_getcpuclockid F
+GLIBC_2.17 pthread_getname_np F
 GLIBC_2.17 pthread_getschedparam F
 GLIBC_2.17 pthread_getspecific F
 GLIBC_2.17 pthread_join F
@@ -2565,6 +2566,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 9ac9be4ec4..8245b4910a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_getname_np F
 GLIBC_2.17 pthread_setaffinity_np F
 GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index bf5e54123f..d26c0b603e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1439,6 +1439,7 @@ GLIBC_2.33 pthread_getattr_default_np F
 GLIBC_2.33 pthread_getattr_np F
 GLIBC_2.33 pthread_getconcurrency F
 GLIBC_2.33 pthread_getcpuclockid F
+GLIBC_2.33 pthread_getname_np F
 GLIBC_2.33 pthread_getschedparam F
 GLIBC_2.33 pthread_getspecific F
 GLIBC_2.33 pthread_join F
@@ -2130,6 +2131,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index abd4e6a9c4..b1f30a796c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.33 __errno_location F
 GLIBC_2.33 pthread_create F
-GLIBC_2.33 pthread_getname_np F
 GLIBC_2.33 pthread_setaffinity_np F
 GLIBC_2.33 pthread_setname_np F
 GLIBC_2.33 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 6387850fd5..7e77123dec 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1486,6 +1486,7 @@ GLIBC_2.27 pthread_getattr_default_np F
 GLIBC_2.27 pthread_getattr_np F
 GLIBC_2.27 pthread_getconcurrency F
 GLIBC_2.27 pthread_getcpuclockid F
+GLIBC_2.27 pthread_getname_np F
 GLIBC_2.27 pthread_getschedparam F
 GLIBC_2.27 pthread_getspecific F
 GLIBC_2.27 pthread_join F
@@ -2330,6 +2331,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index e43f1e723e..e1c2320d40 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.27 __errno_location F
 GLIBC_2.27 pthread_create F
-GLIBC_2.27 pthread_getname_np F
 GLIBC_2.27 pthread_setaffinity_np F
 GLIBC_2.27 pthread_setname_np F
 GLIBC_2.27 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index dc6d0776f8..f077792865 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1778,6 +1778,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2415,6 +2416,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index c349f281d5..a084421929 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.19 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index f3da8ca119..1e103ce570 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -37,6 +37,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x438
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2302,6 +2303,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 7c42617688..68f74e182f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -1,5 +1,4 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.19 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 83ce2ef1c5..5644da2e1d 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -37,6 +37,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2271,6 +2272,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 1c20789e32..6b97d836ef 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -1,5 +1,4 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index ed832e9e5d..7b9badf6b1 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -37,6 +37,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2268,6 +2269,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 1c20789e32..6b97d836ef 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -1,5 +1,4 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index d0870d3d75..0ab8427a30 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1779,6 +1779,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2408,6 +2409,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index ae50cb30c6..3a8fce8fc2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -4,7 +4,6 @@ GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 58a3cdb004..c1aa8d592e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -37,6 +37,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x438
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2321,6 +2322,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 1c20789e32..6b97d836ef 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -1,5 +1,4 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index a71bd400c6..68d829d128 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
 GLIBC_2.12 _sys_errlist D 0x438
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
@@ -2280,6 +2281,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 040c0b7b8e..a0954fccc5 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -1,5 +1,4 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_setname_np F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2.5 __errno_location F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index cb321c43b3..f4364769c7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1502,6 +1502,7 @@ GLIBC_2.16 pthread_getaffinity_np F
 GLIBC_2.16 pthread_getattr_np F
 GLIBC_2.16 pthread_getconcurrency F
 GLIBC_2.16 pthread_getcpuclockid F
+GLIBC_2.16 pthread_getname_np F
 GLIBC_2.16 pthread_getschedparam F
 GLIBC_2.16 pthread_getspecific F
 GLIBC_2.16 pthread_join F
@@ -2384,6 +2385,7 @@ GLIBC_2.34 pthread_detach F
 GLIBC_2.34 pthread_getattr_default_np F
 GLIBC_2.34 pthread_getconcurrency F
 GLIBC_2.34 pthread_getcpuclockid F
+GLIBC_2.34 pthread_getname_np F
 GLIBC_2.34 pthread_getspecific F
 GLIBC_2.34 pthread_join F
 GLIBC_2.34 pthread_key_create F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 357774d540..c8f7f67b98 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.16 __errno_location F
 GLIBC_2.16 pthread_create F
-GLIBC_2.16 pthread_getname_np F
 GLIBC_2.16 pthread_setaffinity_np F
 GLIBC_2.16 pthread_setname_np F
 GLIBC_2.16 pthread_setschedprio F
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 19/23] nptl: Move pthread_setaffinity_np into libc
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (17 preceding siblings ...)
  2021-05-12 16:58 ` [PATCH 18/23] nptl: Move pthread_getname_np " Florian Weimer
@ 2021-05-12 16:59 ` Florian Weimer
  2021-05-14 14:45   ` Adhemerval Zanella
  2021-05-12 16:59 ` [PATCH 20/23] nptl: Move pthread_setname_np " Florian Weimer
                   ` (4 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:59 UTC (permalink / raw)
  To: libc-alpha

The symbol was moved using scripts/move-symbol-to-libc.py.
---
 nptl/Makefile                                          |  2 +-
 nptl/Versions                                          |  5 +++--
 nptl/libpthread-compat.c                               |  5 +++++
 nptl/pthread_setaffinity.c                             | 10 +++++++---
 sysdeps/unix/sysv/linux/aarch64/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist             |  3 +++
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist       |  3 +--
 sysdeps/unix/sysv/linux/arc/libc.abilist               |  2 ++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist         |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist      |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist      |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist              |  2 ++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist        |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist              |  3 +++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist        |  3 +--
 sysdeps/unix/sysv/linux/i386/libc.abilist              |  3 +++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist        |  3 +--
 sysdeps/unix/sysv/linux/ia64/libc.abilist              |  3 +++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist        |  3 +--
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist     |  2 ++
 .../unix/sysv/linux/m68k/coldfire/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist       |  3 +++
 sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist |  3 +--
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist     |  2 ++
 .../unix/sysv/linux/microblaze/be/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist     |  2 ++
 .../unix/sysv/linux/microblaze/le/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist   |  3 +++
 sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist |  3 +--
 sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist |  3 +++
 sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist |  3 +--
 sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist   |  3 +++
 sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist   |  3 +++
 sysdeps/unix/sysv/linux/nios2/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist       |  1 -
 .../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist |  3 +++
 .../sysv/linux/powerpc/powerpc32/libpthread.abilist    |  3 +--
 .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist    |  3 +++
 .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist  |  3 +++
 .../sysv/linux/powerpc/powerpc64/be/libpthread.abilist |  3 +--
 .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist  |  2 ++
 .../sysv/linux/powerpc/powerpc64/le/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist      |  3 +++
 .../unix/sysv/linux/s390/s390-32/libpthread.abilist    |  3 +--
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist      |  3 +++
 .../unix/sysv/linux/s390/s390-64/libpthread.abilist    |  3 +--
 sysdeps/unix/sysv/linux/sh/be/libc.abilist             |  3 +++
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist       |  3 +--
 sysdeps/unix/sysv/linux/sh/le/libc.abilist             |  3 +++
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist       |  3 +--
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist     |  3 +++
 .../unix/sysv/linux/sparc/sparc32/libpthread.abilist   |  3 +--
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist     |  3 +++
 .../unix/sysv/linux/sparc/sparc64/libpthread.abilist   |  3 +--
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist         |  3 +++
 sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist   |  3 +--
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist  |  1 -
 65 files changed, 115 insertions(+), 51 deletions(-)

diff --git a/nptl/Makefile b/nptl/Makefile
index 516410cb84..a33f495653 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -169,6 +169,7 @@ routines = \
   pthread_rwlockattr_setkind_np \
   pthread_rwlockattr_setpshared \
   pthread_self \
+  pthread_setaffinity \
   pthread_setattr_default_np \
   pthread_setcancelstate \
   pthread_setcanceltype \
@@ -208,7 +209,6 @@ libpthread-routines = \
   nptl-init \
   pt-interp \
   pthread_create \
-  pthread_setaffinity \
   pthread_setname \
   pthread_setschedprio \
   pthread_sigqueue \
diff --git a/nptl/Versions b/nptl/Versions
index cfdf548c77..9293151253 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -166,12 +166,14 @@ libc {
     pthread_condattr_getclock;
     pthread_condattr_setclock;
     pthread_getaffinity_np;
+    pthread_setaffinity_np;
     pthread_timedjoin_np;
     pthread_tryjoin_np;
   }
   GLIBC_2.3.4 {
     pthread_attr_getaffinity_np;
     pthread_attr_setaffinity_np;
+    pthread_setaffinity_np;
   }
   GLIBC_2.4 {
     pthread_mutex_consistent_np;
@@ -455,12 +457,11 @@ libpthread {
   }
 
   GLIBC_2.3.3 {
-    pthread_setaffinity_np;
+    __libpthread_version_placeholder;
   }
 
   GLIBC_2.3.4 {
     pthread_getaffinity_np;
-    pthread_setaffinity_np;
     pthread_setschedprio;
   }
 
diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
index 18069870d1..a0c0102fd8 100644
--- a/nptl/libpthread-compat.c
+++ b/nptl/libpthread-compat.c
@@ -70,6 +70,11 @@ compat_symbol (libpthread, __libpthread_version_placeholder_1,
 	       __libpthread_version_placeholder, GLIBC_2_3_2);
 #endif
 
+#if (SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_3_4))
+compat_symbol (libpthread, __libpthread_version_placeholder_1,
+	       __libpthread_version_placeholder, GLIBC_2_3_3);
+#endif
+
 #if (SHLIB_COMPAT (libpthread, GLIBC_2_4, GLIBC_2_5))
 compat_symbol (libpthread, __libpthread_version_placeholder_1,
 	       __libpthread_version_placeholder, GLIBC_2_4);
diff --git a/nptl/pthread_setaffinity.c b/nptl/pthread_setaffinity.c
index e0226ea890..3bfdc63e19 100644
--- a/nptl/pthread_setaffinity.c
+++ b/nptl/pthread_setaffinity.c
@@ -37,11 +37,15 @@ __pthread_setaffinity_new (pthread_t th, size_t cpusetsize,
 	  ? INTERNAL_SYSCALL_ERRNO (res)
 	  : 0);
 }
-versioned_symbol (libpthread, __pthread_setaffinity_new,
-		  pthread_setaffinity_np, GLIBC_2_3_4);
+versioned_symbol (libc, __pthread_setaffinity_new,
+		  pthread_setaffinity_np, GLIBC_2_34);
 
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_setaffinity_new,
+	       pthread_setaffinity_np, GLIBC_2_3_4);
+#endif
 
-#if SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_3_4)
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_3_4)
 int
 __pthread_setaffinity_old (pthread_t th, cpu_set_t *cpuset)
 {
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index a0043fcc72..5a0899fe90 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1546,6 +1546,7 @@ GLIBC_2.17 pthread_rwlockattr_init F
 GLIBC_2.17 pthread_rwlockattr_setkind_np F
 GLIBC_2.17 pthread_rwlockattr_setpshared F
 GLIBC_2.17 pthread_self F
+GLIBC_2.17 pthread_setaffinity_np F
 GLIBC_2.17 pthread_setcancelstate F
 GLIBC_2.17 pthread_setcanceltype F
 GLIBC_2.17 pthread_setconcurrency F
@@ -2412,6 +2413,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 8245b4910a..0272714fce 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_setaffinity_np F
 GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 1409f32c5e..25d8603bc0 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2307,6 +2307,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2358,6 +2359,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2502,6 +2504,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 3a8fce8fc2..7b143cd3d7 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -11,8 +11,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index a780f261bd..088f9056c6 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1491,6 +1491,7 @@ GLIBC_2.32 pthread_rwlockattr_init F
 GLIBC_2.32 pthread_rwlockattr_setkind_np F
 GLIBC_2.32 pthread_rwlockattr_setpshared F
 GLIBC_2.32 pthread_self F
+GLIBC_2.32 pthread_setaffinity_np F
 GLIBC_2.32 pthread_setattr_default_np F
 GLIBC_2.32 pthread_setcancelstate F
 GLIBC_2.32 pthread_setcanceltype F
@@ -2171,6 +2172,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index dff4c4d2ae..5e1f4425f2 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.32 __errno_location F
 GLIBC_2.32 pthread_create F
-GLIBC_2.32 pthread_setaffinity_np F
 GLIBC_2.32 pthread_setname_np F
 GLIBC_2.32 pthread_setschedprio F
 GLIBC_2.32 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 3c4439d0fd..afee2d9bb9 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -280,6 +280,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
@@ -1787,6 +1788,7 @@ GLIBC_2.4 pthread_rwlockattr_init F
 GLIBC_2.4 pthread_rwlockattr_setkind_np F
 GLIBC_2.4 pthread_rwlockattr_setpshared F
 GLIBC_2.4 pthread_self F
+GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setcancelstate F
 GLIBC_2.4 pthread_setcanceltype F
 GLIBC_2.4 pthread_setconcurrency F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 9459d1f7fb..e4421d1661 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -7,5 +7,4 @@ GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __errno_location F
 GLIBC_2.4 __libpthread_version_placeholder F
 GLIBC_2.4 pthread_create F
-GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 05174f6fb0..e360433660 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -277,6 +277,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
@@ -1784,6 +1785,7 @@ GLIBC_2.4 pthread_rwlockattr_init F
 GLIBC_2.4 pthread_rwlockattr_setkind_np F
 GLIBC_2.4 pthread_rwlockattr_setpshared F
 GLIBC_2.4 pthread_self F
+GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setcancelstate F
 GLIBC_2.4 pthread_setcanceltype F
 GLIBC_2.4 pthread_setconcurrency F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 9459d1f7fb..e4421d1661 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -7,5 +7,4 @@ GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __errno_location F
 GLIBC_2.4 __libpthread_version_placeholder F
 GLIBC_2.4 pthread_create F
-GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 515dc54d6a..5f0d74c38b 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1547,6 +1547,7 @@ GLIBC_2.29 pthread_rwlockattr_init F
 GLIBC_2.29 pthread_rwlockattr_setkind_np F
 GLIBC_2.29 pthread_rwlockattr_setpshared F
 GLIBC_2.29 pthread_self F
+GLIBC_2.29 pthread_setaffinity_np F
 GLIBC_2.29 pthread_setattr_default_np F
 GLIBC_2.29 pthread_setcancelstate F
 GLIBC_2.29 pthread_setcanceltype F
@@ -2355,6 +2356,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index ba9e21e735..976476e6b0 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.29 __errno_location F
 GLIBC_2.29 pthread_create F
-GLIBC_2.29 pthread_setaffinity_np F
 GLIBC_2.29 pthread_setname_np F
 GLIBC_2.29 pthread_setschedprio F
 GLIBC_2.29 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 78e104a073..f050474ba0 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2142,6 +2142,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2175,6 +2176,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2307,6 +2309,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 6b97d836ef..f301ecb383 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -7,8 +7,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index e713095510..515d3af6f5 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2322,6 +2322,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2355,6 +2356,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2490,6 +2492,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 3a8fce8fc2..7b143cd3d7 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -11,8 +11,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index f1eb533894..1cd3220ff4 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2175,6 +2175,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2210,6 +2211,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2343,6 +2345,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 6b97d836ef..f301ecb383 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -7,8 +7,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 97efbfdd91..3f9003bf89 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -281,6 +281,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
@@ -1767,6 +1768,7 @@ GLIBC_2.4 pthread_rwlockattr_init F
 GLIBC_2.4 pthread_rwlockattr_setkind_np F
 GLIBC_2.4 pthread_rwlockattr_setpshared F
 GLIBC_2.4 pthread_self F
+GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setcancelstate F
 GLIBC_2.4 pthread_setcanceltype F
 GLIBC_2.4 pthread_setconcurrency F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 9459d1f7fb..e4421d1661 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -7,5 +7,4 @@ GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __errno_location F
 GLIBC_2.4 __libpthread_version_placeholder F
 GLIBC_2.4 pthread_create F
-GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index a242798112..013e5de06d 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2265,6 +2265,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2298,6 +2299,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2433,6 +2435,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 3a8fce8fc2..7b143cd3d7 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -11,8 +11,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index ed8e1cd0d5..1df55eb788 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1549,6 +1549,7 @@ GLIBC_2.18 pthread_rwlockattr_init F
 GLIBC_2.18 pthread_rwlockattr_setkind_np F
 GLIBC_2.18 pthread_rwlockattr_setpshared F
 GLIBC_2.18 pthread_self F
+GLIBC_2.18 pthread_setaffinity_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.18 pthread_setcancelstate F
 GLIBC_2.18 pthread_setcanceltype F
@@ -2406,6 +2407,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index e4c2d2c0fe..44cc2080c2 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_setaffinity_np F
 GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 71c563bc1d..b397b1cbee 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1549,6 +1549,7 @@ GLIBC_2.18 pthread_rwlockattr_init F
 GLIBC_2.18 pthread_rwlockattr_setkind_np F
 GLIBC_2.18 pthread_rwlockattr_setpshared F
 GLIBC_2.18 pthread_self F
+GLIBC_2.18 pthread_setaffinity_np F
 GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.18 pthread_setcancelstate F
 GLIBC_2.18 pthread_setcanceltype F
@@ -2403,6 +2404,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index e4c2d2c0fe..44cc2080c2 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_setaffinity_np F
 GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index de345aa521..0b366d487f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2233,6 +2233,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2266,6 +2267,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2398,6 +2400,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 8827ba7772..c884dfc6ae 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -8,8 +8,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 5ace56265c..8361b430df 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2231,6 +2231,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2264,6 +2265,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2396,6 +2398,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 8827ba7772..c884dfc6ae 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -8,8 +8,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 31acf12768..642ce9dceb 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2239,6 +2239,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2272,6 +2273,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2404,6 +2406,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 4d5e4e9dd4..48632de397 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2231,6 +2231,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2266,6 +2267,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2398,6 +2400,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 2176d0e6e4..125fe4d799 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1592,6 +1592,7 @@ GLIBC_2.21 pthread_rwlockattr_init F
 GLIBC_2.21 pthread_rwlockattr_setkind_np F
 GLIBC_2.21 pthread_rwlockattr_setpshared F
 GLIBC_2.21 pthread_self F
+GLIBC_2.21 pthread_setaffinity_np F
 GLIBC_2.21 pthread_setattr_default_np F
 GLIBC_2.21 pthread_setcancelstate F
 GLIBC_2.21 pthread_setcanceltype F
@@ -2445,6 +2446,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 9009a98b88..3f25a85a5f 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.21 __errno_location F
 GLIBC_2.21 pthread_create F
-GLIBC_2.21 pthread_setaffinity_np F
 GLIBC_2.21 pthread_setname_np F
 GLIBC_2.21 pthread_setschedprio F
 GLIBC_2.21 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 3abd4e065f..893c46b74a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2271,6 +2271,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2312,6 +2313,7 @@ GLIBC_2.3.4 makecontext F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2460,6 +2462,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index a5c6a8d42f..7d6a83c3af 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -11,8 +11,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 67db071d92..5b828687bf 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2304,6 +2304,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2345,6 +2346,7 @@ GLIBC_2.3.4 makecontext F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2493,6 +2495,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index a2b923bcb2..3e7677e070 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2120,6 +2120,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2160,6 +2161,7 @@ GLIBC_2.3.4 longjmp F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2308,6 +2310,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 8b55edb1b4..1d08bd8e73 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -5,8 +5,7 @@ GLIBC_2.28 thrd_create F
 GLIBC_2.3 __errno_location F
 GLIBC_2.3 pthread_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 2827acac75..4b29564e00 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1634,6 +1634,7 @@ GLIBC_2.17 pthread_rwlockattr_init F
 GLIBC_2.17 pthread_rwlockattr_setkind_np F
 GLIBC_2.17 pthread_rwlockattr_setpshared F
 GLIBC_2.17 pthread_self F
+GLIBC_2.17 pthread_setaffinity_np F
 GLIBC_2.17 pthread_setcancelstate F
 GLIBC_2.17 pthread_setcanceltype F
 GLIBC_2.17 pthread_setconcurrency F
@@ -2608,6 +2609,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 8245b4910a..0272714fce 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_setaffinity_np F
 GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index d26c0b603e..ba876fc418 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1493,6 +1493,7 @@ GLIBC_2.33 pthread_rwlockattr_init F
 GLIBC_2.33 pthread_rwlockattr_setkind_np F
 GLIBC_2.33 pthread_rwlockattr_setpshared F
 GLIBC_2.33 pthread_self F
+GLIBC_2.33 pthread_setaffinity_np F
 GLIBC_2.33 pthread_setattr_default_np F
 GLIBC_2.33 pthread_setcancelstate F
 GLIBC_2.33 pthread_setcanceltype F
@@ -2173,6 +2174,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index b1f30a796c..86594445c3 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.33 __errno_location F
 GLIBC_2.33 pthread_create F
-GLIBC_2.33 pthread_setaffinity_np F
 GLIBC_2.33 pthread_setname_np F
 GLIBC_2.33 pthread_setschedprio F
 GLIBC_2.33 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 7e77123dec..6f45a3ebd6 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1537,6 +1537,7 @@ GLIBC_2.27 pthread_rwlockattr_init F
 GLIBC_2.27 pthread_rwlockattr_setkind_np F
 GLIBC_2.27 pthread_rwlockattr_setpshared F
 GLIBC_2.27 pthread_self F
+GLIBC_2.27 pthread_setaffinity_np F
 GLIBC_2.27 pthread_setattr_default_np F
 GLIBC_2.27 pthread_setcancelstate F
 GLIBC_2.27 pthread_setcanceltype F
@@ -2373,6 +2374,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index e1c2320d40..2f58bb845c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.27 __errno_location F
 GLIBC_2.27 pthread_create F
-GLIBC_2.27 pthread_setaffinity_np F
 GLIBC_2.27 pthread_setname_np F
 GLIBC_2.27 pthread_setschedprio F
 GLIBC_2.27 pthread_sigqueue F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index f077792865..ea42d4f420 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2278,6 +2278,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2311,6 +2312,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2458,6 +2460,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index a084421929..12048bef37 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -12,8 +12,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 1e103ce570..811121dbb9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2166,6 +2166,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2201,6 +2202,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2345,6 +2347,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 68f74e182f..c685c20bf7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -8,8 +8,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 5644da2e1d..85d2b2c13f 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2146,6 +2146,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2179,6 +2180,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2314,6 +2316,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 6b97d836ef..f301ecb383 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -7,8 +7,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 7b9badf6b1..d3429b6d96 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2146,6 +2146,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2179,6 +2180,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2311,6 +2313,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 6b97d836ef..f301ecb383 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -7,8 +7,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 0ab8427a30..be5a5aabd5 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2274,6 +2274,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2307,6 +2308,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2451,6 +2453,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 3a8fce8fc2..7b143cd3d7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -11,8 +11,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index c1aa8d592e..8e88035ee6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2197,6 +2197,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2232,6 +2233,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2364,6 +2366,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 6b97d836ef..f301ecb383 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -7,8 +7,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 68d829d128..18eaaad847 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2154,6 +2154,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
 GLIBC_2.3.3 pthread_condattr_getclock F
 GLIBC_2.3.3 pthread_condattr_setclock F
 GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
 GLIBC_2.3.3 pthread_timedjoin_np F
 GLIBC_2.3.3 pthread_tryjoin_np F
 GLIBC_2.3.3 remap_file_pages F
@@ -2189,6 +2190,7 @@ GLIBC_2.3.4 getsourcefilter F
 GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2323,6 +2325,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index a0954fccc5..0759d42083 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -6,8 +6,7 @@ GLIBC_2.2.5 pthread_create F
 GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
-GLIBC_2.3.3 pthread_setaffinity_np F
-GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.3 __libpthread_version_placeholder F
 GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index f4364769c7..6b754260c7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1553,6 +1553,7 @@ GLIBC_2.16 pthread_rwlockattr_init F
 GLIBC_2.16 pthread_rwlockattr_setkind_np F
 GLIBC_2.16 pthread_rwlockattr_setpshared F
 GLIBC_2.16 pthread_self F
+GLIBC_2.16 pthread_setaffinity_np F
 GLIBC_2.16 pthread_setcancelstate F
 GLIBC_2.16 pthread_setcanceltype F
 GLIBC_2.16 pthread_setconcurrency F
@@ -2427,6 +2428,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
 GLIBC_2.34 pthread_rwlockattr_init F
 GLIBC_2.34 pthread_rwlockattr_setkind_np F
 GLIBC_2.34 pthread_rwlockattr_setpshared F
+GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setspecific F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index c8f7f67b98..1e6013cfe6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.16 __errno_location F
 GLIBC_2.16 pthread_create F
-GLIBC_2.16 pthread_setaffinity_np F
 GLIBC_2.16 pthread_setname_np F
 GLIBC_2.16 pthread_setschedprio F
 GLIBC_2.16 pthread_sigqueue F
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 20/23] nptl: Move pthread_setname_np into libc
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (18 preceding siblings ...)
  2021-05-12 16:59 ` [PATCH 19/23] nptl: Move pthread_setaffinity_np " Florian Weimer
@ 2021-05-12 16:59 ` Florian Weimer
  2021-05-14 14:46   ` Adhemerval Zanella
  2021-05-12 16:59 ` [PATCH 21/23] nptl: Move pthread_setschedprio " Florian Weimer
                   ` (3 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:59 UTC (permalink / raw)
  To: libc-alpha

The symbol was moved using scripts/move-symbol-to-libc.py.

Add __libpthread_version_placeholder@@GLIBC_2.12 for the targets
that need it.
---
 nptl/Makefile                                         |  2 +-
 nptl/Versions                                         |  7 ++++++-
 nptl/libpthread-compat.c                              |  5 +++++
 nptl/pthread_setname.c                                | 11 +++++++++--
 sysdeps/unix/sysv/linux/aarch64/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist      |  2 +-
 sysdeps/unix/sysv/linux/arc/libc.abilist              |  2 ++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist        |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist     |  2 +-
 sysdeps/unix/sysv/linux/arm/le/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist     |  2 +-
 sysdeps/unix/sysv/linux/csky/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist       |  2 +-
 sysdeps/unix/sysv/linux/i386/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist       |  2 +-
 sysdeps/unix/sysv/linux/ia64/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist       |  2 +-
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist    |  2 ++
 .../unix/sysv/linux/m68k/coldfire/libpthread.abilist  |  2 +-
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist      |  2 ++
 .../unix/sysv/linux/m68k/m680x0/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist    |  2 ++
 .../unix/sysv/linux/microblaze/be/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist    |  2 ++
 .../unix/sysv/linux/microblaze/le/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist  |  2 ++
 .../unix/sysv/linux/mips/mips32/libpthread.abilist    |  2 +-
 .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist    |  2 ++
 .../unix/sysv/linux/mips/mips64/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist  |  2 ++
 sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist  |  2 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist      |  1 -
 .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist     |  2 ++
 .../sysv/linux/powerpc/powerpc32/libpthread.abilist   |  2 +-
 .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist   |  2 ++
 .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist |  2 ++
 .../linux/powerpc/powerpc64/be/libpthread.abilist     |  2 +-
 .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist |  2 ++
 .../linux/powerpc/powerpc64/le/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist     |  2 ++
 .../unix/sysv/linux/s390/s390-32/libpthread.abilist   |  2 +-
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist     |  2 ++
 .../unix/sysv/linux/s390/s390-64/libpthread.abilist   |  2 +-
 sysdeps/unix/sysv/linux/sh/be/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist      |  2 +-
 sysdeps/unix/sysv/linux/sh/le/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist      |  2 +-
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist    |  2 ++
 .../unix/sysv/linux/sparc/sparc32/libpthread.abilist  |  2 +-
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist    |  2 ++
 .../unix/sysv/linux/sparc/sparc64/libpthread.abilist  |  2 +-
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist  |  2 +-
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist |  1 -
 65 files changed, 104 insertions(+), 33 deletions(-)

diff --git a/nptl/Makefile b/nptl/Makefile
index a33f495653..5a271fed87 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -174,6 +174,7 @@ routines = \
   pthread_setcancelstate \
   pthread_setcanceltype \
   pthread_setconcurrency \
+  pthread_setname \
   pthread_setschedparam \
   pthread_setspecific \
   pthread_sigmask \
@@ -209,7 +210,6 @@ libpthread-routines = \
   nptl-init \
   pt-interp \
   pthread_create \
-  pthread_setname \
   pthread_setschedprio \
   pthread_sigqueue \
   version \
diff --git a/nptl/Versions b/nptl/Versions
index 9293151253..22d32df50f 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -191,6 +191,7 @@ libc {
     pthread_mutex_consistent;
     pthread_mutexattr_getrobust;
     pthread_mutexattr_setrobust;
+    pthread_setname_np;
   }
   GLIBC_2.18 {
     pthread_getattr_default_np;
@@ -330,6 +331,7 @@ libc {
     pthread_rwlockattr_setpshared;
     pthread_setattr_default_np;
     pthread_setconcurrency;
+    pthread_setname_np;
     pthread_setspecific;
     pthread_spin_destroy;
     pthread_spin_init;
@@ -474,9 +476,12 @@ libpthread {
   };
 
   GLIBC_2.12 {
-    pthread_setname_np;
+    __libpthread_version_placeholder;
   };
 
+  GLIBC_2.13 {
+  }
+
   GLIBC_2.18 {
     __libpthread_version_placeholder;
   }
diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
index a0c0102fd8..b1bee36f36 100644
--- a/nptl/libpthread-compat.c
+++ b/nptl/libpthread-compat.c
@@ -80,6 +80,11 @@ compat_symbol (libpthread, __libpthread_version_placeholder_1,
 	       __libpthread_version_placeholder, GLIBC_2_4);
 #endif
 
+#if SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_13)
+compat_symbol (libpthread, __libpthread_version_placeholder_1,
+	       __libpthread_version_placeholder, GLIBC_2_12);
+#endif
+
 #if SHLIB_COMPAT (libpthread, GLIBC_2_18, GLIBC_2_19) \
   && ABI_libpthread_GLIBC_2_18 != ABI_libpthread_GLIBC_2_0
 compat_symbol (libpthread, __libpthread_version_placeholder_1,
diff --git a/nptl/pthread_setname.c b/nptl/pthread_setname.c
index 61a39fbc58..6d2d8a1723 100644
--- a/nptl/pthread_setname.c
+++ b/nptl/pthread_setname.c
@@ -28,7 +28,7 @@
 
 
 int
-pthread_setname_np (pthread_t th, const char *name)
+__pthread_setname_np (pthread_t th, const char *name)
 {
   const struct pthread *pd = (const struct pthread *) th;
 
@@ -40,7 +40,7 @@ pthread_setname_np (pthread_t th, const char *name)
     return ERANGE;
 
   if (pd == THREAD_SELF)
-    return prctl (PR_SET_NAME, name) ? errno : 0;
+    return __prctl (PR_SET_NAME, name) ? errno : 0;
 
 #define FMT "/proc/self/task/%u/comm"
   char fname[sizeof (FMT) + 8];
@@ -61,3 +61,10 @@ pthread_setname_np (pthread_t th, const char *name)
 
   return res;
 }
+versioned_symbol (libc, __pthread_setname_np, pthread_setname_np,
+                  GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_setname_np, pthread_setname_np,
+               GLIBC_2_12);
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 5a0899fe90..ebe358d524 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1550,6 +1550,7 @@ GLIBC_2.17 pthread_setaffinity_np F
 GLIBC_2.17 pthread_setcancelstate F
 GLIBC_2.17 pthread_setcanceltype F
 GLIBC_2.17 pthread_setconcurrency F
+GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedparam F
 GLIBC_2.17 pthread_setspecific F
 GLIBC_2.17 pthread_sigmask F
@@ -2416,6 +2417,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 0272714fce..c95d8d7e0f 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_sigqueue F
 GLIBC_2.18 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 25d8603bc0..003eddb0e4 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1824,6 +1824,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x458
 GLIBC_2.12 sys_nerr D 0x4
@@ -2507,6 +2508,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 7b143cd3d7..c002d68e5a 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -4,7 +4,7 @@ GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
 GLIBC_2.2.3 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 088f9056c6..6e00b62a37 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1496,6 +1496,7 @@ GLIBC_2.32 pthread_setattr_default_np F
 GLIBC_2.32 pthread_setcancelstate F
 GLIBC_2.32 pthread_setcanceltype F
 GLIBC_2.32 pthread_setconcurrency F
+GLIBC_2.32 pthread_setname_np F
 GLIBC_2.32 pthread_setschedparam F
 GLIBC_2.32 pthread_setspecific F
 GLIBC_2.32 pthread_sigmask F
@@ -2175,6 +2176,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 5e1f4425f2..f3736f98af 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.32 __errno_location F
 GLIBC_2.32 pthread_create F
-GLIBC_2.32 pthread_setname_np F
 GLIBC_2.32 pthread_setschedprio F
 GLIBC_2.32 pthread_sigqueue F
 GLIBC_2.32 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index afee2d9bb9..94a9c08fd8 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -37,6 +37,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x21c
 GLIBC_2.12 sys_nerr D 0x4
@@ -283,6 +284,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index e4421d1661..7c62cde550 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -1,5 +1,5 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index e360433660..7dee722baf 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -37,6 +37,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x21c
 GLIBC_2.12 sys_nerr D 0x4
@@ -280,6 +281,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index e4421d1661..7c62cde550 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -1,5 +1,5 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 5f0d74c38b..28cce579f2 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1552,6 +1552,7 @@ GLIBC_2.29 pthread_setattr_default_np F
 GLIBC_2.29 pthread_setcancelstate F
 GLIBC_2.29 pthread_setcanceltype F
 GLIBC_2.29 pthread_setconcurrency F
+GLIBC_2.29 pthread_setname_np F
 GLIBC_2.29 pthread_setschedparam F
 GLIBC_2.29 pthread_setspecific F
 GLIBC_2.29 pthread_sigmask F
@@ -2359,6 +2360,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 976476e6b0..97e0acd58e 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.29 __errno_location F
 GLIBC_2.29 pthread_create F
-GLIBC_2.29 pthread_setname_np F
 GLIBC_2.29 pthread_setschedprio F
 GLIBC_2.29 pthread_sigqueue F
 GLIBC_2.29 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index f050474ba0..1f9b6d8d01 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -37,6 +37,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x404
 GLIBC_2.12 sys_nerr D 0x4
@@ -2312,6 +2313,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index f301ecb383..ac5627e09d 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -1,5 +1,5 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 515d3af6f5..5c24eaef49 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1829,6 +1829,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x21c
 GLIBC_2.12 sys_nerr D 0x4
@@ -2495,6 +2496,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 7b143cd3d7..c002d68e5a 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -4,7 +4,7 @@ GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
 GLIBC_2.2.3 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 1cd3220ff4..2fade241ae 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -37,6 +37,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x438
 GLIBC_2.12 sys_nerr D 0x4
@@ -2348,6 +2349,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index f301ecb383..ac5627e09d 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -1,5 +1,5 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 3f9003bf89..4a036fce78 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -38,6 +38,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x21c
 GLIBC_2.12 sys_nerr D 0x4
@@ -284,6 +285,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index e4421d1661..7c62cde550 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -1,5 +1,5 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 013e5de06d..ab7d5c54e1 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1786,6 +1786,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x21c
 GLIBC_2.12 sys_nerr D 0x4
@@ -2438,6 +2439,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 7b143cd3d7..c002d68e5a 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -4,7 +4,7 @@ GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
 GLIBC_2.2.3 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 1df55eb788..010fd7e917 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1554,6 +1554,7 @@ GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.18 pthread_setcancelstate F
 GLIBC_2.18 pthread_setcanceltype F
 GLIBC_2.18 pthread_setconcurrency F
+GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedparam F
 GLIBC_2.18 pthread_setspecific F
 GLIBC_2.18 pthread_sigmask F
@@ -2410,6 +2411,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 44cc2080c2..7cf69ae9b7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index b397b1cbee..26a0db4c36 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1554,6 +1554,7 @@ GLIBC_2.18 pthread_setattr_default_np F
 GLIBC_2.18 pthread_setcancelstate F
 GLIBC_2.18 pthread_setcanceltype F
 GLIBC_2.18 pthread_setconcurrency F
+GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedparam F
 GLIBC_2.18 pthread_setspecific F
 GLIBC_2.18 pthread_sigmask F
@@ -2407,6 +2408,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 44cc2080c2..7cf69ae9b7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 0b366d487f..18f84a75d5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1387,6 +1387,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.13 fanotify_init F
 GLIBC_2.13 fanotify_mark F
@@ -2403,6 +2404,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index c884dfc6ae..c467d55dc1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -1,7 +1,7 @@
 GLIBC_2.0 __errno_location F
 GLIBC_2.0 pthread_create F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2.3 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 8361b430df..a88f242493 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1387,6 +1387,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.13 fanotify_init F
 GLIBC_2.13 fanotify_mark F
@@ -2401,6 +2402,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index c884dfc6ae..c467d55dc1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -1,7 +1,7 @@
 GLIBC_2.0 __errno_location F
 GLIBC_2.0 pthread_create F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2.3 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 642ce9dceb..5e2e7e666e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1387,6 +1387,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.13 fanotify_init F
 GLIBC_2.13 fanotify_mark F
@@ -2409,6 +2410,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 48632de397..115c85a49a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1385,6 +1385,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.13 fanotify_init F
 GLIBC_2.13 fanotify_mark F
@@ -2403,6 +2404,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 125fe4d799..4e91b3f0a0 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1597,6 +1597,7 @@ GLIBC_2.21 pthread_setattr_default_np F
 GLIBC_2.21 pthread_setcancelstate F
 GLIBC_2.21 pthread_setcanceltype F
 GLIBC_2.21 pthread_setconcurrency F
+GLIBC_2.21 pthread_setname_np F
 GLIBC_2.21 pthread_setschedparam F
 GLIBC_2.21 pthread_setspecific F
 GLIBC_2.21 pthread_sigmask F
@@ -2449,6 +2450,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 3f25a85a5f..fe54b3c7bd 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.21 __errno_location F
 GLIBC_2.21 pthread_create F
-GLIBC_2.21 pthread_setname_np F
 GLIBC_2.21 pthread_setschedprio F
 GLIBC_2.21 pthread_sigqueue F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 893c46b74a..77d3e6e2ac 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1790,6 +1790,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x21c
 GLIBC_2.12 sys_nerr D 0x4
@@ -2465,6 +2466,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 7d6a83c3af..59a3a9caab 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -4,7 +4,7 @@ GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
 GLIBC_2.2.3 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 5b828687bf..26dda60d76 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1790,6 +1790,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x21c
 GLIBC_2.12 sys_nerr D 0x4
@@ -2498,6 +2499,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 3e7677e070..e8ad3d3160 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -37,6 +37,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x438
 GLIBC_2.12 sys_nerr D 0x4
@@ -2313,6 +2314,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 1d08bd8e73..2483a4b02d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -1,5 +1,5 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3 __errno_location F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 4b29564e00..937def80d1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1638,6 +1638,7 @@ GLIBC_2.17 pthread_setaffinity_np F
 GLIBC_2.17 pthread_setcancelstate F
 GLIBC_2.17 pthread_setcanceltype F
 GLIBC_2.17 pthread_setconcurrency F
+GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedparam F
 GLIBC_2.17 pthread_setspecific F
 GLIBC_2.17 pthread_sigmask F
@@ -2612,6 +2613,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 0272714fce..c95d8d7e0f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_sigqueue F
 GLIBC_2.18 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index ba876fc418..15a653f357 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1498,6 +1498,7 @@ GLIBC_2.33 pthread_setattr_default_np F
 GLIBC_2.33 pthread_setcancelstate F
 GLIBC_2.33 pthread_setcanceltype F
 GLIBC_2.33 pthread_setconcurrency F
+GLIBC_2.33 pthread_setname_np F
 GLIBC_2.33 pthread_setschedparam F
 GLIBC_2.33 pthread_setspecific F
 GLIBC_2.33 pthread_sigmask F
@@ -2177,6 +2178,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 86594445c3..8583d6e1b8 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.33 __errno_location F
 GLIBC_2.33 pthread_create F
-GLIBC_2.33 pthread_setname_np F
 GLIBC_2.33 pthread_setschedprio F
 GLIBC_2.33 pthread_sigqueue F
 GLIBC_2.33 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 6f45a3ebd6..2217cc5d4a 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1542,6 +1542,7 @@ GLIBC_2.27 pthread_setattr_default_np F
 GLIBC_2.27 pthread_setcancelstate F
 GLIBC_2.27 pthread_setcanceltype F
 GLIBC_2.27 pthread_setconcurrency F
+GLIBC_2.27 pthread_setname_np F
 GLIBC_2.27 pthread_setschedparam F
 GLIBC_2.27 pthread_setspecific F
 GLIBC_2.27 pthread_sigmask F
@@ -2377,6 +2378,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 2f58bb845c..da077324ec 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.27 __errno_location F
 GLIBC_2.27 pthread_create F
-GLIBC_2.27 pthread_setname_np F
 GLIBC_2.27 pthread_setschedprio F
 GLIBC_2.27 pthread_sigqueue F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index ea42d4f420..41461447e7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1782,6 +1782,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x21c
 GLIBC_2.12 sys_nerr D 0x4
@@ -2463,6 +2464,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 12048bef37..fd86527d05 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -4,7 +4,7 @@ GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.19 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 811121dbb9..a10f057eaf 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -41,6 +41,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x438
 GLIBC_2.12 sys_nerr D 0x4
@@ -2350,6 +2351,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index c685c20bf7..811d709114 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -1,5 +1,5 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.19 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 85d2b2c13f..75b1aece01 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -41,6 +41,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x21c
 GLIBC_2.12 sys_nerr D 0x4
@@ -2319,6 +2320,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index f301ecb383..ac5627e09d 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -1,5 +1,5 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index d3429b6d96..392dd88819 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -41,6 +41,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x21c
 GLIBC_2.12 sys_nerr D 0x4
@@ -2316,6 +2317,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index f301ecb383..ac5627e09d 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -1,5 +1,5 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index be5a5aabd5..2b98f773a3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1783,6 +1783,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x21c
 GLIBC_2.12 sys_nerr D 0x4
@@ -2456,6 +2457,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 7b143cd3d7..c002d68e5a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -4,7 +4,7 @@ GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
 GLIBC_2.2.3 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 8e88035ee6..db9dcf6978 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -41,6 +41,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x438
 GLIBC_2.12 sys_nerr D 0x4
@@ -2369,6 +2370,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index f301ecb383..ac5627e09d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -1,5 +1,5 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
 GLIBC_2.2 pthread_create F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 18eaaad847..deaa9991d4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -37,6 +37,7 @@ GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
 GLIBC_2.12 pthread_mutexattr_getrobust F
 GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
 GLIBC_2.12 recvmmsg F
 GLIBC_2.12 sys_errlist D 0x438
 GLIBC_2.12 sys_nerr D 0x4
@@ -2328,6 +2329,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 0759d42083..973e0d152a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -1,5 +1,5 @@
 GLIBC_2.11 pthread_sigqueue F
-GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2.5 __errno_location F
 GLIBC_2.2.5 pthread_create F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 6b754260c7..07fbab152e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1557,6 +1557,7 @@ GLIBC_2.16 pthread_setaffinity_np F
 GLIBC_2.16 pthread_setcancelstate F
 GLIBC_2.16 pthread_setcanceltype F
 GLIBC_2.16 pthread_setconcurrency F
+GLIBC_2.16 pthread_setname_np F
 GLIBC_2.16 pthread_setschedparam F
 GLIBC_2.16 pthread_setspecific F
 GLIBC_2.16 pthread_sigmask F
@@ -2431,6 +2432,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
 GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
+GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 1e6013cfe6..551f630afe 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.16 __errno_location F
 GLIBC_2.16 pthread_create F
-GLIBC_2.16 pthread_setname_np F
 GLIBC_2.16 pthread_setschedprio F
 GLIBC_2.16 pthread_sigqueue F
 GLIBC_2.18 __libpthread_version_placeholder F
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 21/23] nptl: Move pthread_setschedprio into libc
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (19 preceding siblings ...)
  2021-05-12 16:59 ` [PATCH 20/23] nptl: Move pthread_setname_np " Florian Weimer
@ 2021-05-12 16:59 ` Florian Weimer
  2021-05-14 14:47   ` Adhemerval Zanella
  2021-05-12 16:59 ` [PATCH 22/23] nptl: Move pthread_sigqueue " Florian Weimer
                   ` (2 subsequent siblings)
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:59 UTC (permalink / raw)
  To: libc-alpha

The symbol was moved using scripts/move-symbol-to-libc.py.

The GLIBC_2.3.4 version is now empty, so add a placeholder symbol.
---
 nptl/Makefile                                       |  2 +-
 nptl/Versions                                       |  5 +++--
 nptl/libpthread-compat.c                            |  5 +++++
 nptl/pthread_setschedprio.c                         | 13 ++++++++++---
 sysdeps/unix/sysv/linux/aarch64/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/arc/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist      |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist         |  2 ++
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist         |  2 ++
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist     |  2 +-
 sysdeps/unix/sysv/linux/i386/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist     |  2 +-
 sysdeps/unix/sysv/linux/ia64/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist     |  2 +-
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist  |  2 ++
 .../sysv/linux/m68k/coldfire/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist    |  2 ++
 .../unix/sysv/linux/m68k/m680x0/libpthread.abilist  |  2 +-
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist  |  2 ++
 .../sysv/linux/microblaze/be/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist  |  2 ++
 .../sysv/linux/microblaze/le/libpthread.abilist     |  1 -
 .../unix/sysv/linux/mips/mips32/fpu/libc.abilist    |  2 ++
 .../unix/sysv/linux/mips/mips32/libpthread.abilist  |  2 +-
 .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist  |  2 ++
 .../unix/sysv/linux/mips/mips64/libpthread.abilist  |  2 +-
 .../unix/sysv/linux/mips/mips64/n32/libc.abilist    |  2 ++
 .../unix/sysv/linux/mips/mips64/n64/libc.abilist    |  2 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist    |  1 -
 .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist   |  2 ++
 .../sysv/linux/powerpc/powerpc32/libpthread.abilist |  2 +-
 .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist |  2 ++
 .../sysv/linux/powerpc/powerpc64/be/libc.abilist    |  2 ++
 .../linux/powerpc/powerpc64/be/libpthread.abilist   |  2 +-
 .../sysv/linux/powerpc/powerpc64/le/libc.abilist    |  2 ++
 .../linux/powerpc/powerpc64/le/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist     |  2 ++
 .../unix/sysv/linux/riscv/rv32/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist     |  2 ++
 .../unix/sysv/linux/riscv/rv64/libpthread.abilist   |  1 -
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist   |  2 ++
 .../unix/sysv/linux/s390/s390-32/libpthread.abilist |  2 +-
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist   |  2 ++
 .../unix/sysv/linux/s390/s390-64/libpthread.abilist |  2 +-
 sysdeps/unix/sysv/linux/sh/be/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/sh/le/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist  |  2 ++
 .../sysv/linux/sparc/sparc32/libpthread.abilist     |  2 +-
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist  |  2 ++
 .../sysv/linux/sparc/sparc64/libpthread.abilist     |  2 +-
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist      |  2 ++
 .../unix/sysv/linux/x86_64/64/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist     |  2 ++
 .../unix/sysv/linux/x86_64/x32/libpthread.abilist   |  1 -
 65 files changed, 99 insertions(+), 35 deletions(-)

diff --git a/nptl/Makefile b/nptl/Makefile
index 5a271fed87..d4cff359b5 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -176,6 +176,7 @@ routines = \
   pthread_setconcurrency \
   pthread_setname \
   pthread_setschedparam \
+  pthread_setschedprio \
   pthread_setspecific \
   pthread_sigmask \
   pthread_spin_destroy \
@@ -210,7 +211,6 @@ libpthread-routines = \
   nptl-init \
   pt-interp \
   pthread_create \
-  pthread_setschedprio \
   pthread_sigqueue \
   version \
 
diff --git a/nptl/Versions b/nptl/Versions
index 22d32df50f..49272dc998 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -174,6 +174,7 @@ libc {
     pthread_attr_getaffinity_np;
     pthread_attr_setaffinity_np;
     pthread_setaffinity_np;
+    pthread_setschedprio;
   }
   GLIBC_2.4 {
     pthread_mutex_consistent_np;
@@ -332,6 +333,7 @@ libc {
     pthread_setattr_default_np;
     pthread_setconcurrency;
     pthread_setname_np;
+    pthread_setschedprio;
     pthread_setspecific;
     pthread_spin_destroy;
     pthread_spin_init;
@@ -463,8 +465,7 @@ libpthread {
   }
 
   GLIBC_2.3.4 {
-    pthread_getaffinity_np;
-    pthread_setschedprio;
+    __libpthread_version_placeholder;
   }
 
   GLIBC_2.4 {
diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
index b1bee36f36..4d29a4c781 100644
--- a/nptl/libpthread-compat.c
+++ b/nptl/libpthread-compat.c
@@ -75,6 +75,11 @@ compat_symbol (libpthread, __libpthread_version_placeholder_1,
 	       __libpthread_version_placeholder, GLIBC_2_3_3);
 #endif
 
+#if (SHLIB_COMPAT (libpthread, GLIBC_2_3_4, GLIBC_2_4))
+compat_symbol (libpthread, __libpthread_version_placeholder_1,
+	       __libpthread_version_placeholder, GLIBC_2_3_4);
+#endif
+
 #if (SHLIB_COMPAT (libpthread, GLIBC_2_4, GLIBC_2_5))
 compat_symbol (libpthread, __libpthread_version_placeholder_1,
 	       __libpthread_version_placeholder, GLIBC_2_4);
diff --git a/nptl/pthread_setschedprio.c b/nptl/pthread_setschedprio.c
index bc60ff0451..7bb68d3231 100644
--- a/nptl/pthread_setschedprio.c
+++ b/nptl/pthread_setschedprio.c
@@ -22,10 +22,10 @@
 #include <sched.h>
 #include "pthreadP.h"
 #include <lowlevellock.h>
-
+#include <shlib-compat.h>
 
 int
-pthread_setschedprio (pthread_t threadid, int prio)
+__pthread_setschedprio (pthread_t threadid, int prio)
 {
   struct pthread *pd = (struct pthread *) threadid;
 
@@ -47,7 +47,7 @@ pthread_setschedprio (pthread_t threadid, int prio)
     param.sched_priority = pd->tpp->priomax;
 
   /* Try to set the scheduler information.  */
-  if (__glibc_unlikely (sched_setparam (pd->tid, &param) == -1))
+  if (__glibc_unlikely (__sched_setparam (pd->tid, &param) == -1))
     result = errno;
   else
     {
@@ -62,3 +62,10 @@ pthread_setschedprio (pthread_t threadid, int prio)
 
   return result;
 }
+versioned_symbol (libc, __pthread_setschedprio, pthread_setschedprio,
+		  GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_3_4, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_setschedprio, pthread_setschedprio,
+	       GLIBC_2_3_4);
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index ebe358d524..9f7d6ae38f 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1552,6 +1552,7 @@ GLIBC_2.17 pthread_setcanceltype F
 GLIBC_2.17 pthread_setconcurrency F
 GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedparam F
+GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_setspecific F
 GLIBC_2.17 pthread_sigmask F
 GLIBC_2.17 pthread_spin_destroy F
@@ -2418,6 +2419,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index c95d8d7e0f..8dc1044562 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_sigqueue F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 003eddb0e4..4db265b834 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2361,6 +2361,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2509,6 +2510,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index c002d68e5a..2646cf522e 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -12,7 +12,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 6e00b62a37..515ed90332 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1498,6 +1498,7 @@ GLIBC_2.32 pthread_setcanceltype F
 GLIBC_2.32 pthread_setconcurrency F
 GLIBC_2.32 pthread_setname_np F
 GLIBC_2.32 pthread_setschedparam F
+GLIBC_2.32 pthread_setschedprio F
 GLIBC_2.32 pthread_setspecific F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 pthread_spin_destroy F
@@ -2177,6 +2178,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index f3736f98af..a16e1fd63b 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -1,5 +1,4 @@
 GLIBC_2.32 __errno_location F
 GLIBC_2.32 pthread_create F
-GLIBC_2.32 pthread_setschedprio F
 GLIBC_2.32 pthread_sigqueue F
 GLIBC_2.32 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 94a9c08fd8..5279208f3b 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -285,6 +285,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
@@ -1795,6 +1796,7 @@ GLIBC_2.4 pthread_setcancelstate F
 GLIBC_2.4 pthread_setcanceltype F
 GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedparam F
+GLIBC_2.4 pthread_setschedprio F
 GLIBC_2.4 pthread_setspecific F
 GLIBC_2.4 pthread_sigmask F
 GLIBC_2.4 pthread_spin_destroy F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 7c62cde550..ffb33d5f4d 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -7,4 +7,3 @@ GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __errno_location F
 GLIBC_2.4 __libpthread_version_placeholder F
 GLIBC_2.4 pthread_create F
-GLIBC_2.4 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 7dee722baf..fdedeb4746 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -282,6 +282,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
@@ -1792,6 +1793,7 @@ GLIBC_2.4 pthread_setcancelstate F
 GLIBC_2.4 pthread_setcanceltype F
 GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedparam F
+GLIBC_2.4 pthread_setschedprio F
 GLIBC_2.4 pthread_setspecific F
 GLIBC_2.4 pthread_sigmask F
 GLIBC_2.4 pthread_spin_destroy F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 7c62cde550..ffb33d5f4d 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -7,4 +7,3 @@ GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __errno_location F
 GLIBC_2.4 __libpthread_version_placeholder F
 GLIBC_2.4 pthread_create F
-GLIBC_2.4 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 28cce579f2..baf0714d27 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1554,6 +1554,7 @@ GLIBC_2.29 pthread_setcanceltype F
 GLIBC_2.29 pthread_setconcurrency F
 GLIBC_2.29 pthread_setname_np F
 GLIBC_2.29 pthread_setschedparam F
+GLIBC_2.29 pthread_setschedprio F
 GLIBC_2.29 pthread_setspecific F
 GLIBC_2.29 pthread_sigmask F
 GLIBC_2.29 pthread_spin_destroy F
@@ -2361,6 +2362,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 97e0acd58e..b1a1a61de4 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.29 __errno_location F
 GLIBC_2.29 pthread_create F
-GLIBC_2.29 pthread_setschedprio F
 GLIBC_2.29 pthread_sigqueue F
 GLIBC_2.29 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 1f9b6d8d01..01853c3864 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2178,6 +2178,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2314,6 +2315,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index ac5627e09d..7592c1ba3c 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -8,7 +8,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 5c24eaef49..70c2ecdda2 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2358,6 +2358,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2497,6 +2498,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index c002d68e5a..2646cf522e 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -12,7 +12,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 2fade241ae..6756cbc7b7 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2213,6 +2213,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2350,6 +2351,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index ac5627e09d..7592c1ba3c 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -8,7 +8,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 4a036fce78..40a3655075 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -286,6 +286,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
@@ -1775,6 +1776,7 @@ GLIBC_2.4 pthread_setcancelstate F
 GLIBC_2.4 pthread_setcanceltype F
 GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedparam F
+GLIBC_2.4 pthread_setschedprio F
 GLIBC_2.4 pthread_setspecific F
 GLIBC_2.4 pthread_sigmask F
 GLIBC_2.4 pthread_spin_destroy F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 7c62cde550..ffb33d5f4d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -7,4 +7,3 @@ GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __errno_location F
 GLIBC_2.4 __libpthread_version_placeholder F
 GLIBC_2.4 pthread_create F
-GLIBC_2.4 pthread_setschedprio F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index ab7d5c54e1..7e1eea7b05 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2301,6 +2301,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2440,6 +2441,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index c002d68e5a..2646cf522e 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -12,7 +12,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 010fd7e917..666c8bff7e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1556,6 +1556,7 @@ GLIBC_2.18 pthread_setcanceltype F
 GLIBC_2.18 pthread_setconcurrency F
 GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedparam F
+GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_setspecific F
 GLIBC_2.18 pthread_sigmask F
 GLIBC_2.18 pthread_spin_destroy F
@@ -2412,6 +2413,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 7cf69ae9b7..f82659a575 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 26a0db4c36..3ba5ce2666 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1556,6 +1556,7 @@ GLIBC_2.18 pthread_setcanceltype F
 GLIBC_2.18 pthread_setconcurrency F
 GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedparam F
+GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_setspecific F
 GLIBC_2.18 pthread_sigmask F
 GLIBC_2.18 pthread_spin_destroy F
@@ -2409,6 +2410,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 7cf69ae9b7..f82659a575 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 18f84a75d5..005316e35e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2269,6 +2269,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2405,6 +2406,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index c467d55dc1..3509a430b1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -9,7 +9,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index a88f242493..eac98a8be5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2267,6 +2267,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2403,6 +2404,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index c467d55dc1..3509a430b1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -9,7 +9,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 5e2e7e666e..b37c7cf080 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2275,6 +2275,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2411,6 +2412,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 115c85a49a..5407edcacc 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2269,6 +2269,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2405,6 +2406,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 4e91b3f0a0..a54cb8e71c 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1599,6 +1599,7 @@ GLIBC_2.21 pthread_setcanceltype F
 GLIBC_2.21 pthread_setconcurrency F
 GLIBC_2.21 pthread_setname_np F
 GLIBC_2.21 pthread_setschedparam F
+GLIBC_2.21 pthread_setschedprio F
 GLIBC_2.21 pthread_setspecific F
 GLIBC_2.21 pthread_sigmask F
 GLIBC_2.21 pthread_spin_destroy F
@@ -2451,6 +2452,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index fe54b3c7bd..5b2ad8dc3c 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.21 __errno_location F
 GLIBC_2.21 pthread_create F
-GLIBC_2.21 pthread_setschedprio F
 GLIBC_2.21 pthread_sigqueue F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 77d3e6e2ac..c0fb296a70 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2315,6 +2315,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2467,6 +2468,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 59a3a9caab..06a3a16d91 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -12,7 +12,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 26dda60d76..06d3fcd881 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2348,6 +2348,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2500,6 +2501,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index e8ad3d3160..cf5ce60477 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2163,6 +2163,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2315,6 +2316,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 2483a4b02d..17d0dc8c9d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -6,7 +6,7 @@ GLIBC_2.3 __errno_location F
 GLIBC_2.3 pthread_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 937def80d1..c95af588ed 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1640,6 +1640,7 @@ GLIBC_2.17 pthread_setcanceltype F
 GLIBC_2.17 pthread_setconcurrency F
 GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedparam F
+GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_setspecific F
 GLIBC_2.17 pthread_sigmask F
 GLIBC_2.17 pthread_spin_destroy F
@@ -2614,6 +2615,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index c95d8d7e0f..8dc1044562 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_sigqueue F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 15a653f357..ffd9e7dd5c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1500,6 +1500,7 @@ GLIBC_2.33 pthread_setcanceltype F
 GLIBC_2.33 pthread_setconcurrency F
 GLIBC_2.33 pthread_setname_np F
 GLIBC_2.33 pthread_setschedparam F
+GLIBC_2.33 pthread_setschedprio F
 GLIBC_2.33 pthread_setspecific F
 GLIBC_2.33 pthread_sigmask F
 GLIBC_2.33 pthread_spin_destroy F
@@ -2179,6 +2180,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 8583d6e1b8..58c6081c6b 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -1,5 +1,4 @@
 GLIBC_2.33 __errno_location F
 GLIBC_2.33 pthread_create F
-GLIBC_2.33 pthread_setschedprio F
 GLIBC_2.33 pthread_sigqueue F
 GLIBC_2.33 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 2217cc5d4a..65e239fd36 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1544,6 +1544,7 @@ GLIBC_2.27 pthread_setcanceltype F
 GLIBC_2.27 pthread_setconcurrency F
 GLIBC_2.27 pthread_setname_np F
 GLIBC_2.27 pthread_setschedparam F
+GLIBC_2.27 pthread_setschedprio F
 GLIBC_2.27 pthread_setspecific F
 GLIBC_2.27 pthread_sigmask F
 GLIBC_2.27 pthread_spin_destroy F
@@ -2379,6 +2380,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index da077324ec..6d374d50a8 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.27 __errno_location F
 GLIBC_2.27 pthread_create F
-GLIBC_2.27 pthread_setschedprio F
 GLIBC_2.27 pthread_sigqueue F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 41461447e7..dc12675b89 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2314,6 +2314,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2465,6 +2466,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index fd86527d05..446bed0b3e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -13,7 +13,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index a10f057eaf..fec5890543 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2204,6 +2204,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2352,6 +2353,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 811d709114..ad141b690a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -9,7 +9,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 75b1aece01..a6deb10080 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2182,6 +2182,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2321,6 +2322,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index ac5627e09d..7592c1ba3c 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -8,7 +8,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 392dd88819..87e07af367 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2182,6 +2182,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2318,6 +2319,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index ac5627e09d..7592c1ba3c 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -8,7 +8,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 2b98f773a3..b4f6da7a0d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2310,6 +2310,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2458,6 +2459,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index c002d68e5a..2646cf522e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -12,7 +12,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index db9dcf6978..a809cdc6b9 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2235,6 +2235,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2371,6 +2372,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index ac5627e09d..7592c1ba3c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -8,7 +8,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index deaa9991d4..a809de67b6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2192,6 +2192,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
 GLIBC_2.3.4 pthread_attr_setaffinity_np F
 GLIBC_2.3.4 pthread_getaffinity_np F
 GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
 GLIBC_2.3.4 regexec F
 GLIBC_2.3.4 sched_getaffinity F
 GLIBC_2.3.4 sched_setaffinity F
@@ -2330,6 +2331,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 973e0d152a..309e1a4f7a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -7,7 +7,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.3.2 __libpthread_version_placeholder F
 GLIBC_2.3.3 __libpthread_version_placeholder F
-GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.3.4 __libpthread_version_placeholder F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
 GLIBC_2.4 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 07fbab152e..030971c133 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1559,6 +1559,7 @@ GLIBC_2.16 pthread_setcanceltype F
 GLIBC_2.16 pthread_setconcurrency F
 GLIBC_2.16 pthread_setname_np F
 GLIBC_2.16 pthread_setschedparam F
+GLIBC_2.16 pthread_setschedprio F
 GLIBC_2.16 pthread_setspecific F
 GLIBC_2.16 pthread_sigmask F
 GLIBC_2.16 pthread_spin_destroy F
@@ -2433,6 +2434,7 @@ GLIBC_2.34 pthread_setaffinity_np F
 GLIBC_2.34 pthread_setattr_default_np F
 GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
+GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 551f630afe..47a9fcae50 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.16 __errno_location F
 GLIBC_2.16 pthread_create F
-GLIBC_2.16 pthread_setschedprio F
 GLIBC_2.16 pthread_sigqueue F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 22/23] nptl: Move pthread_sigqueue into libc
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (20 preceding siblings ...)
  2021-05-12 16:59 ` [PATCH 21/23] nptl: Move pthread_setschedprio " Florian Weimer
@ 2021-05-12 16:59 ` Florian Weimer
  2021-05-14 14:48   ` Adhemerval Zanella
  2021-05-12 16:59 ` [PATCH 23/23] nptl: Move semi-public __pthread_get_minstack symbol " Florian Weimer
  2021-05-17  9:12 ` [PATCH 00/23] nptl: Move almost all remaining functions " Florian Weimer
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:59 UTC (permalink / raw)
  To: libc-alpha

The symbol was moved using scripts/move-symbol-to-libc.py.

The GLIBC_2.11 version is now empty, so add a placeholder symbol.
---
 nptl/Makefile                                         |  2 +-
 nptl/Versions                                         |  6 +++++-
 nptl/libpthread-compat.c                              |  5 +++++
 nptl/pthread_sigqueue.c                               | 11 ++++++++---
 sysdeps/unix/sysv/linux/aarch64/libc.abilist          |  2 ++
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist    |  1 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist      |  2 +-
 sysdeps/unix/sysv/linux/arc/libc.abilist              |  2 ++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist        |  1 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist     |  2 +-
 sysdeps/unix/sysv/linux/arm/le/libc.abilist           |  2 ++
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist     |  2 +-
 sysdeps/unix/sysv/linux/csky/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist       |  1 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist       |  2 +-
 sysdeps/unix/sysv/linux/i386/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist       |  2 +-
 sysdeps/unix/sysv/linux/ia64/libc.abilist             |  2 ++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist       |  2 +-
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist    |  2 ++
 .../unix/sysv/linux/m68k/coldfire/libpthread.abilist  |  2 +-
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist      |  2 ++
 .../unix/sysv/linux/m68k/m680x0/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist    |  2 ++
 .../unix/sysv/linux/microblaze/be/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist    |  2 ++
 .../unix/sysv/linux/microblaze/le/libpthread.abilist  |  1 -
 sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist  |  2 ++
 .../unix/sysv/linux/mips/mips32/libpthread.abilist    |  2 +-
 .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist    |  2 ++
 .../unix/sysv/linux/mips/mips64/libpthread.abilist    |  2 +-
 sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist  |  2 ++
 sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist  |  2 ++
 sysdeps/unix/sysv/linux/nios2/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist      |  1 -
 .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist     |  2 ++
 .../sysv/linux/powerpc/powerpc32/libpthread.abilist   |  2 +-
 .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist   |  2 ++
 .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist |  2 ++
 .../linux/powerpc/powerpc64/be/libpthread.abilist     |  2 +-
 .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist |  2 ++
 .../linux/powerpc/powerpc64/le/libpthread.abilist     |  1 -
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist |  1 -
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist     |  2 ++
 .../unix/sysv/linux/s390/s390-32/libpthread.abilist   |  2 +-
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist     |  2 ++
 .../unix/sysv/linux/s390/s390-64/libpthread.abilist   |  2 +-
 sysdeps/unix/sysv/linux/sh/be/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist      |  2 +-
 sysdeps/unix/sysv/linux/sh/le/libc.abilist            |  2 ++
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist      |  2 +-
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist    |  2 ++
 .../unix/sysv/linux/sparc/sparc32/libpthread.abilist  |  2 +-
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist    |  2 ++
 .../unix/sysv/linux/sparc/sparc64/libpthread.abilist  |  2 +-
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist        |  2 ++
 sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist  |  2 +-
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist       |  2 ++
 sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist |  1 -
 65 files changed, 102 insertions(+), 34 deletions(-)

diff --git a/nptl/Makefile b/nptl/Makefile
index d4cff359b5..bd5a9ce51f 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -179,6 +179,7 @@ routines = \
   pthread_setschedprio \
   pthread_setspecific \
   pthread_sigmask \
+  pthread_sigqueue \
   pthread_spin_destroy \
   pthread_spin_init \
   pthread_spin_lock \
@@ -211,7 +212,6 @@ libpthread-routines = \
   nptl-init \
   pt-interp \
   pthread_create \
-  pthread_sigqueue \
   version \
 
 libpthread-shared-only-routines = \
diff --git a/nptl/Versions b/nptl/Versions
index 49272dc998..2097e517ae 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -187,6 +187,9 @@ libc {
     pthread_mutexattr_setprotocol;
     pthread_mutexattr_setrobust_np;
   }
+  GLIBC_2.11 {
+    pthread_sigqueue;
+  }
   GLIBC_2.12 {
     pthread_getname_np;
     pthread_mutex_consistent;
@@ -335,6 +338,7 @@ libc {
     pthread_setname_np;
     pthread_setschedprio;
     pthread_setspecific;
+    pthread_sigqueue;
     pthread_spin_destroy;
     pthread_spin_init;
     pthread_spin_lock;
@@ -473,7 +477,7 @@ libpthread {
   };
 
   GLIBC_2.11 {
-    pthread_sigqueue;
+    __libpthread_version_placeholder;
   };
 
   GLIBC_2.12 {
diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
index 4d29a4c781..7e3e7aa0c3 100644
--- a/nptl/libpthread-compat.c
+++ b/nptl/libpthread-compat.c
@@ -85,6 +85,11 @@ compat_symbol (libpthread, __libpthread_version_placeholder_1,
 	       __libpthread_version_placeholder, GLIBC_2_4);
 #endif
 
+#if SHLIB_COMPAT (libpthread, GLIBC_2_11, GLIBC_2_12)
+compat_symbol (libpthread, __libpthread_version_placeholder_1,
+	       __libpthread_version_placeholder, GLIBC_2_11);
+#endif
+
 #if SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_13)
 compat_symbol (libpthread, __libpthread_version_placeholder_1,
 	       __libpthread_version_placeholder, GLIBC_2_12);
diff --git a/nptl/pthread_sigqueue.c b/nptl/pthread_sigqueue.c
index 3ffb595489..2a0467ad7a 100644
--- a/nptl/pthread_sigqueue.c
+++ b/nptl/pthread_sigqueue.c
@@ -23,10 +23,10 @@
 #include <pthreadP.h>
 #include <tls.h>
 #include <sysdep.h>
-
+#include <shlib-compat.h>
 
 int
-pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
+__pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
 {
 #ifdef __NR_rt_tgsigqueueinfo
   struct pthread *pd = (struct pthread *) threadid;
@@ -52,7 +52,7 @@ pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
   info.si_signo = signo;
   info.si_code = SI_QUEUE;
   info.si_pid = pid;
-  info.si_uid = getuid ();
+  info.si_uid = __getuid ();
   info.si_value = value;
 
   /* We have a special syscall to do the work.  */
@@ -64,3 +64,8 @@ pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
   return ENOSYS;
 #endif
 }
+versioned_symbol (libc, __pthread_sigqueue, pthread_sigqueue, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_11, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_sigqueue, pthread_sigqueue, GLIBC_2_11);
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 9f7d6ae38f..c8920ed79b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1555,6 +1555,7 @@ GLIBC_2.17 pthread_setschedparam F
 GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_setspecific F
 GLIBC_2.17 pthread_sigmask F
+GLIBC_2.17 pthread_sigqueue F
 GLIBC_2.17 pthread_spin_destroy F
 GLIBC_2.17 pthread_spin_init F
 GLIBC_2.17 pthread_spin_lock F
@@ -2421,6 +2422,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 8dc1044562..3c03fcc17b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_sigqueue F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 4db265b834..dbc4a25aa3 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1817,6 +1817,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x458
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -2512,6 +2513,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 2646cf522e..c8f065b787 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 515ed90332..de790e8ecf 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1501,6 +1501,7 @@ GLIBC_2.32 pthread_setschedparam F
 GLIBC_2.32 pthread_setschedprio F
 GLIBC_2.32 pthread_setspecific F
 GLIBC_2.32 pthread_sigmask F
+GLIBC_2.32 pthread_sigqueue F
 GLIBC_2.32 pthread_spin_destroy F
 GLIBC_2.32 pthread_spin_init F
 GLIBC_2.32 pthread_spin_lock F
@@ -2180,6 +2181,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index a16e1fd63b..1d363aa47f 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -1,4 +1,3 @@
 GLIBC_2.32 __errno_location F
 GLIBC_2.32 pthread_create F
-GLIBC_2.32 pthread_sigqueue F
 GLIBC_2.32 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 5279208f3b..93ca2a5b28 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -30,6 +30,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -287,6 +288,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index ffb33d5f4d..0ad6524820 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index fdedeb4746..935b2f99bb 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -30,6 +30,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -284,6 +285,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index ffb33d5f4d..0ad6524820 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index baf0714d27..32f14e48f6 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1557,6 +1557,7 @@ GLIBC_2.29 pthread_setschedparam F
 GLIBC_2.29 pthread_setschedprio F
 GLIBC_2.29 pthread_setspecific F
 GLIBC_2.29 pthread_sigmask F
+GLIBC_2.29 pthread_sigqueue F
 GLIBC_2.29 pthread_spin_destroy F
 GLIBC_2.29 pthread_spin_init F
 GLIBC_2.29 pthread_spin_lock F
@@ -2364,6 +2365,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index b1a1a61de4..d2f66f45ff 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.29 __errno_location F
 GLIBC_2.29 pthread_create F
-GLIBC_2.29 pthread_sigqueue F
 GLIBC_2.29 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 01853c3864..4264754c4d 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -30,6 +30,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x404
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -2317,6 +2318,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 7592c1ba3c..cc941573b6 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 70c2ecdda2..519a060643 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1822,6 +1822,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -2500,6 +2501,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 2646cf522e..c8f065b787 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 6756cbc7b7..7a13ab08f6 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -30,6 +30,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x438
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -2353,6 +2354,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 7592c1ba3c..cc941573b6 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 40a3655075..9b378e4447 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -30,6 +30,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 __m68k_read_tp F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
@@ -288,6 +289,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index ffb33d5f4d..0ad6524820 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 7e1eea7b05..b6d0f57e9d 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1778,6 +1778,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 __m68k_read_tp F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
@@ -2443,6 +2444,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 2646cf522e..c8f065b787 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 666c8bff7e..ac5d3656c7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1559,6 +1559,7 @@ GLIBC_2.18 pthread_setschedparam F
 GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_setspecific F
 GLIBC_2.18 pthread_sigmask F
+GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.18 pthread_spin_destroy F
 GLIBC_2.18 pthread_spin_init F
 GLIBC_2.18 pthread_spin_lock F
@@ -2415,6 +2416,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index f82659a575..921e604dbe 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 3ba5ce2666..3c47c1c907 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1559,6 +1559,7 @@ GLIBC_2.18 pthread_setschedparam F
 GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_setspecific F
 GLIBC_2.18 pthread_sigmask F
+GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.18 pthread_spin_destroy F
 GLIBC_2.18 pthread_spin_init F
 GLIBC_2.18 pthread_spin_lock F
@@ -2412,6 +2413,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index f82659a575..921e604dbe 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.18 __errno_location F
 GLIBC_2.18 pthread_create F
-GLIBC_2.18 pthread_sigqueue F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 005316e35e..f9b4a578a9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1382,6 +1382,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 ntp_gettimex F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
@@ -2408,6 +2409,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 3509a430b1..a5f3d5ce2a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -1,6 +1,6 @@
 GLIBC_2.0 __errno_location F
 GLIBC_2.0 pthread_create F
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index eac98a8be5..9e6c0e1c57 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1382,6 +1382,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 ntp_gettimex F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
@@ -2406,6 +2407,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 3509a430b1..a5f3d5ce2a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -1,6 +1,6 @@
 GLIBC_2.0 __errno_location F
 GLIBC_2.0 pthread_create F
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 pthread_create F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index b37c7cf080..d52f480650 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1382,6 +1382,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 ntp_gettimex F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
@@ -2414,6 +2415,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 5407edcacc..86727e2e50 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1380,6 +1380,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 ntp_gettimex F
 GLIBC_2.12 pthread_getname_np F
 GLIBC_2.12 pthread_mutex_consistent F
@@ -2408,6 +2409,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index a54cb8e71c..af7e10feb6 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1602,6 +1602,7 @@ GLIBC_2.21 pthread_setschedparam F
 GLIBC_2.21 pthread_setschedprio F
 GLIBC_2.21 pthread_setspecific F
 GLIBC_2.21 pthread_sigmask F
+GLIBC_2.21 pthread_sigqueue F
 GLIBC_2.21 pthread_spin_destroy F
 GLIBC_2.21 pthread_spin_init F
 GLIBC_2.21 pthread_spin_lock F
@@ -2454,6 +2455,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 5b2ad8dc3c..f36733746e 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.21 __errno_location F
 GLIBC_2.21 pthread_create F
-GLIBC_2.21 pthread_sigqueue F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index c0fb296a70..9591c4b782 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1783,6 +1783,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -2470,6 +2471,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 06a3a16d91..84a1592904 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 06d3fcd881..f539198508 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1783,6 +1783,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -2503,6 +2504,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index cf5ce60477..f4d4d39e38 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -30,6 +30,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x438
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -2318,6 +2319,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 17d0dc8c9d..b66279a352 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index c95af588ed..632acd4d74 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1643,6 +1643,7 @@ GLIBC_2.17 pthread_setschedparam F
 GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_setspecific F
 GLIBC_2.17 pthread_sigmask F
+GLIBC_2.17 pthread_sigqueue F
 GLIBC_2.17 pthread_spin_destroy F
 GLIBC_2.17 pthread_spin_init F
 GLIBC_2.17 pthread_spin_lock F
@@ -2617,6 +2618,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 8dc1044562..3c03fcc17b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.17 __errno_location F
 GLIBC_2.17 pthread_create F
-GLIBC_2.17 pthread_sigqueue F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index ffd9e7dd5c..7080ea1119 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1503,6 +1503,7 @@ GLIBC_2.33 pthread_setschedparam F
 GLIBC_2.33 pthread_setschedprio F
 GLIBC_2.33 pthread_setspecific F
 GLIBC_2.33 pthread_sigmask F
+GLIBC_2.33 pthread_sigqueue F
 GLIBC_2.33 pthread_spin_destroy F
 GLIBC_2.33 pthread_spin_init F
 GLIBC_2.33 pthread_spin_lock F
@@ -2182,6 +2183,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 58c6081c6b..e9cded0b3c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -1,4 +1,3 @@
 GLIBC_2.33 __errno_location F
 GLIBC_2.33 pthread_create F
-GLIBC_2.33 pthread_sigqueue F
 GLIBC_2.33 thrd_create F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 65e239fd36..dbdf580afc 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1547,6 +1547,7 @@ GLIBC_2.27 pthread_setschedparam F
 GLIBC_2.27 pthread_setschedprio F
 GLIBC_2.27 pthread_setspecific F
 GLIBC_2.27 pthread_sigmask F
+GLIBC_2.27 pthread_sigqueue F
 GLIBC_2.27 pthread_spin_destroy F
 GLIBC_2.27 pthread_spin_init F
 GLIBC_2.27 pthread_spin_lock F
@@ -2382,6 +2383,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 6d374d50a8..07a3c7f01d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.27 __errno_location F
 GLIBC_2.27 pthread_create F
-GLIBC_2.27 pthread_sigqueue F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
 GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index dc12675b89..ba6f93488f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1775,6 +1775,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -2468,6 +2469,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 446bed0b3e..faae6bcf76 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.19 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index fec5890543..4e814da843 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -34,6 +34,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x438
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -2355,6 +2356,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index ad141b690a..ac3a2834dc 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.19 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index a6deb10080..ed0575e545 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -34,6 +34,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -2324,6 +2325,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 7592c1ba3c..cc941573b6 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 87e07af367..23c356ea4d 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -34,6 +34,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -2321,6 +2322,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 7592c1ba3c..cc941573b6 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index b4f6da7a0d..dd24236ad8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1776,6 +1776,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x21c
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -2461,6 +2462,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 2646cf522e..c8f065b787 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
 GLIBC_2.1 pthread_create F
 GLIBC_2.1.1 __libpthread_version_placeholder F
 GLIBC_2.1.2 __libpthread_version_placeholder F
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index a809cdc6b9..b3fcaadd70 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -34,6 +34,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x438
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -2374,6 +2375,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 7592c1ba3c..cc941573b6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2 __errno_location F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index a809de67b6..ea61127067 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -30,6 +30,7 @@ GLIBC_2.11 mkostemps F
 GLIBC_2.11 mkostemps64 F
 GLIBC_2.11 mkstemps F
 GLIBC_2.11 mkstemps64 F
+GLIBC_2.11 pthread_sigqueue F
 GLIBC_2.12 _sys_errlist D 0x438
 GLIBC_2.12 _sys_nerr D 0x4
 GLIBC_2.12 ntp_gettimex F
@@ -2333,6 +2334,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 309e1a4f7a..d3abfb7d11 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -1,4 +1,4 @@
-GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.11 __libpthread_version_placeholder F
 GLIBC_2.12 __libpthread_version_placeholder F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.2.5 __errno_location F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 030971c133..8425366915 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1562,6 +1562,7 @@ GLIBC_2.16 pthread_setschedparam F
 GLIBC_2.16 pthread_setschedprio F
 GLIBC_2.16 pthread_setspecific F
 GLIBC_2.16 pthread_sigmask F
+GLIBC_2.16 pthread_sigqueue F
 GLIBC_2.16 pthread_spin_destroy F
 GLIBC_2.16 pthread_spin_init F
 GLIBC_2.16 pthread_spin_lock F
@@ -2436,6 +2437,7 @@ GLIBC_2.34 pthread_setconcurrency F
 GLIBC_2.34 pthread_setname_np F
 GLIBC_2.34 pthread_setschedprio F
 GLIBC_2.34 pthread_setspecific F
+GLIBC_2.34 pthread_sigqueue F
 GLIBC_2.34 pthread_spin_destroy F
 GLIBC_2.34 pthread_spin_init F
 GLIBC_2.34 pthread_spin_lock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 47a9fcae50..af42dea518 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -1,6 +1,5 @@
 GLIBC_2.16 __errno_location F
 GLIBC_2.16 pthread_create F
-GLIBC_2.16 pthread_sigqueue F
 GLIBC_2.18 __libpthread_version_placeholder F
 GLIBC_2.28 thrd_create F
 GLIBC_2.30 __libpthread_version_placeholder F
-- 
2.31.1



^ permalink raw reply	[flat|nested] 63+ messages in thread

* [PATCH 23/23] nptl: Move semi-public __pthread_get_minstack symbol into libc
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (21 preceding siblings ...)
  2021-05-12 16:59 ` [PATCH 22/23] nptl: Move pthread_sigqueue " Florian Weimer
@ 2021-05-12 16:59 ` Florian Weimer
  2021-05-14 14:50   ` Adhemerval Zanella
  2021-05-17  9:12 ` [PATCH 00/23] nptl: Move almost all remaining functions " Florian Weimer
  23 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-12 16:59 UTC (permalink / raw)
  To: libc-alpha

No abilist updates here because it is a GLIBC_PRIVATE symbol.

It's also necessary to move nptl_version into pthread_create, so
that it still ends up in static binaries.
---
 nptl/Versions         |  2 +-
 nptl/nptl-init.c      | 19 -------------------
 nptl/nptl-stack.c     | 17 +++++++++++++++++
 nptl/pthreadP.h       |  1 +
 nptl/pthread_create.c |  4 ++++
 5 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/nptl/Versions b/nptl/Versions
index 2097e517ae..016a9bef09 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -408,6 +408,7 @@ libc {
     __pthread_disable_asynccancel;
     __pthread_enable_asynccancel;
     __pthread_force_elision;
+    __pthread_get_minstack;
     __pthread_getattr_default_np;
     __pthread_getattr_default_np;
     __pthread_keys;
@@ -510,7 +511,6 @@ libpthread {
   GLIBC_PRIVATE {
     __pthread_clock_gettime;
     __pthread_clock_settime;
-    __pthread_get_minstack;
     __pthread_initialize_minimal;
   }
 }
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 732e580355..5a460aedba 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -38,28 +38,9 @@
 #include <pthread_mutex_conf.h>
 #include <nptl-stack.h>
 
-/* Version of the library, used in libthread_db to detect mismatches.  */
-static const char nptl_version[] __attribute_used__ = VERSION;
-
 void
 __pthread_initialize_minimal_internal (void)
 {
 }
 strong_alias (__pthread_initialize_minimal_internal,
 	      __pthread_initialize_minimal)
-
-
-/* This function is internal (it has a GLIBC_PRIVATE) version, but it
-   is widely used (either via weak symbol, or dlsym) to obtain the
-   __static_tls_size value.  This value is then used to adjust the
-   value of the stack size attribute, so that applications receive the
-   full requested stack size, not diminished by the TCB and static TLS
-   allocation on the stack.  Once the TCB is separately allocated,
-   this function should be removed or renamed (if it is still
-   necessary at that point).  */
-size_t
-__pthread_get_minstack (const pthread_attr_t *attr)
-{
-  return (GLRO(dl_pagesize) + __nptl_tls_static_size_for_stack ()
-	  + PTHREAD_STACK_MIN);
-}
diff --git a/nptl/nptl-stack.c b/nptl/nptl-stack.c
index 7853c105be..1a0c460ba8 100644
--- a/nptl/nptl-stack.c
+++ b/nptl/nptl-stack.c
@@ -19,6 +19,7 @@
 
 #include <nptl-stack.h>
 #include <ldsodefs.h>
+#include <pthreadP.h>
 
 /* Maximum size in kB of cache.  40MiBi by default.  */
 static const size_t stack_cache_maxsize = 40 * 1024 * 1024;
@@ -128,3 +129,19 @@ __nptl_deallocate_stack (struct pthread *pd)
   lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
 }
 libc_hidden_def (__nptl_deallocate_stack)
+
+/* This function is internal (it has a GLIBC_PRIVATE) version, but it
+   is widely used (either via weak symbol, or dlsym) to obtain the
+   __static_tls_size value.  This value is then used to adjust the
+   value of the stack size attribute, so that applications receive the
+   full requested stack size, not diminished by the TCB and static TLS
+   allocation on the stack.  Once the TCB is separately allocated,
+   this function should be removed or renamed (if it is still
+   necessary at that point).  */
+size_t
+__pthread_get_minstack (const pthread_attr_t *attr)
+{
+  return (GLRO(dl_pagesize) + __nptl_tls_static_size_for_stack ()
+	  + PTHREAD_STACK_MIN);
+}
+libc_hidden_def (__pthread_get_minstack)
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index 3e9da9c7ea..c6b82851bf 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -340,6 +340,7 @@ extern unsigned long int __fork_generation attribute_hidden;
 extern unsigned long int *__fork_generation_pointer attribute_hidden;
 
 extern size_t __pthread_get_minstack (const pthread_attr_t *attr);
+libc_hidden_proto (__pthread_get_minstack)
 
 /* Namespace save aliases.  */
 extern int __pthread_getschedparam (pthread_t thread_id, int *policy,
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index 43f3722f57..220edda917 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -36,6 +36,7 @@
 #include <tls-setup.h>
 #include "libioP.h"
 #include <sys/single_threaded.h>
+#include <version.h>
 
 #include <shlib-compat.h>
 
@@ -56,6 +57,9 @@ static struct rtld_global *__nptl_rtld_global __attribute_used__
   = &_rtld_global;
 #endif
 
+/* Version of the library, used in libthread_db to detect mismatches.  */
+static const char nptl_version[] __attribute_used__ = VERSION;
+
 /* Code to allocate and deallocate a stack.  */
 #include "allocatestack.c"
 
-- 
2.31.1


^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 01/23] nptl: Move __nptl_initial_report_events into ld.so/startup code
  2021-05-12 16:57 ` [PATCH 01/23] nptl: Move __nptl_initial_report_events into ld.so/startup code Florian Weimer
@ 2021-05-13 17:51   ` Adhemerval Zanella
  2021-05-17  8:06     ` Florian Weimer
  0 siblings, 1 reply; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 17:51 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:57, Florian Weimer via Libc-alpha wrote:
> The initialization of the report_events TCB field is now performed
> in __tls_init_tp instead of __pthread_initialize_minimal_internal
> (in libpthread).
> 
> The events interface is difficult to test becaue GDB stopped using it

s/becaue/because

> in 2015.  The td_thr_get_info change to ingore lookup issues is

s/ingore/ignore

> enough to support GDB with this change.

Should we start to deprecate and remove such interfaces? Your patch is
already ignoring the possible error on td_thr_get_info.

Not sure how backwards compatible regarding debugging interface we 
should be.

Regardless, it looks good to me.

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

> ---
>  nptl/Versions                 |  1 +
>  nptl/nptl-init.c              | 12 ------------
>  nptl/pthreadP.h               |  5 +++++
>  nptl_db/db_info.c             |  3 ---
>  nptl_db/structs.def           |  2 +-
>  nptl_db/td_thr_get_info.c     | 11 +++++++++--
>  sysdeps/nptl/dl-tls_init_tp.c |  8 ++++++++
>  7 files changed, 24 insertions(+), 18 deletions(-)
> 
> diff --git a/nptl/Versions b/nptl/Versions
> index 1dd3fbc18c..fb3379b788 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -497,6 +497,7 @@ libpthread {
>  
>  ld {
>    GLIBC_PRIVATE {
> +     __nptl_initial_report_events;
>       __nptl_set_robust_list_avail;
>    }
>  }
> \ No newline at end of file

Ok.

> diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
> index 16fb66bdf5..f4b86fbfaf 100644
> --- a/nptl/nptl-init.c
> +++ b/nptl/nptl-init.c
> @@ -96,21 +96,9 @@ sigcancel_handler (int sig, siginfo_t *si, void *ctx)
>  extern void **__libc_dl_error_tsd (void) __attribute__ ((const));
>  
>  
> -/* This can be set by the debugger before initialization is complete.  */
> -static bool __nptl_initial_report_events __attribute_used__;
> -
>  void
>  __pthread_initialize_minimal_internal (void)
>  {
> -  /* Partial initialization of the TCB already happened in TLS_INIT_TP
> -     and __tls_init_tp.  */
> -  struct pthread *pd = THREAD_SELF;
> -
> -  /* Before initializing GL (dl_stack_user), the debugger could not
> -     find us and had to set __nptl_initial_report_events.  Propagate
> -     its setting.  */
> -  THREAD_SETMEM (pd, report_events, __nptl_initial_report_events);
> -
>    struct sigaction sa;
>    __sigemptyset (&sa.sa_mask);
>  

Ok.

> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index 5b844f331a..dc2aece37e 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -328,6 +328,11 @@ extern int __pthread_attr_init (pthread_attr_t *attr);
>  libc_hidden_proto (__pthread_attr_init)
>  extern int __pthread_attr_init_2_0 (pthread_attr_t *attr);
>  
> +/* Part of the legacy thread events interface (which has been
> +   superseded by PTRACE_O_TRACECLONE).  This can be set by the
> +   debugger before initialization is complete.  */
> +extern bool __nptl_initial_report_events;
> +rtld_hidden_proto (__nptl_initial_report_events)
>  
>  /* Event handlers for libthread_db interface.  */
>  extern void __nptl_create_event (void);

Ok.

> diff --git a/nptl_db/db_info.c b/nptl_db/db_info.c
> index bed6ed486e..b39aebb78c 100644
> --- a/nptl_db/db_info.c
> +++ b/nptl_db/db_info.c
> @@ -42,9 +42,6 @@ typedef struct rtld_global rtld_global;
>  typedef struct dtv_slotinfo_list dtv_slotinfo_list;
>  typedef struct dtv_slotinfo dtv_slotinfo;
>  
> -/* Actually static in nptl/init.c, but we only need it for typeof.  */
> -extern bool __nptl_initial_report_events;
> -
>  #define schedparam_sched_priority schedparam.sched_priority
>  
>  #define eventbuf_eventmask eventbuf.eventmask

Ok.

> diff --git a/nptl_db/structs.def b/nptl_db/structs.def
> index 9173e1ab8f..275c12bc7a 100644
> --- a/nptl_db/structs.def
> +++ b/nptl_db/structs.def
> @@ -80,7 +80,7 @@ DB_FUNCTION (__nptl_death_event)
>  DB_SYMBOL (__nptl_threads_events)
>  DB_MAIN_VARIABLE (__nptl_nthreads)
>  DB_VARIABLE (__nptl_last_event)
> -DB_VARIABLE (__nptl_initial_report_events)
> +DB_RTLD_VARIABLE (__nptl_initial_report_events)
>  
>  DB_MAIN_ARRAY_VARIABLE (__pthread_keys)
>  DB_STRUCT (pthread_key_struct)

Ok.

> diff --git a/nptl_db/td_thr_get_info.c b/nptl_db/td_thr_get_info.c
> index 002a22a5be..01af021d2a 100644
> --- a/nptl_db/td_thr_get_info.c
> +++ b/nptl_db/td_thr_get_info.c
> @@ -41,8 +41,15 @@ td_thr_get_info (const td_thrhandle_t *th, td_thrinfo_t *infop)
>        schedpolicy = SCHED_OTHER;
>        schedprio = 0;
>        tid = 0;
> -      err = DB_GET_VALUE (report_events, th->th_ta_p,
> -			  __nptl_initial_report_events, 0);
> +
> +      /* Ignore errors to obtain the __nptl_initial_report_events
> +	 value because GDB no longer uses the events interface, and
> +	 other libthread_db consumers hopefully can handle different
> +	 libpthread/lds.o load orders.  */
> +      report_events = 0;
> +      (void) DB_GET_VALUE (report_events, th->th_ta_p,
> +			   __nptl_initial_report_events, 0);
> +      err = TD_OK;
>      }
>    else
>      {

Ok.

> diff --git a/sysdeps/nptl/dl-tls_init_tp.c b/sysdeps/nptl/dl-tls_init_tp.c
> index f1aaa5aa9d..1f7790297f 100644
> --- a/sysdeps/nptl/dl-tls_init_tp.c
> +++ b/sysdeps/nptl/dl-tls_init_tp.c
> @@ -27,6 +27,9 @@ bool __nptl_set_robust_list_avail __attribute__ ((nocommon));
>  rtld_hidden_data_def (__nptl_set_robust_list_avail)
>  #endif
>  
> +bool __nptl_initial_report_events __attribute__ ((nocommon));
> +rtld_hidden_def (__nptl_initial_report_events)
> +
>  #ifdef SHARED
>  /* Dummy implementation.  See __rtld_mutex_init.  */
>  static int
> @@ -63,6 +66,11 @@ __tls_init_tp (void)
>     THREAD_SETMEM (pd, specific[0], &pd->specific_1stblock[0]);
>     THREAD_SETMEM (pd, user_stack, true);
>  
> +  /* Before initializing GL (dl_stack_user), the debugger could not
> +     find us and had to set __nptl_initial_report_events.  Propagate
> +     its setting.  */
> +  THREAD_SETMEM (pd, report_events, __nptl_initial_report_events);
> +
>    /* Initialize the robust mutex data.  */
>    {
>  #if __PTHREAD_MUTEX_HAVE_PREV
> 

Ok.

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 02/23] nptl: Move __nptl_create_event, __nptl_death_event into libc
  2021-05-12 16:57 ` [PATCH 02/23] nptl: Move __nptl_create_event, __nptl_death_event into libc Florian Weimer
@ 2021-05-13 18:04   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 18:04 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:57, Florian Weimer via Libc-alpha wrote:
> In libthread_db, use the exported GLIBC_PRIVATE symbols directly
> instead of relying on _thread_db_* variables in libpthread
> (which used to be created by the DB_FUNCTION macros).

LGTM, thanks.

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

> ---
>  nptl/Makefile          |  2 +-
>  nptl/Versions          |  2 ++
>  nptl/events.c          |  4 ++--
>  nptl/pthreadP.h        |  4 ++--
>  nptl_db/db-symbols.awk |  1 +
>  nptl_db/structs.def    | 11 +++++++----
>  6 files changed, 15 insertions(+), 9 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 37a762d530..b57b010779 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -41,6 +41,7 @@ routines = \
>    elision-timed \
>    elision-trylock \
>    elision-unlock \
> +  events \
>    futex-internal \
>    libc-cleanup \
>    libc_multiple_threads \

Ok.

> @@ -200,7 +201,6 @@ shared-only-routines = forward
>  static-only-routines = pthread_atfork
>  
>  libpthread-routines = \
> -  events \
>    libpthread-compat \
>    nptl-init \
>    pt-interp \

Ok.

> diff --git a/nptl/Versions b/nptl/Versions
> index fb3379b788..6e2def1b4c 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -351,6 +351,8 @@ libc {
>      tss_set;
>    }
>    GLIBC_PRIVATE {
> +     __nptl_create_event;
> +     __nptl_death_event;
>      __default_pthread_attr;
>      __default_pthread_attr_lock;
>      __futex_abstimed_wait64;

Ok.

> diff --git a/nptl/events.c b/nptl/events.c
> index 5a07e58402..ab57fefd48 100644
> --- a/nptl/events.c
> +++ b/nptl/events.c
> @@ -24,10 +24,10 @@ void
>  __nptl_create_event (void)
>  {
>  }
> -hidden_def (__nptl_create_event)
> +libc_hidden_def (__nptl_create_event)
>  
>  void
>  __nptl_death_event (void)
>  {
>  }
> -hidden_def (__nptl_death_event)
> +libc_hidden_def (__nptl_death_event)

Ok.

> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index dc2aece37e..a4a87cb549 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -337,8 +337,8 @@ rtld_hidden_proto (__nptl_initial_report_events)
>  /* Event handlers for libthread_db interface.  */
>  extern void __nptl_create_event (void);
>  extern void __nptl_death_event (void);
> -hidden_proto (__nptl_create_event)
> -hidden_proto (__nptl_death_event)
> +libc_hidden_proto (__nptl_create_event)
> +libc_hidden_proto (__nptl_death_event)
>  
>  /* The fork generation counter, defined in libpthread.  */
>  extern unsigned long int __fork_generation attribute_hidden;

Ok.

> diff --git a/nptl_db/db-symbols.awk b/nptl_db/db-symbols.awk
> index 9e981537c8..6f326cf379 100644
> --- a/nptl_db/db-symbols.awk
> +++ b/nptl_db/db-symbols.awk
> @@ -4,6 +4,7 @@
>  BEGIN {
>  %define DB_RTLD_VARIABLE(name) /* Nothing. */
>  %define DB_MAIN_VARIABLE(name) /* Nothing. */
> +%define DB_MAIN_SYMBOL(name) /* Nothing. */
>  %define DB_MAIN_ARRAY_VARIABLE(name) /* Nothing. */
>  %define DB_LOOKUP_NAME(idx, name)		required[STRINGIFY (name)] = 1;
>  %define DB_LOOKUP_NAME_TH_UNIQUE(idx, name)	th_unique[STRINGIFY (name)] = 1;

Ok.

> diff --git a/nptl_db/structs.def b/nptl_db/structs.def
> index 275c12bc7a..71c9f7bfc2 100644
> --- a/nptl_db/structs.def
> +++ b/nptl_db/structs.def
> @@ -26,11 +26,14 @@
>  # define DB_RTLD_VARIABLE(name) DB_VARIABLE (name)
>  #endif
>  
> -/* DB_MAIN_VARIABLE and DB_MAIN_ARRAY_VARIABLE are not covered by the
> -   libpthread symbol check in db-symbols.awk.  */
> +/* DB_MAIN_VARIABLE, DB_MAIN_SYMBOL, DB_MAIN_ARRAY_VARIABLE are not
> +   covered by the libpthread symbol check in db-symbols.awk.  */
>  #ifndef DB_MAIN_VARIABLE
>  # define DB_MAIN_VARIABLE(name) DB_VARIABLE (name)
>  #endif
> +#ifndef DB_MAIN_SYMBOL
> +# define DB_MAIN_SYMBOL(name) DB_SYMBOL (name)
> +#endif
>  #ifndef DB_MAIN_ARRAY_VARIABLE
>  # define DB_MAIN_ARRAY_VARIABLE(name) DB_ARRAY_VARIABLE (name)
>  #endif

Ok.

> @@ -75,8 +78,8 @@ DB_STRUCT_FIELD (td_eventbuf_t, eventnum)
>  DB_STRUCT_FIELD (td_eventbuf_t, eventdata)
>  
>  DB_SYMBOL (nptl_version)
> -DB_FUNCTION (__nptl_create_event)
> -DB_FUNCTION (__nptl_death_event)
> +DB_MAIN_SYMBOL (__nptl_create_event)
> +DB_MAIN_SYMBOL (__nptl_death_event)
>  DB_SYMBOL (__nptl_threads_events)
>  DB_MAIN_VARIABLE (__nptl_nthreads)
>  DB_VARIABLE (__nptl_last_event)
> 

OK.

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 03/23] elf: Partially initialize ld.so after static dlopen (bug 20802)
  2021-05-12 16:57 ` [PATCH 03/23] elf: Partially initialize ld.so after static dlopen (bug 20802) Florian Weimer
@ 2021-05-13 19:35   ` Adhemerval Zanella
  2021-05-13 20:09     ` Florian Weimer
  0 siblings, 1 reply; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 19:35 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:57, Florian Weimer via Libc-alpha wrote:
> After static dlopen, a copy of ld.so is loaded into the inner
> namespace, but that copy is not initialized at all.  Some
> architectures run into serious problems as result, which is why the
> _dl_var_init mechanism was invented.  With libpthread moving into
> libc and parts into ld.so, more architectures impacted, so it makes
> sense to switch to a generic mechanism which performs the partial
> initialization.
> 
> As a result, getauxval now works after static dlopen (bug 20802).

LGTM, with some small nit below.

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

> ---
>  dlfcn/tststatic5.c                 | 11 ++---
>  elf/Makefile                       | 11 +++--
>  elf/dl-open.c                      | 17 +++++++-
>  elf/rtld_static_init.c             | 56 +++++++++++++++++++++++++
>  elf/tst-auxvalmod.c                | 29 +++++++++++++
>  elf/tst-getauxval-static.c         | 66 ++++++++++++++++++++++++++++++
>  sysdeps/generic/ldsodefs.h         |  7 ++++
>  sysdeps/generic/rtld_static_init.h | 24 +++++++++++
>  8 files changed, 208 insertions(+), 13 deletions(-)
>  create mode 100644 elf/rtld_static_init.c
>  create mode 100644 elf/tst-auxvalmod.c
>  create mode 100644 elf/tst-getauxval-static.c
>  create mode 100644 sysdeps/generic/rtld_static_init.h
> 
> diff --git a/dlfcn/tststatic5.c b/dlfcn/tststatic5.c
> index 872e87fbaf..e0a50b7dcc 100644
> --- a/dlfcn/tststatic5.c
> +++ b/dlfcn/tststatic5.c
> @@ -25,14 +25,9 @@
>     mapped from a static executable.
>  
>     On targets that support different page sizes, the kernel communicates
> -   the size currently in use via the auxiliary vector.  This vector is
> -   available to initial startup, but not any DSOs loaded later on.  As
> -   static executables do not export their symbols a DSO cannot access
> -   the value obtained by initial startup and the value therefore has to
> -   be passed on to the DSO and stored within its data area explicitly.
> -   This is performed by a call to DL_STATIC_INIT that is defined in a
> -   target-dependent way, and that on variable page size targets stores
> -   it in the GLRO(dl_pagesize) variable of the DSO's dynamic linker.  */
> +   the size currently in use via the auxiliary vector.  The auxiliary
> +   vector and HWCAP/HWCAP2 bits are copied across the static dlopen
> +   boundary in __rtld_static_init.  */
>  static int
>  do_test (void)
>  {

Ok.

> diff --git a/elf/Makefile b/elf/Makefile
> index 4e148e532a..5e809dbfaa 100644
> --- a/elf/Makefile
> +++ b/elf/Makefile
> @@ -25,7 +25,7 @@ headers		= elf.h bits/elfclass.h link.h bits/link.h
>  routines	= $(all-dl-routines) dl-support dl-iteratephdr \
>  		  dl-addr dl-addr-obj enbl-secure dl-profstub \
>  		  dl-origin dl-libc dl-sym dl-sysdep dl-error \
> -		  dl-reloc-static-pie libc_early_init
> +		  dl-reloc-static-pie libc_early_init rtld_static_init
>  
>  # The core dynamic linking functions are in libc for the static and
>  # profiled libraries.
> @@ -60,7 +60,7 @@ all-dl-routines = $(dl-routines) $(sysdep-dl-routines)
>  # But they are absent from the shared libc, because that code is in ld.so.
>  elide-routines.os = $(all-dl-routines) dl-support enbl-secure dl-origin \
>  		    dl-sysdep dl-exception dl-reloc-static-pie \
> -		    thread_gscope_wait
> +		    thread_gscope_wait rtld_static_init
>  
>  # ld.so uses those routines, plus some special stuff for being the program
>  # interpreter and operating independent of libc.
> @@ -161,7 +161,7 @@ tests-static-normal := tst-leaks1-static tst-array1-static tst-array5-static \
>  	       tst-tlsalign-static tst-tlsalign-extern-static \
>  	       tst-linkall-static tst-env-setuid tst-env-setuid-tunables \
>  	       tst-single_threaded-static tst-single_threaded-pthread-static \
> -	       tst-dst-static
> +	       tst-dst-static tst-getauxval-static
>  
>  tests-static-internal := tst-tls1-static tst-tls2-static \
>  	       tst-ptrguard1-static tst-stackguard1-static \
> @@ -346,6 +346,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
>  		libmarkermod3-1 libmarkermod3-2 libmarkermod3-3 \
>  		libmarkermod4-1 libmarkermod4-2 libmarkermod4-3 libmarkermod4-4 \
>  		tst-tls20mod-bad tst-tls21mod tst-dlmopen-dlerror-mod \
> +		tst-auxvalmod \
>  
>  # Most modules build with _ISOMAC defined, but those filtered out
>  # depend on internal headers.
> @@ -1942,3 +1943,7 @@ $(objpfx)tst-tls20.out: $(objpfx)tst-tls20mod-bad.so \
>  $(objpfx)tst-tls21: $(libdl) $(shared-thread-library)
>  $(objpfx)tst-tls21.out: $(objpfx)tst-tls21mod.so
>  $(objpfx)tst-tls21mod.so: $(tst-tls-many-dynamic-modules:%=$(objpfx)%.so)
> +
> +$(objpfx)tst-getauxval-static: $(common-objpfx)dlfcn/libdl.a
> +$(objpfx)tst-getauxval-static.out: $(objpfx)tst-auxvalmod.so
> +tst-getauxval-static-ENV = LD_LIBRARY_PATH=$(objpfx):$(common-objpfx)

Ok.

> diff --git a/elf/dl-open.c b/elf/dl-open.c
> index 0887fc5cc5..7e018bb44c 100644
> --- a/elf/dl-open.c
> +++ b/elf/dl-open.c
> @@ -35,6 +35,7 @@
>  #include <libc-internal.h>
>  #include <array_length.h>
>  #include <libc-early-init.h>
> +#include <gnu/lib-names.h>
>  
>  #include <dl-dst.h>
>  #include <dl-prop.h>
> @@ -590,8 +591,20 @@ dl_open_worker (void *a)
>    /* So far, so good.  Now check the versions.  */
>    for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
>      if (new->l_searchlist.r_list[i]->l_real->l_versions == NULL)
> -      (void) _dl_check_map_versions (new->l_searchlist.r_list[i]->l_real,
> -				     0, 0);
> +      {
> +	struct link_map *map = new->l_searchlist.r_list[i]->l_real;
> +	(void) _dl_check_map_versions (map, 0, 0);

Why the cast here?

> +#ifndef SHARED
> +	/* During static dlopen, check if ld.so has been loaded.
> +	   Perform partial initialization in this case.  This must
> +	   come after the symbol versioning initialization in
> +	   _dl_check_map_versions.  */
> +	if (map->l_info[DT_SONAME] != NULL
> +	    && strcmp (((const char *) D_PTR (map, l_info[DT_STRTAB])
> +			+ map->l_info[DT_SONAME]->d_un.d_val), LD_SO) == 0)
> +	  __rtld_static_init (map);
> +#endif
> +      }
>  
>  #ifdef SHARED
>    /* Auditing checkpoint: we have added all objects.  */

Ok.

> diff --git a/elf/rtld_static_init.c b/elf/rtld_static_init.c
> new file mode 100644
> index 0000000000..cd823096d6
> --- /dev/null
> +++ b/elf/rtld_static_init.c
> @@ -0,0 +1,56 @@
> +/* Partial initialization of ld.so loaded via static dlopen.
> +   Copyright (C) 2021 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   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; if not, see
> +   <https://www.gnu.org/licenses/>.  */
> +
> +#include <assert.h>
> +
> +/* Very special case: This object is built into the static libc, but
> +   must know the layout of _rtld_global_ro.  */
> +#define SHARED
> +#include <ldsodefs.h>
> +
> +#include <rtld_static_init.h>
> +
> +void
> +__rtld_static_init (struct link_map *map)
> +{
> +  const ElfW(Sym) *sym
> +    = _dl_lookup_direct (map, "_rtld_global_ro",
> +                         0x9f28436a, /* dl_new_hash output.  */
> +                         "GLIBC_PRIVATE",
> +                         0x0963cf85); /* _dl_elf_hash output.  */
> +  assert (sym != NULL);
> +  struct rtld_global_ro *dl = DL_SYMBOL_ADDRESS (map, sym);
> +
> +  /* Perform partial initialization here.  Note that this runs before
> +     ld.so is relocated, so only members initialized without
> +     relocations can be written here.  */

This is tricky, how can we be sure about which members do not need
relocations?

> +#ifdef HAVE_AUX_VECTOR
> +  extern __typeof (dl->_dl_auxv) _dl_auxv attribute_hidden;
> +  dl->_dl_auxv = _dl_auxv;
> +  extern __typeof (dl->_dl_clktck) _dl_clktck attribute_hidden;
> +  dl->_dl_clktck = _dl_clktck;
> +#endif
> +  extern __typeof (dl->_dl_hwcap) _dl_hwcap attribute_hidden;
> +  dl->_dl_hwcap = _dl_hwcap;
> +  extern __typeof (dl->_dl_hwcap2) _dl_hwcap2 attribute_hidden;
> +  dl->_dl_hwcap2 = _dl_hwcap2;
> +  extern __typeof (dl->_dl_pagesize) _dl_pagesize attribute_hidden;
> +  dl->_dl_pagesize = _dl_pagesize;
> +
> +  __rtld_static_init_arch (map, dl);
> +}

Ok.

> diff --git a/elf/tst-auxvalmod.c b/elf/tst-auxvalmod.c
> new file mode 100644
> index 0000000000..0676d66a0c
> --- /dev/null
> +++ b/elf/tst-auxvalmod.c
> @@ -0,0 +1,29 @@
> +/* Wrapper for getauxval testing.
> +   Copyright (C) 2021 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   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; if not, see
> +   <http://www.gnu.org/licenses/>.  */
> +
> +#include <errno.h>
> +#include <sys/auxv.h>
> +
> +unsigned long
> +getauxval_wrapper (unsigned long type, int *errnop)
> +{
> +  errno = *errnop;
> +  unsigned long result = getauxval (type);
> +  *errnop = errno;
> +  return result;
> +}

Ok.

> diff --git a/elf/tst-getauxval-static.c b/elf/tst-getauxval-static.c
> new file mode 100644
> index 0000000000..1d5dc86915
> --- /dev/null
> +++ b/elf/tst-getauxval-static.c
> @@ -0,0 +1,66 @@
> +/* Test getauxval from a dynamic library after static dlopen.
> +   Copyright (C) 2016 Free Software Foundation, Inc.

Is this date correct? 

> +   This file is part of the GNU C Library.
> +
> +   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; if not, see
> +   <http://www.gnu.org/licenses/>.  */
> +
> +#include <dlfcn.h>
> +#include <errno.h>
> +#include <stdio.h>
> +#include <support/check.h>
> +#include <support/xdlfcn.h>
> +#include <sys/auxv.h>
> +
> +unsigned long getauxval_wrapper (unsigned long type, int *errnop);
> +
> +static int
> +do_test (void)
> +{
> +  unsigned long outer_random = getauxval (AT_RANDOM);
> +  if (outer_random == 0)
> +    FAIL_UNSUPPORTED ("getauxval does not support RT_RANDOM");

s/RT_RANDOM/AT_RANDOM

> +
> +  unsigned long missing_auxv_type;
> +  for (missing_auxv_type = AT_RANDOM + 1; ; ++missing_auxv_type)
> +    {
> +      errno = 0;
> +      if (getauxval (missing_auxv_type) == 0 && errno != 0)
> +        {
> +          TEST_COMPARE (errno, ENOENT);
> +          break;
> +        }
> +    }
> +  printf ("info: first missing type: %lu\n", missing_auxv_type);
> +
> +  void *handle = xdlopen ("tst-auxvalmod.so", RTLD_LAZY);
> +  void *ptr = xdlsym (handle, "getauxval_wrapper");
> +
> +  __typeof__ (getauxval_wrapper) *wrapper = ptr;
> +  int inner_errno = 0;
> +  unsigned long inner_random = wrapper (AT_RANDOM, &inner_errno);
> +  TEST_COMPARE (outer_random, inner_random);
> +
> +  inner_errno = 0;
> +  TEST_COMPARE (wrapper (missing_auxv_type, &inner_errno), 0);
> +  TEST_COMPARE (inner_errno, ENOENT);
> +
> +  TEST_COMPARE (getauxval (AT_HWCAP), wrapper (AT_HWCAP, &inner_errno));
> +  TEST_COMPARE (getauxval (AT_HWCAP2), wrapper (AT_HWCAP2, &inner_errno));
> +
> +  xdlclose (handle);
> +  return 0;
> +}
> +
> +#include <support/test-driver.c>

Ok.

> diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
> index 8426b5cbd8..e43d6f5ecd 100644
> --- a/sysdeps/generic/ldsodefs.h
> +++ b/sysdeps/generic/ldsodefs.h
> @@ -1313,6 +1313,13 @@ dl_init_static_tls (struct link_map *map)
>  #endif
>  }
>  
> +#ifndef SHARED
> +/* Called before relocating ld.so during static dlopen.  This can be
> +   used to partly initialize the dormant ld.so copy in the static
> +   dlopen namespace.  */
> +void __rtld_static_init (struct link_map *map) attribute_hidden;
> +#endif
> +
>  /* Return true if the ld.so copy in this namespace is actually active
>     and working.  If false, the dl_open/dlfcn hooks have to be used to
>     call into the outer dynamic linker (which happens after static

Ok.

> diff --git a/sysdeps/generic/rtld_static_init.h b/sysdeps/generic/rtld_static_init.h
> new file mode 100644
> index 0000000000..3f8dde22a8
> --- /dev/null
> +++ b/sysdeps/generic/rtld_static_init.h
> @@ -0,0 +1,24 @@
> +/* Partial initialization of ld.so loaded via static dlopen.  Generic helper.
> +   Copyright (C) 2021 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   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; if not, see
> +   <https://www.gnu.org/licenses/>.  */
> +
> +static inline void
> +__rtld_static_init_arch (struct link_map *map, struct rtld_global_ro *dl)
> +{
> +  /* The generic helper does not perform any additional
> +     initialization.  */
> +}
> 

Ok.

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 04/23] aarch64: Remove _dl_var_init
  2021-05-12 16:57 ` [PATCH 04/23] aarch64: Remove _dl_var_init Florian Weimer
@ 2021-05-13 19:36   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 19:36 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:57, Florian Weimer via Libc-alpha wrote:
> The generic __rtld_static_init code handles GLRO (dl_pagesize).

LGTM.

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

> ---
>  sysdeps/unix/sysv/linux/aarch64/Makefile    |  7 --
>  sysdeps/unix/sysv/linux/aarch64/Versions    |  6 --
>  sysdeps/unix/sysv/linux/aarch64/dl-static.c | 84 ---------------------
>  sysdeps/unix/sysv/linux/aarch64/ldsodefs.h  | 33 --------
>  4 files changed, 130 deletions(-)
>  delete mode 100644 sysdeps/unix/sysv/linux/aarch64/dl-static.c
>  delete mode 100644 sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
> 
> diff --git a/sysdeps/unix/sysv/linux/aarch64/Makefile b/sysdeps/unix/sysv/linux/aarch64/Makefile
> index 3f22f71bef..40b9a2e5de 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/Makefile
> +++ b/sysdeps/unix/sysv/linux/aarch64/Makefile
> @@ -1,10 +1,3 @@
> -ifeq ($(subdir),elf)
> -ifeq ($(build-shared),yes)
> -# This is needed for DSO loading from static binaries.
> -sysdep-dl-routines += dl-static
> -endif
> -endif
> -
>  ifeq ($(subdir),misc)
>  sysdep_headers += sys/elf.h
>  endif
> diff --git a/sysdeps/unix/sysv/linux/aarch64/Versions b/sysdeps/unix/sysv/linux/aarch64/Versions
> index 9bd87fe2d0..627ff53529 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/Versions
> +++ b/sysdeps/unix/sysv/linux/aarch64/Versions
> @@ -1,9 +1,3 @@
> -ld {
> -  GLIBC_PRIVATE {
> -    # used for loading by static libraries
> -    _dl_var_init;
> -  }
> -}
>  libc {
>    GLIBC_PRIVATE {
>      __vdso_clock_gettime;
> diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-static.c b/sysdeps/unix/sysv/linux/aarch64/dl-static.c
> deleted file mode 100644
> index 0f7913313d..0000000000
> --- a/sysdeps/unix/sysv/linux/aarch64/dl-static.c
> +++ /dev/null
> @@ -1,84 +0,0 @@
> -/* Variable initialization.  AArch64 version.
> -   Copyright (C) 2001-2021 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -
> -   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.  If not, see
> -   <https://www.gnu.org/licenses/>.  */
> -
> -#include <ldsodefs.h>
> -
> -#ifdef SHARED
> -
> -void
> -_dl_var_init (void *array[])
> -{
> -  /* It has to match "variables" below. */
> -  enum
> -    {
> -      DL_PAGESIZE = 0
> -    };
> -
> -  GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
> -}
> -
> -#else
> -
> -static void *variables[] =
> -{
> -  &GLRO(dl_pagesize)
> -};
> -
> -static void
> -_dl_unprotect_relro (struct link_map *l)
> -{
> -  ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
> -		      & ~(GLRO(dl_pagesize) - 1));
> -  ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
> -		    & ~(GLRO(dl_pagesize) - 1));
> -
> -  if (start != end)
> -    __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
> -}
> -
> -void
> -_dl_static_init (struct link_map *l)
> -{
> -  struct link_map *rtld_map = l;
> -  struct r_scope_elem **scope;
> -  const ElfW(Sym) *ref = NULL;
> -  lookup_t loadbase;
> -  void (*f) (void *[]);
> -  size_t i;
> -
> -  loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
> -				  NULL, 0, 1, NULL);
> -
> -  for (scope = l->l_local_scope; *scope != NULL; scope++)
> -    for (i = 0; i < (*scope)->r_nlist; i++)
> -      if ((*scope)->r_list[i] == loadbase)
> -	{
> -	  rtld_map = (*scope)->r_list[i];
> -	  break;
> -	}
> -
> -  if (ref != NULL)
> -    {
> -      f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
> -      _dl_unprotect_relro (rtld_map);
> -      f (variables);
> -      _dl_protect_relro (rtld_map);
> -    }
> -}
> -
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h b/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
> deleted file mode 100644
> index df739d4369..0000000000
> --- a/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -/* Run-time dynamic linker data structures for loaded ELF shared objects.
> -   AArch64 version.
> -   Copyright (C) 2001-2021 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -
> -   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; if not, see
> -   <https://www.gnu.org/licenses/>.  */
> -
> -#ifndef	_LDSODEFS_H
> -
> -/* Get the real definitions.  */
> -#include_next <ldsodefs.h>
> -
> -/* Now define our stuff.  */
> -
> -/* We need special support to initialize DSO loaded for statically linked
> -   binaries.  */
> -extern void _dl_static_init (struct link_map *map);
> -#undef DL_STATIC_INIT
> -#define DL_STATIC_INIT(map) _dl_static_init (map)
> -
> -#endif /* ldsodefs.h */
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 05/23] arc: Remove _dl_var_init
  2021-05-12 16:57 ` [PATCH 05/23] arc: " Florian Weimer
@ 2021-05-13 19:36   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 19:36 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:57, Florian Weimer via Libc-alpha wrote:
> The generic __rtld_static_init code handles GLRO (dl_pagesize).

LGTM.

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

> ---
>  sysdeps/unix/sysv/linux/arc/Makefile    |  7 ---
>  sysdeps/unix/sysv/linux/arc/Versions    |  6 --
>  sysdeps/unix/sysv/linux/arc/dl-static.c | 84 -------------------------
>  sysdeps/unix/sysv/linux/arc/ldsodefs.h  | 32 ----------
>  4 files changed, 129 deletions(-)
>  delete mode 100644 sysdeps/unix/sysv/linux/arc/dl-static.c
>  delete mode 100644 sysdeps/unix/sysv/linux/arc/ldsodefs.h
> 
> diff --git a/sysdeps/unix/sysv/linux/arc/Makefile b/sysdeps/unix/sysv/linux/arc/Makefile
> index 25d7bbecac..eca9a9fd3a 100644
> --- a/sysdeps/unix/sysv/linux/arc/Makefile
> +++ b/sysdeps/unix/sysv/linux/arc/Makefile
> @@ -12,13 +12,6 @@ sysdep_headers += sys/cachectl.h
>  sysdep_routines += cacheflush
>  endif
>  
> -ifeq ($(subdir),elf)
> -ifeq ($(build-shared),yes)
> -# This is needed for DSO loading from static binaries.
> -sysdep-dl-routines += dl-static
> -endif
> -endif
> -
>  abi-variants := arcle arcbe
>  
>  ifeq (,$(filter $(default-abi),$(abi-variants)))
> diff --git a/sysdeps/unix/sysv/linux/arc/Versions b/sysdeps/unix/sysv/linux/arc/Versions
> index 292f1974b0..b951cda5aa 100644
> --- a/sysdeps/unix/sysv/linux/arc/Versions
> +++ b/sysdeps/unix/sysv/linux/arc/Versions
> @@ -1,9 +1,3 @@
> -ld {
> -  GLIBC_PRIVATE {
> -    # used for loading by static libraries
> -    _dl_var_init;
> -  }
> -}
>  libc {
>    GLIBC_2.32 {
>      _flush_cache;
> diff --git a/sysdeps/unix/sysv/linux/arc/dl-static.c b/sysdeps/unix/sysv/linux/arc/dl-static.c
> deleted file mode 100644
> index ac63705245..0000000000
> --- a/sysdeps/unix/sysv/linux/arc/dl-static.c
> +++ /dev/null
> @@ -1,84 +0,0 @@
> -/* Variable initialization.  ARC version.
> -   Copyright (C) 2020-2021 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -
> -   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.  If not, see
> -   <https://www.gnu.org/licenses/>.  */
> -
> -#include <ldsodefs.h>
> -
> -#ifdef SHARED
> -
> -void
> -_dl_var_init (void *array[])
> -{
> -  /* It has to match "variables" below. */
> -  enum
> -    {
> -      DL_PAGESIZE = 0
> -    };
> -
> -  GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
> -}
> -
> -#else
> -
> -static void *variables[] =
> -{
> -  &GLRO(dl_pagesize)
> -};
> -
> -static void
> -_dl_unprotect_relro (struct link_map *l)
> -{
> -  ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
> -		      & ~(GLRO(dl_pagesize) - 1));
> -  ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
> -		    & ~(GLRO(dl_pagesize) - 1));
> -
> -  if (start != end)
> -    __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
> -}
> -
> -void
> -_dl_static_init (struct link_map *l)
> -{
> -  struct link_map *rtld_map = l;
> -  struct r_scope_elem **scope;
> -  const ElfW(Sym) *ref = NULL;
> -  lookup_t loadbase;
> -  void (*f) (void *[]);
> -  size_t i;
> -
> -  loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
> -				  NULL, 0, 1, NULL);
> -
> -  for (scope = l->l_local_scope; *scope != NULL; scope++)
> -    for (i = 0; i < (*scope)->r_nlist; i++)
> -      if ((*scope)->r_list[i] == loadbase)
> -	{
> -	  rtld_map = (*scope)->r_list[i];
> -	  break;
> -	}
> -
> -  if (ref != NULL)
> -    {
> -      f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
> -      _dl_unprotect_relro (rtld_map);
> -      f (variables);
> -      _dl_protect_relro (rtld_map);
> -    }
> -}
> -
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/arc/ldsodefs.h b/sysdeps/unix/sysv/linux/arc/ldsodefs.h
> deleted file mode 100644
> index 07546825b8..0000000000
> --- a/sysdeps/unix/sysv/linux/arc/ldsodefs.h
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -/* Run-time dynamic linker data structures for loaded ELF shared objects. ARC
> -   Copyright (C) 2020-2021 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -
> -   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; if not, see
> -   <https://www.gnu.org/licenses/>.  */
> -
> -#ifndef	_LDSODEFS_H
> -
> -/* Get the real definitions.  */
> -#include_next <ldsodefs.h>
> -
> -/* Now define our stuff.  */
> -
> -/* We need special support to initialize DSO loaded for statically linked
> -   binaries.  */
> -extern void _dl_static_init (struct link_map *map);
> -#undef DL_STATIC_INIT
> -#define DL_STATIC_INIT(map) _dl_static_init (map)
> -
> -#endif /* ldsodefs.h */
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 06/23] ia64: Remove _dl_var_init
  2021-05-12 16:57 ` [PATCH 06/23] ia64: " Florian Weimer
@ 2021-05-13 19:37   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 19:37 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:57, Florian Weimer via Libc-alpha wrote:
> The generic __rtld_static_init code handles GLRO (dl_pagesize)
> and GLRO (dl_clktck).

LGTM.

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

> ---
>  sysdeps/unix/sysv/linux/ia64/Makefile    |  4 --
>  sysdeps/unix/sysv/linux/ia64/Versions    |  5 --
>  sysdeps/unix/sysv/linux/ia64/dl-static.c | 61 ------------------------
>  sysdeps/unix/sysv/linux/ia64/ldsodefs.h  | 32 -------------
>  4 files changed, 102 deletions(-)
>  delete mode 100644 sysdeps/unix/sysv/linux/ia64/dl-static.c
>  delete mode 100644 sysdeps/unix/sysv/linux/ia64/ldsodefs.h
> 
> diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile
> index f6a08d15d0..da85ba43e2 100644
> --- a/sysdeps/unix/sysv/linux/ia64/Makefile
> +++ b/sysdeps/unix/sysv/linux/ia64/Makefile
> @@ -13,10 +13,6 @@ sysdep_routines += ioperm clone2
>  gen-as-const-headers += sigaltstack-offsets.sym
>  endif
>  
> -ifeq ($(subdir),elf)
> -sysdep-dl-routines += dl-static
> -endif
> -
>  ifeq ($(subdir),rt)
>  librt-routines += rt-sysdep
>  librt-shared-only-routines += rt-sysdep
> diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
> index 116f4e8503..214e6f9f1a 100644
> --- a/sysdeps/unix/sysv/linux/ia64/Versions
> +++ b/sysdeps/unix/sysv/linux/ia64/Versions
> @@ -1,8 +1,3 @@
> -ld {
> -  GLIBC_PRIVATE {
> -    _dl_var_init;
> -  }
> -}
>  libc {
>    GLIBC_2.2 {
>      ioperm; iopl;
> diff --git a/sysdeps/unix/sysv/linux/ia64/dl-static.c b/sysdeps/unix/sysv/linux/ia64/dl-static.c
> deleted file mode 100644
> index 1cc2563b36..0000000000
> --- a/sysdeps/unix/sysv/linux/ia64/dl-static.c
> +++ /dev/null
> @@ -1,61 +0,0 @@
> -/* Variable initialization.  IA-64 version.
> -   Copyright (C) 2001-2021 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -
> -   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; if not, see
> -   <https://www.gnu.org/licenses/>.  */
> -
> -#include <ldsodefs.h>
> -
> -#ifdef SHARED
> -
> -void
> -_dl_var_init (void *array[])
> -{
> -  /* It has to match "variables" below. */
> -  enum
> -    {
> -      DL_PAGESIZE = 0,
> -      DL_CLKTCK
> -    };
> -
> -  GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
> -  GLRO(dl_clktck) = *((int *) array[DL_CLKTCK]);
> -}
> -
> -#else
> -
> -static void *variables[] =
> -{
> -  &GLRO(dl_pagesize),
> -  &GLRO(dl_clktck)
> -};
> -
> -void
> -_dl_static_init (struct link_map *map)
> -{
> -  const ElfW(Sym) *ref = NULL;
> -  lookup_t loadbase;
> -  void (*f) (void *[]);
> -
> -  loadbase = _dl_lookup_symbol_x ("_dl_var_init", map, &ref,
> -				  map->l_local_scope, NULL, 0, 1, NULL);
> -  if (ref != NULL)
> -    {
> -      f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
> -      f (variables);
> -    }
> -}
> -
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/ia64/ldsodefs.h b/sysdeps/unix/sysv/linux/ia64/ldsodefs.h
> deleted file mode 100644
> index c868efe592..0000000000
> --- a/sysdeps/unix/sysv/linux/ia64/ldsodefs.h
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -/* Run-time dynamic linker data structures for loaded ELF shared objects. IA64.
> -   Copyright (C) 2001-2021 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -
> -   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; if not, see
> -   <https://www.gnu.org/licenses/>.  */
> -
> -#ifndef	_LDSODEFS_H
> -
> -/* Get the real definitions.  */
> -#include_next <ldsodefs.h>
> -
> -/* Now define our stuff.  */
> -
> -/* We need special support to initialize DSO loaded for statically linked
> -   binaries.  */
> -extern void _dl_static_init (struct link_map *map);
> -#undef DL_STATIC_INIT
> -#define DL_STATIC_INIT(map) _dl_static_init (map)
> -
> -#endif /* ldsodefs.h */
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 07/23] m68k: Remove _dl_var_init
  2021-05-12 16:57 ` [PATCH 07/23] m68k: " Florian Weimer
@ 2021-05-13 19:37   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 19:37 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:57, Florian Weimer via Libc-alpha wrote:
> The generic __rtld_static_init code handles GLRO (dl_pagesize).

LGTM.

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

> ---
>  sysdeps/unix/sysv/linux/m68k/Makefile    |  1 -
>  sysdeps/unix/sysv/linux/m68k/Versions    |  5 --
>  sysdeps/unix/sysv/linux/m68k/dl-static.c | 84 ------------------------
>  sysdeps/unix/sysv/linux/m68k/ldsodefs.h  | 32 ---------
>  4 files changed, 122 deletions(-)
>  delete mode 100644 sysdeps/unix/sysv/linux/m68k/dl-static.c
>  delete mode 100644 sysdeps/unix/sysv/linux/m68k/ldsodefs.h
> 
> diff --git a/sysdeps/unix/sysv/linux/m68k/Makefile b/sysdeps/unix/sysv/linux/m68k/Makefile
> index be40fae68a..18ad2bf0ee 100644
> --- a/sysdeps/unix/sysv/linux/m68k/Makefile
> +++ b/sysdeps/unix/sysv/linux/m68k/Makefile
> @@ -17,7 +17,6 @@ sysdep_headers += sys/reg.h
>  endif
>  
>  ifeq ($(subdir),elf)
> -sysdep-dl-routines += dl-static
>  sysdep-others += lddlibc4
>  install-bin += lddlibc4
>  endif
> diff --git a/sysdeps/unix/sysv/linux/m68k/Versions b/sysdeps/unix/sysv/linux/m68k/Versions
> index 4b18795513..d98ae120c1 100644
> --- a/sysdeps/unix/sysv/linux/m68k/Versions
> +++ b/sysdeps/unix/sysv/linux/m68k/Versions
> @@ -1,8 +1,3 @@
> -ld {
> -  GLIBC_PRIVATE {
> -    _dl_var_init;
> -  }
> -}
>  libc {
>    GLIBC_2.0 {
>      # Exception handling support functions from libgcc
> diff --git a/sysdeps/unix/sysv/linux/m68k/dl-static.c b/sysdeps/unix/sysv/linux/m68k/dl-static.c
> deleted file mode 100644
> index e959d8b750..0000000000
> --- a/sysdeps/unix/sysv/linux/m68k/dl-static.c
> +++ /dev/null
> @@ -1,84 +0,0 @@
> -/* Variable initialization.  M68K version.
> -   Copyright (C) 2013-2021 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -
> -   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; if not, see
> -   <https://www.gnu.org/licenses/>.  */
> -
> -#include <ldsodefs.h>
> -
> -#ifdef SHARED
> -
> -void
> -_dl_var_init (void *array[])
> -{
> -  /* It has to match "variables" below. */
> -  enum
> -    {
> -      DL_PAGESIZE = 0,
> -    };
> -
> -  GLRO(dl_pagesize) = *(size_t *) array[DL_PAGESIZE];
> -}
> -
> -#else
> -
> -static void *variables[] =
> -{
> -  &GLRO(dl_pagesize)
> -};
> -
> -static void
> -_dl_unprotect_relro (struct link_map *l)
> -{
> -  ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
> -		      & ~(GLRO(dl_pagesize) - 1));
> -  ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
> -		    & ~(GLRO(dl_pagesize) - 1));
> -
> -  if (start != end)
> -    __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
> -}
> -
> -void
> -_dl_static_init (struct link_map *l)
> -{
> -  struct link_map *rtld_map = l;
> -  struct r_scope_elem **scope;
> -  const ElfW(Sym) *ref = NULL;
> -  lookup_t loadbase;
> -  void (*f) (void *[]);
> -  size_t i;
> -
> -  loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
> -				  NULL, 0, 1, NULL);
> -
> -  for (scope = l->l_local_scope; *scope != NULL; scope++)
> -    for (i = 0; i < (*scope)->r_nlist; i++)
> -      if ((*scope)->r_list[i] == loadbase)
> -	{
> -	  rtld_map = (*scope)->r_list[i];
> -	  break;
> -	}
> -
> -  if (ref != NULL)
> -    {
> -      f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
> -      _dl_unprotect_relro (rtld_map);
> -      f (variables);
> -      _dl_protect_relro (rtld_map);
> -    }
> -}
> -
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/m68k/ldsodefs.h b/sysdeps/unix/sysv/linux/m68k/ldsodefs.h
> deleted file mode 100644
> index ef46b21ed8..0000000000
> --- a/sysdeps/unix/sysv/linux/m68k/ldsodefs.h
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -/* Run-time dynamic linker data structures for loaded ELF shared objects. M68K.
> -   Copyright (C) 2013-2021 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -
> -   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; if not, see
> -   <https://www.gnu.org/licenses/>.  */
> -
> -#ifndef	_LDSODEFS_H
> -
> -/* Get the real definitions.  */
> -#include_next <ldsodefs.h>
> -
> -/* Now define our stuff.  */
> -
> -/* We need special support to initialize DSO loaded for statically linked
> -   binaries.  */
> -extern void _dl_static_init (struct link_map *map);
> -#undef DL_STATIC_INIT
> -#define DL_STATIC_INIT(map) _dl_static_init (map)
> -
> -#endif /* ldsodefs.h */
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 08/23] mips: Remove _dl_var_init
  2021-05-12 16:57 ` [PATCH 08/23] mips: " Florian Weimer
@ 2021-05-13 19:37   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 19:37 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:57, Florian Weimer via Libc-alpha wrote:
> The generic __rtld_static_init code handles GLRO (dl_pagesize).

LGTM.

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

> ---
>  sysdeps/unix/sysv/linux/mips/Makefile    |  4 --
>  sysdeps/unix/sysv/linux/mips/Versions    |  6 --
>  sysdeps/unix/sysv/linux/mips/dl-static.c | 84 ------------------------
>  sysdeps/unix/sysv/linux/mips/ldsodefs.h  |  6 --
>  4 files changed, 100 deletions(-)
>  delete mode 100644 sysdeps/unix/sysv/linux/mips/dl-static.c
> 
> diff --git a/sysdeps/unix/sysv/linux/mips/Makefile b/sysdeps/unix/sysv/linux/mips/Makefile
> index 026ba242cf..d5725c69d8 100644
> --- a/sysdeps/unix/sysv/linux/mips/Makefile
> +++ b/sysdeps/unix/sysv/linux/mips/Makefile
> @@ -57,10 +57,6 @@ abi-n64_hard_2008-condition := defined(__mips_nan2008) \
>  			       && (_MIPS_SIM == _MIPS_SIM_ABI64)
>  
>  ifeq ($(subdir),elf)
> -ifeq ($(build-shared),yes)
> -# This is needed for DSO loading from static binaries.
> -sysdep-dl-routines += dl-static
> -endif
>  # If the compiler doesn't use GNU.stack note,
>  # this test is expected to fail.
>  ifneq ($(mips-has-gnustack),yes)
> diff --git a/sysdeps/unix/sysv/linux/mips/Versions b/sysdeps/unix/sysv/linux/mips/Versions
> index 0ec82dc480..aeaac41744 100644
> --- a/sysdeps/unix/sysv/linux/mips/Versions
> +++ b/sysdeps/unix/sysv/linux/mips/Versions
> @@ -1,9 +1,3 @@
> -ld {
> -  GLIBC_PRIVATE {
> -    # used for loading by static libraries
> -    _dl_var_init;
> -  }
> -}
>  libc {
>    GLIBC_2.0 {
>      _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
> diff --git a/sysdeps/unix/sysv/linux/mips/dl-static.c b/sysdeps/unix/sysv/linux/mips/dl-static.c
> deleted file mode 100644
> index 07947c2a00..0000000000
> --- a/sysdeps/unix/sysv/linux/mips/dl-static.c
> +++ /dev/null
> @@ -1,84 +0,0 @@
> -/* Variable initialization.  MIPS version.
> -   Copyright (C) 2001-2021 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -
> -   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.  If not, see
> -   <https://www.gnu.org/licenses/>.  */
> -
> -#include <ldsodefs.h>
> -
> -#ifdef SHARED
> -
> -void
> -_dl_var_init (void *array[])
> -{
> -  /* It has to match "variables" below. */
> -  enum
> -    {
> -      DL_PAGESIZE = 0
> -    };
> -
> -  GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
> -}
> -
> -#else
> -
> -static void *variables[] =
> -{
> -  &GLRO(dl_pagesize)
> -};
> -
> -static void
> -_dl_unprotect_relro (struct link_map *l)
> -{
> -  ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
> -		      & ~(GLRO(dl_pagesize) - 1));
> -  ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
> -		    & ~(GLRO(dl_pagesize) - 1));
> -
> -  if (start != end)
> -    __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
> -}
> -
> -void
> -_dl_static_init (struct link_map *l)
> -{
> -  struct link_map *rtld_map = l;
> -  struct r_scope_elem **scope;
> -  const ElfW(Sym) *ref = NULL;
> -  lookup_t loadbase;
> -  void (*f) (void *[]);
> -  size_t i;
> -
> -  loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
> -				  NULL, 0, 1, NULL);
> -
> -  for (scope = l->l_local_scope; *scope != NULL; scope++)
> -    for (i = 0; i < (*scope)->r_nlist; i++)
> -      if ((*scope)->r_list[i] == loadbase)
> -	{
> -	  rtld_map = (*scope)->r_list[i];
> -	  break;
> -	}
> -
> -  if (ref != NULL)
> -    {
> -      f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
> -      _dl_unprotect_relro (rtld_map);
> -      f (variables);
> -      _dl_protect_relro (rtld_map);
> -    }
> -}
> -
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/mips/ldsodefs.h b/sysdeps/unix/sysv/linux/mips/ldsodefs.h
> index 7510248ef0..f609eb12c3 100644
> --- a/sysdeps/unix/sysv/linux/mips/ldsodefs.h
> +++ b/sysdeps/unix/sysv/linux/mips/ldsodefs.h
> @@ -23,12 +23,6 @@
>  
>  /* Now define our stuff.  */
>  
> -/* We need special support to initialize DSO loaded for statically linked
> -   binaries.  */
> -extern void _dl_static_init (struct link_map *map);
> -#undef DL_STATIC_INIT
> -#define DL_STATIC_INIT(map) _dl_static_init (map)
> -
>  /* Allow ABIVERSION == 1, meaning PLTs and copy relocations are
>     required, with ELFOSABI_SYSV, and ELFOSABI_GNU.  */
>  #undef VALID_ELF_ABIVERSION
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 09/23] powerpc: Remove _dl_var_init
  2021-05-12 16:58 ` [PATCH 09/23] powerpc: " Florian Weimer
@ 2021-05-13 19:38   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 19:38 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
> The generic __rtld_static_init code handles GLRO (dl_pagesize),
> GLRO (dl_auxv), GLRO (dl_hwcap), GLRO (dl_hwcap2).
> GLRO (dl_cache_line_size) is handled in an __rtld_static_init_arch
> override.

LGTM.

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

> ---
>  sysdeps/unix/sysv/linux/powerpc/Makefile      |  4 -
>  sysdeps/unix/sysv/linux/powerpc/Versions      |  6 --
>  sysdeps/unix/sysv/linux/powerpc/dl-static.c   | 96 -------------------
>  .../{ldsodefs.h => rtld_static_init.h}        | 26 ++---
>  4 files changed, 10 insertions(+), 122 deletions(-)
>  delete mode 100644 sysdeps/unix/sysv/linux/powerpc/dl-static.c
>  rename sysdeps/unix/sysv/linux/powerpc/{ldsodefs.h => rtld_static_init.h} (59%)
> 
> diff --git a/sysdeps/unix/sysv/linux/powerpc/Makefile b/sysdeps/unix/sysv/linux/powerpc/Makefile
> index a093cda68b..06f1328fab 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/Makefile
> +++ b/sysdeps/unix/sysv/linux/powerpc/Makefile
> @@ -13,10 +13,6 @@ gen-as-const-headers += ucontext_i.sym
>  endif
>  
>  ifeq ($(subdir),elf)
> -ifeq ($(build-shared),yes)
> -# This is needed for DSO loading from static binaries.
> -sysdep-dl-routines += dl-static
> -endif
>  # Otherwise tst-tls-dlinfo fails due to tst-tlsmod2.so using static tls.
>  LDFLAGS-tst-tlsmod2.so += -Wl,--no-tls-get-addr-optimize
>  endif

Ok.

> diff --git a/sysdeps/unix/sysv/linux/powerpc/Versions b/sysdeps/unix/sysv/linux/powerpc/Versions
> index cc28d84744..416272b718 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/Versions
> +++ b/sysdeps/unix/sysv/linux/powerpc/Versions
> @@ -1,9 +1,3 @@
> -ld {
> -  GLIBC_PRIVATE {
> -  # used for loading by static libraries
> -    _dl_var_init;
> -  }
> -}
>  libc {
>    GLIBC_PRIVATE {
>      __vdso_get_tbfreq;

Ok.

> diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-static.c b/sysdeps/unix/sysv/linux/powerpc/dl-static.c
> deleted file mode 100644
> index e35ca4c44b..0000000000
> --- a/sysdeps/unix/sysv/linux/powerpc/dl-static.c
> +++ /dev/null
> @@ -1,96 +0,0 @@
> -/* Variable initialization.  PowerPC version.
> -   Copyright (C) 2013-2021 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -
> -   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.  If not, see
> -   <https://www.gnu.org/licenses/>.  */
> -
> -#include <ldsodefs.h>
> -
> -#ifdef SHARED
> -
> -void
> -_dl_var_init (void *array[])
> -{
> -  /* It has to match "variables" below. */
> -  enum
> -    {
> -      DL_PAGESIZE = 0,
> -      DL_AUXV = 1,
> -      DL_HWCAP = 2,
> -      DL_HWCAP2 = 3,
> -      DL_CACHE_LINE_SIZE = 4
> -    };
> -
> -  GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
> -  GLRO(dl_auxv) = (ElfW(auxv_t) *) *((size_t *) array[DL_AUXV]);
> -  GLRO(dl_hwcap)  = *((unsigned long int *) array[DL_HWCAP]);
> -  GLRO(dl_hwcap2) = *((unsigned long int *) array[DL_HWCAP2]);
> -  GLRO(dl_cache_line_size) = (int) *((int *) array[DL_CACHE_LINE_SIZE]);
> -}
> -
> -#else
> -
> -static void *variables[] =
> -{
> -  &GLRO(dl_pagesize),
> -  &GLRO(dl_auxv),
> -  &GLRO(dl_hwcap),
> -  &GLRO(dl_hwcap2),
> -  &GLRO(dl_cache_line_size)
> -};
> -
> -static void
> -_dl_unprotect_relro (struct link_map *l)
> -{
> -  ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
> -		      & ~(GLRO(dl_pagesize) - 1));
> -  ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
> -		    & ~(GLRO(dl_pagesize) - 1));
> -
> -  if (start != end)
> -    __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
> -}
> -
> -void
> -_dl_static_init (struct link_map *l)
> -{
> -  struct link_map *rtld_map = l;
> -  struct r_scope_elem **scope;
> -  const ElfW(Sym) *ref = NULL;
> -  lookup_t loadbase;
> -  void (*f) (void *[]);
> -  size_t i;
> -
> -  loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
> -				  NULL, 0, 1, NULL);
> -
> -  for (scope = l->l_local_scope; *scope != NULL; scope++)
> -    for (i = 0; i < (*scope)->r_nlist; i++)
> -      if ((*scope)->r_list[i] == loadbase)
> -	{
> -	  rtld_map = (*scope)->r_list[i];
> -	  break;
> -	}
> -
> -  if (ref != NULL)
> -    {
> -      f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
> -      _dl_unprotect_relro (rtld_map);
> -      f (variables);
> -      _dl_protect_relro (rtld_map);
> -    }
> -}
> -
> -#endif

Ok.

> diff --git a/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h b/sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h
> similarity index 59%
> rename from sysdeps/unix/sysv/linux/powerpc/ldsodefs.h
> rename to sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h
> index bb9c262299..730ac19f77 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h
> +++ b/sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h
> @@ -1,6 +1,5 @@
> -/* Run-time dynamic linker data structures for loaded ELF shared objects.
> -   PowerPC version.
> -   Copyright (C) 2013-2021 Free Software Foundation, Inc.
> +/* Partial initialization of ld.so loaded via static dlopen.  powerpc helper.
> +   Copyright (C) 2021 Free Software Foundation, Inc.
>     This file is part of the GNU C Library.
>  
>     The GNU C Library is free software; you can redistribute it and/or
> @@ -17,17 +16,12 @@
>     License along with the GNU C Library; if not, see
>     <https://www.gnu.org/licenses/>.  */
>  
> -#ifndef _LDSODEFS_H
> +static inline void
> +__rtld_static_init_arch (struct link_map *map, struct rtld_global_ro *dl)
> +{
> +  /* This field does not exist in the generic _rtld_global_ro version.  */
>  
> -/* Get the real definitions.  */
> -#include_next <ldsodefs.h>
> -
> -/* Now define our stuff.  */
> -
> -/* We need special support to initialize DSO loaded for statically linked
> -   binaries.  */
> -extern void _dl_static_init (struct link_map *map);
> -#undef DL_STATIC_INIT
> -#define DL_STATIC_INIT(map) _dl_static_init (map)
> -
> -#endif /* ldsodefs.h */
> +  extern __typeof (dl->_dl_cache_line_size) _dl_cache_line_size
> +    attribute_hidden;
> +  dl->_dl_cache_line_size = _dl_cache_line_size;
> +}
> 

Ok.

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 10/23] elf: Remove DL_STATIC_INIT
  2021-05-12 16:58 ` [PATCH 10/23] elf: Remove DL_STATIC_INIT Florian Weimer
@ 2021-05-13 19:38   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 19:38 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
> All users have been converted to the __rtld_static_init mechanism.

LGTM.

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

> ---
>  elf/dl-open.c              | 4 ----
>  sysdeps/generic/ldsodefs.h | 6 ------
>  2 files changed, 10 deletions(-)
> 
> diff --git a/elf/dl-open.c b/elf/dl-open.c
> index 7e018bb44c..5a870aaf2e 100644
> --- a/elf/dl-open.c
> +++ b/elf/dl-open.c
> @@ -781,10 +781,6 @@ dl_open_worker (void *a)
>        _dl_call_libc_early_init (libc_map, initial);
>      }
>  
> -#ifndef SHARED
> -  DL_STATIC_INIT (new);
> -#endif
> -
>    /* Run the initializer functions of new objects.  Temporarily
>       disable the exception handler, so that lazy binding failures are
>       fatal.  */
> diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
> index e43d6f5ecd..c288f3a2a1 100644
> --- a/sysdeps/generic/ldsodefs.h
> +++ b/sysdeps/generic/ldsodefs.h
> @@ -135,12 +135,6 @@ dl_symbol_visibility_binds_local_p (const ElfW(Sym) *sym)
>  # define DL_UNMAP(map)	_dl_unmap_segments (map)
>  #endif
>  
> -/* By default we do not need special support to initialize DSOs loaded
> -   by statically linked binaries.  */
> -#ifndef DL_STATIC_INIT
> -# define DL_STATIC_INIT(map)
> -#endif
> -
>  /* Reloc type classes as returned by elf_machine_type_class().
>     ELF_RTYPE_CLASS_PLT means this reloc should not be satisfied by
>     some PLT symbol, ELF_RTYPE_CLASS_COPY means this reloc should not be
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 11/23] elf: Move static TLS size and alignment into _rtld_global_ro
  2021-05-12 16:58 ` [PATCH 11/23] elf: Move static TLS size and alignment into _rtld_global_ro Florian Weimer
@ 2021-05-13 19:45   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 19:45 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
> This helps to clarify that the caching of these fields in libpthread
> (in __static_tls_size, __static_tls_align_m1) is unnecessary.

LGTM.

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

> ---
>  elf/dl-reloc.c             |  6 +++---
>  elf/dl-tls.c               | 22 +++++++++++-----------
>  elf/rtld_static_init.c     |  6 ++++++
>  sysdeps/generic/ldsodefs.h | 10 ++++++----
>  4 files changed, 26 insertions(+), 18 deletions(-)
> 
> diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c
> index bb9ca1a101..e13a672ade 100644
> --- a/elf/dl-reloc.c
> +++ b/elf/dl-reloc.c
> @@ -53,14 +53,14 @@ _dl_try_allocate_static_tls (struct link_map *map, bool optional)
>    /* If we've already used the variable with dynamic access, or if the
>       alignment requirements are too high, fail.  */
>    if (map->l_tls_offset == FORCED_DYNAMIC_TLS_OFFSET
> -      || map->l_tls_align > GL(dl_tls_static_align))
> +      || map->l_tls_align > GLRO (dl_tls_static_align))
>      {
>      fail:
>        return -1;
>      }
>  
>  #if TLS_TCB_AT_TP
> -  size_t freebytes = GL(dl_tls_static_size) - GL(dl_tls_static_used);
> +  size_t freebytes = GLRO (dl_tls_static_size) - GL(dl_tls_static_used);
>    if (freebytes < TLS_TCB_SIZE)
>      goto fail;
>    freebytes -= TLS_TCB_SIZE;
> @@ -89,7 +89,7 @@ _dl_try_allocate_static_tls (struct link_map *map, bool optional)
>  		   + map->l_tls_firstbyte_offset);
>    size_t used = offset + map->l_tls_blocksize;
>  
> -  if (used > GL(dl_tls_static_size))
> +  if (used > GLRO (dl_tls_static_size))
>      goto fail;
>  
>    /* Account optional static TLS surplus usage.  */

Ok.

> diff --git a/elf/dl-tls.c b/elf/dl-tls.c
> index 67781bc108..91031c2b72 100644
> --- a/elf/dl-tls.c
> +++ b/elf/dl-tls.c
> @@ -300,9 +300,9 @@ _dl_determine_tlsoffset (void)
>      }
>  
>    GL(dl_tls_static_used) = offset;
> -  GL(dl_tls_static_size) = (roundup (offset + GLRO(dl_tls_static_surplus),
> -				     max_align)
> -			    + TLS_TCB_SIZE);
> +  GLRO (dl_tls_static_size) = (roundup (offset + GLRO(dl_tls_static_surplus),
> +					max_align)
> +			       + TLS_TCB_SIZE);

Ok.

>  #elif TLS_DTV_AT_TP
>    /* The TLS blocks start right after the TCB.  */
>    size_t offset = TLS_TCB_SIZE;
> @@ -345,14 +345,14 @@ _dl_determine_tlsoffset (void)
>      }
>  
>    GL(dl_tls_static_used) = offset;
> -  GL(dl_tls_static_size) = roundup (offset + GLRO(dl_tls_static_surplus),
> -				    TLS_TCB_ALIGN);
> +  GLRO (dl_tls_static_size) = roundup (offset + GLRO(dl_tls_static_surplus),
> +				       TLS_TCB_ALIGN);
>  #else
>  # error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
>  #endif
>  
>    /* The alignment requirement for the static TLS block.  */
> -  GL(dl_tls_static_align) = max_align;
> +  GLRO (dl_tls_static_align) = max_align;
>  }
>  #endif /* SHARED */
>  
> @@ -391,8 +391,8 @@ allocate_dtv (void *result)
>  void
>  _dl_get_tls_static_info (size_t *sizep, size_t *alignp)
>  {
> -  *sizep = GL(dl_tls_static_size);
> -  *alignp = GL(dl_tls_static_align);
> +  *sizep = GLRO (dl_tls_static_size);
> +  *alignp = GLRO (dl_tls_static_align);
>  }
>  
>  /* Derive the location of the pointer to the start of the original
> @@ -416,7 +416,7 @@ void *
>  _dl_allocate_tls_storage (void)
>  {
>    void *result;
> -  size_t size = GL(dl_tls_static_size);
> +  size_t size = GLRO (dl_tls_static_size);
>  
>  #if TLS_DTV_AT_TP
>    /* Memory layout is:
> @@ -427,7 +427,7 @@ _dl_allocate_tls_storage (void)
>  
>    /* Perform the allocation.  Reserve space for the required alignment
>       and the pointer to the original allocation.  */
> -  size_t alignment = GL(dl_tls_static_align);
> +  size_t alignment = GLRO (dl_tls_static_align);
>    void *allocated = malloc (size + alignment + sizeof (void *));
>    if (__glibc_unlikely (allocated == NULL))
>      return NULL;
> @@ -436,7 +436,7 @@ _dl_allocate_tls_storage (void)
>  #if TLS_TCB_AT_TP
>    /* The TCB follows the TLS blocks, which determine the alignment.
>       (TCB alignment requirements have been taken into account when
> -     calculating GL(dl_tls_static_align).)  */
> +     calculating GLRO (dl_tls_static_align).)  */
>    void *aligned = (void *) roundup ((uintptr_t) allocated, alignment);
>    result = aligned + size - TLS_TCB_SIZE;
>  

Ok.

> diff --git a/elf/rtld_static_init.c b/elf/rtld_static_init.c
> index cd823096d6..bded6bd2d4 100644
> --- a/elf/rtld_static_init.c
> +++ b/elf/rtld_static_init.c
> @@ -51,6 +51,12 @@ __rtld_static_init (struct link_map *map)
>    dl->_dl_hwcap2 = _dl_hwcap2;
>    extern __typeof (dl->_dl_pagesize) _dl_pagesize attribute_hidden;
>    dl->_dl_pagesize = _dl_pagesize;
> +  extern __typeof (dl->_dl_tls_static_align) _dl_tls_static_align
> +    attribute_hidden;
> +  dl->_dl_tls_static_align = _dl_tls_static_align;
> +  extern __typeof (dl->_dl_tls_static_size) _dl_tls_static_size
> +    attribute_hidden;
> +  dl->_dl_tls_static_size = _dl_tls_static_size;
>  
>    __rtld_static_init_arch (map, dl);
>  }

Ok.

> diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
> index c288f3a2a1..e383aa1dc3 100644
> --- a/sysdeps/generic/ldsodefs.h
> +++ b/sysdeps/generic/ldsodefs.h
> @@ -437,12 +437,8 @@ struct rtld_global
>    } *_dl_tls_dtv_slotinfo_list;
>    /* Number of modules in the static TLS block.  */
>    EXTERN size_t _dl_tls_static_nelem;
> -  /* Size of the static TLS block.  */
> -  EXTERN size_t _dl_tls_static_size;
>    /* Size actually allocated in the static TLS block.  */
>    EXTERN size_t _dl_tls_static_used;
> -  /* Alignment requirement of the static TLS block.  */
> -  EXTERN size_t _dl_tls_static_align;
>    /* Remaining amount of static TLS that may be used for optimizing
>       dynamic TLS access (e.g. with TLSDESC).  */
>    EXTERN size_t _dl_tls_static_optional;
> @@ -610,6 +606,12 @@ struct rtld_global_ro
>       binaries, don't honor for PIEs).  */
>    EXTERN ElfW(Addr) _dl_use_load_bias;
>  
> +  /* Size of the static TLS block.  */
> +  EXTERN size_t _dl_tls_static_size;
> +
> +  /* Alignment requirement of the static TLS block.  */
> +  EXTERN size_t _dl_tls_static_align;
> +
>    /* Size of surplus space in the static TLS area for dynamically
>       loaded modules with IE-model TLS or for TLSDESC optimization.
>       See comments in elf/dl-tls.c where it is initialized.  */
> 

Ok.

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 03/23] elf: Partially initialize ld.so after static dlopen (bug 20802)
  2021-05-13 19:35   ` Adhemerval Zanella
@ 2021-05-13 20:09     ` Florian Weimer
  2021-05-13 20:11       ` Adhemerval Zanella
  0 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-13 20:09 UTC (permalink / raw)
  To: Adhemerval Zanella; +Cc: libc-alpha

* Adhemerval Zanella:

>> diff --git a/elf/dl-open.c b/elf/dl-open.c
>> index 0887fc5cc5..7e018bb44c 100644
>> --- a/elf/dl-open.c
>> +++ b/elf/dl-open.c
>> @@ -35,6 +35,7 @@
>>  #include <libc-internal.h>
>>  #include <array_length.h>
>>  #include <libc-early-init.h>
>> +#include <gnu/lib-names.h>
>>  
>>  #include <dl-dst.h>
>>  #include <dl-prop.h>
>> @@ -590,8 +591,20 @@ dl_open_worker (void *a)
>>    /* So far, so good.  Now check the versions.  */
>>    for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
>>      if (new->l_searchlist.r_list[i]->l_real->l_versions == NULL)
>> -      (void) _dl_check_map_versions (new->l_searchlist.r_list[i]->l_real,
>> -				     0, 0);
>> +      {
>> +	struct link_map *map = new->l_searchlist.r_list[i]->l_real;
>> +	(void) _dl_check_map_versions (map, 0, 0);
>
> Why the cast here?

I don't know, it awas in the old code.  Presumably to indicate that it's
okay to ignore the return status.

>> +void
>> +__rtld_static_init (struct link_map *map)
>> +{
>> +  const ElfW(Sym) *sym
>> +    = _dl_lookup_direct (map, "_rtld_global_ro",
>> +                         0x9f28436a, /* dl_new_hash output.  */
>> +                         "GLIBC_PRIVATE",
>> +                         0x0963cf85); /* _dl_elf_hash output.  */
>> +  assert (sym != NULL);
>> +  struct rtld_global_ro *dl = DL_SYMBOL_ADDRESS (map, sym);
>> +
>> +  /* Perform partial initialization here.  Note that this runs before
>> +     ld.so is relocated, so only members initialized without
>> +     relocations can be written here.  */
>
> This is tricky, how can we be sure about which members do not need
> relocations?

I think only initializers that have an address dependency trigger
relocations.  Anything else will evaluate to a constant and directly be
emitted by the assembler (as this is C, not C++).

>> diff --git a/elf/tst-getauxval-static.c b/elf/tst-getauxval-static.c
>> new file mode 100644
>> index 0000000000..1d5dc86915
>> --- /dev/null
>> +++ b/elf/tst-getauxval-static.c
>> @@ -0,0 +1,66 @@
>> +/* Test getauxval from a dynamic library after static dlopen.
>> +   Copyright (C) 2016 Free Software Foundation, Inc.
>
> Is this date correct?

Yes and no.  I wrote the test in 2016 (before support/ existed
apparently), but I think the recommendation is to use the year of the
commit date.  I had already fixed it locally after posting.

>> +static int
>> +do_test (void)
>> +{
>> +  unsigned long outer_random = getauxval (AT_RANDOM);
>> +  if (outer_random == 0)
>> +    FAIL_UNSUPPORTED ("getauxval does not support RT_RANDOM");
>
> s/RT_RANDOM/AT_RANDOM

Thanks, fixed

Florian


^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 03/23] elf: Partially initialize ld.so after static dlopen (bug 20802)
  2021-05-13 20:09     ` Florian Weimer
@ 2021-05-13 20:11       ` Adhemerval Zanella
  2021-05-13 20:44         ` Florian Weimer
  0 siblings, 1 reply; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 20:11 UTC (permalink / raw)
  To: Florian Weimer; +Cc: libc-alpha



On 13/05/2021 17:09, Florian Weimer wrote:
> * Adhemerval Zanella:
> 
>>> diff --git a/elf/dl-open.c b/elf/dl-open.c
>>> index 0887fc5cc5..7e018bb44c 100644
>>> --- a/elf/dl-open.c
>>> +++ b/elf/dl-open.c
>>> @@ -35,6 +35,7 @@
>>>  #include <libc-internal.h>
>>>  #include <array_length.h>
>>>  #include <libc-early-init.h>
>>> +#include <gnu/lib-names.h>
>>>  
>>>  #include <dl-dst.h>
>>>  #include <dl-prop.h>
>>> @@ -590,8 +591,20 @@ dl_open_worker (void *a)
>>>    /* So far, so good.  Now check the versions.  */
>>>    for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
>>>      if (new->l_searchlist.r_list[i]->l_real->l_versions == NULL)
>>> -      (void) _dl_check_map_versions (new->l_searchlist.r_list[i]->l_real,
>>> -				     0, 0);
>>> +      {
>>> +	struct link_map *map = new->l_searchlist.r_list[i]->l_real;
>>> +	(void) _dl_check_map_versions (map, 0, 0);
>>
>> Why the cast here?
> 
> I don't know, it awas in the old code.  Presumably to indicate that it's
> okay to ignore the return status.

I think it should be safer to remove it, as the current code does
(the function does not have the attribute to emit an warning when
it is ignored).

> 
>>> +void
>>> +__rtld_static_init (struct link_map *map)
>>> +{
>>> +  const ElfW(Sym) *sym
>>> +    = _dl_lookup_direct (map, "_rtld_global_ro",
>>> +                         0x9f28436a, /* dl_new_hash output.  */
>>> +                         "GLIBC_PRIVATE",
>>> +                         0x0963cf85); /* _dl_elf_hash output.  */
>>> +  assert (sym != NULL);
>>> +  struct rtld_global_ro *dl = DL_SYMBOL_ADDRESS (map, sym);
>>> +
>>> +  /* Perform partial initialization here.  Note that this runs before
>>> +     ld.so is relocated, so only members initialized without
>>> +     relocations can be written here.  */
>>
>> This is tricky, how can we be sure about which members do not need
>> relocations?
> 
> I think only initializers that have an address dependency trigger
> relocations.  Anything else will evaluate to a constant and directly be
> emitted by the assembler (as this is C, not C++).

My point is how can we be used that adding a initialization on
__rtld_static_init is safe? If it requires relocations, will loader
emit and issue to warn us?

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 12/23] nptl: Introduce __nptl_deferred_init
  2021-05-12 16:58 ` [PATCH 12/23] nptl: Introduce __nptl_deferred_init Florian Weimer
@ 2021-05-13 20:20   ` Adhemerval Zanella
  2021-05-13 20:51     ` Florian Weimer
  0 siblings, 1 reply; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 20:20 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
> This function is called once by pthread_create, before spawning
> the first thread, and also within pthread_cancel.  Since it sets up
> cancellation handlers, place it along with the pthread_cancel
> implementation within libc.

Why does it need to be initialized by pthread_create as well?  I think
moving the initialization to pthread_cancel and only setting once
when pthread_cancel is called (and not tying to __libc_single_threaded)
is slight better since it avoids the setup of SIGCANCEL for programs
that do not use cancellation.

Also, it seems wrong that pthread_cancel.c it the implementation
that setups both SIGCANCEL and SIGSETXID.  It also seems wrong
the rt_sigprocmask, SIG_UNBLOCK for pthread_cancel.

I think it would be better to just setup the SIGCANCEL on pthread_cancel.c
and move the the SIGSETXID to nptl/nptl_setxid.c.

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 15/23] nptl: Remove unused nptl/pthread_getcpuclockid.c implementation
  2021-05-12 16:58 ` [PATCH 15/23] nptl: Remove unused nptl/pthread_getcpuclockid.c implementation Florian Weimer
@ 2021-05-13 20:22   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 20:22 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
> ---

LGTM, thanks.

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

>  nptl/pthread_getcpuclockid.c | 54 ------------------------------------
>  1 file changed, 54 deletions(-)
>  delete mode 100644 nptl/pthread_getcpuclockid.c
> 
> diff --git a/nptl/pthread_getcpuclockid.c b/nptl/pthread_getcpuclockid.c
> deleted file mode 100644
> index ebc48d59ea..0000000000
> --- a/nptl/pthread_getcpuclockid.c
> +++ /dev/null
> @@ -1,54 +0,0 @@
> -/* Copyright (C) 2000-2021 Free Software Foundation, Inc.
> -   This file is part of the GNU C Library.
> -
> -   The GNU C Library is free software; you can redistribute it and/or
> -   modify it under the terms of the GNU Lesser General Public License as
> -   published by the Free Software Foundation; either version 2.1 of the
> -   License, or (at your option) any later version.
> -
> -   The GNU C Library is distributed in the hope that it will be useful,
> -   but WITHOUT ANY WARRANTY; without even the implied warranty of
> -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> -   Lesser General Public License for more details.
> -
> -   You should have received a copy of the GNU Lesser General Public
> -   License along with the GNU C Library; see the file COPYING.LIB.  If
> -   not, see <https://www.gnu.org/licenses/>.  */
> -
> -#include <errno.h>
> -#include <pthreadP.h>
> -#include <sys/time.h>
> -#include <tls.h>
> -
> -
> -int
> -pthread_getcpuclockid (pthread_t threadid, clockid_t *clockid)
> -{
> -  struct pthread *pd = (struct pthread *) threadid;
> -
> -  /* Make sure the descriptor is valid.  */
> -  if (INVALID_TD_P (pd))
> -    /* Not a valid thread handle.  */
> -    return ESRCH;
> -
> -#ifdef CLOCK_THREAD_CPUTIME_ID
> -  /* We need to store the thread ID in the CLOCKID variable together
> -     with a number identifying the clock.  We reserve the low 3 bits
> -     for the clock ID and the rest for the thread ID.  This is
> -     problematic if the thread ID is too large.  But 29 bits should be
> -     fine.
> -
> -     If some day more clock IDs are needed the ID part can be
> -     enlarged.  The IDs are entirely internal.  */
> -  if (pd->tid >= 1 << (8 * sizeof (*clockid) - CLOCK_IDFIELD_SIZE))
> -    return ERANGE;
> -
> -  /* Store the number.  */
> -  *clockid = CLOCK_THREAD_CPUTIME_ID | (pd->tid << CLOCK_IDFIELD_SIZE);
> -
> -  return 0;
> -#else
> -  /* We don't have a timer for that.  */
> -  return ENOENT;
> -#endif
> -}
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 16/23] Linux: Move implementation of pthread_getcpuclockid to nptl directory
  2021-05-12 16:58 ` [PATCH 16/23] Linux: Move implementation of pthread_getcpuclockid to nptl directory Florian Weimer
@ 2021-05-13 20:23   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-13 20:23 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
> ---

LGTM, maybe combine with the previous patch.

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

>  {sysdeps/unix/sysv/linux => nptl}/pthread_getcpuclockid.c | 0
>  1 file changed, 0 insertions(+), 0 deletions(-)
>  rename {sysdeps/unix/sysv/linux => nptl}/pthread_getcpuclockid.c (100%)
> 
> diff --git a/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c b/nptl/pthread_getcpuclockid.c
> similarity index 100%
> rename from sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
> rename to nptl/pthread_getcpuclockid.c
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 03/23] elf: Partially initialize ld.so after static dlopen (bug 20802)
  2021-05-13 20:11       ` Adhemerval Zanella
@ 2021-05-13 20:44         ` Florian Weimer
  0 siblings, 0 replies; 63+ messages in thread
From: Florian Weimer @ 2021-05-13 20:44 UTC (permalink / raw)
  To: Adhemerval Zanella; +Cc: libc-alpha

* Adhemerval Zanella:

> On 13/05/2021 17:09, Florian Weimer wrote:
>> * Adhemerval Zanella:
>> 
>>>> diff --git a/elf/dl-open.c b/elf/dl-open.c
>>>> index 0887fc5cc5..7e018bb44c 100644
>>>> --- a/elf/dl-open.c
>>>> +++ b/elf/dl-open.c
>>>> @@ -35,6 +35,7 @@
>>>>  #include <libc-internal.h>
>>>>  #include <array_length.h>
>>>>  #include <libc-early-init.h>
>>>> +#include <gnu/lib-names.h>
>>>>  
>>>>  #include <dl-dst.h>
>>>>  #include <dl-prop.h>
>>>> @@ -590,8 +591,20 @@ dl_open_worker (void *a)
>>>>    /* So far, so good.  Now check the versions.  */
>>>>    for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
>>>>      if (new->l_searchlist.r_list[i]->l_real->l_versions == NULL)
>>>> -      (void) _dl_check_map_versions (new->l_searchlist.r_list[i]->l_real,
>>>> -				     0, 0);
>>>> +      {
>>>> +	struct link_map *map = new->l_searchlist.r_list[i]->l_real;
>>>> +	(void) _dl_check_map_versions (map, 0, 0);
>>>
>>> Why the cast here?
>> 
>> I don't know, it awas in the old code.  Presumably to indicate that it's
>> okay to ignore the return status.
>
> I think it should be safer to remove it, as the current code does
> (the function does not have the attribute to emit an warning when
> it is ignored).

Okay, it's gone.

>>>> +void
>>>> +__rtld_static_init (struct link_map *map)
>>>> +{
>>>> +  const ElfW(Sym) *sym
>>>> +    = _dl_lookup_direct (map, "_rtld_global_ro",
>>>> +                         0x9f28436a, /* dl_new_hash output.  */
>>>> +                         "GLIBC_PRIVATE",
>>>> +                         0x0963cf85); /* _dl_elf_hash output.  */
>>>> +  assert (sym != NULL);
>>>> +  struct rtld_global_ro *dl = DL_SYMBOL_ADDRESS (map, sym);
>>>> +
>>>> +  /* Perform partial initialization here.  Note that this runs before
>>>> +     ld.so is relocated, so only members initialized without
>>>> +     relocations can be written here.  */
>>>
>>> This is tricky, how can we be sure about which members do not need
>>> relocations?
>> 
>> I think only initializers that have an address dependency trigger
>> relocations.  Anything else will evaluate to a constant and directly be
>> emitted by the assembler (as this is C, not C++).
>
> My point is how can we be used that adding a initialization on
> __rtld_static_init is safe? If it requires relocations, will loader
> emit and issue to warn us?

Ahh, this isn't waht I meant.  __rtld_static_init is statically linked
(not in ld.so) and therefore itself fully relocated.  My concern is that
the relocation of the just-loaded ld.so might overwrite the
initialization in __rtld_static_init.  Not sure how to express that
better.

I'm also very confused how all this works on REL (not RELA) targets with
their in-place addends if they need a bootstrap relocation.  Does this
work because we only handle relative relocations during bootstrap
relocation, and those do never have addends (or rather, addends are
expressed differently) and are therefore idempotent?

Thanks,
Florian


^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 12/23] nptl: Introduce __nptl_deferred_init
  2021-05-13 20:20   ` Adhemerval Zanella
@ 2021-05-13 20:51     ` Florian Weimer
  2021-05-14 11:57       ` Adhemerval Zanella
  0 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-13 20:51 UTC (permalink / raw)
  To: Adhemerval Zanella; +Cc: libc-alpha

* Adhemerval Zanella:

> On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
>> This function is called once by pthread_create, before spawning
>> the first thread, and also within pthread_cancel.  Since it sets up
>> cancellation handlers, place it along with the pthread_cancel
>> implementation within libc.
>
> Why does it need to be initialized by pthread_create as well?  I think
> moving the initialization to pthread_cancel and only setting once
> when pthread_cancel is called (and not tying to __libc_single_threaded)
> is slight better since it avoids the setup of SIGCANCEL for programs
> that do not use cancellation.

We need to unblock SIGCANCEL anyway, so that we can send the signal.
This part can't be deferred until pthread_cancel is called.

We could delay installing the SIGCANCEL handler because it's a global
resource, assuming that unshare (CLONE_SIGHAND) will fail in the kernel.

> Also, it seems wrong that pthread_cancel.c it the implementation
> that setups both SIGCANCEL and SIGSETXID.  It also seems wrong
> the rt_sigprocmask, SIG_UNBLOCK for pthread_cancel.

Hmm.  Should we have separate initialization functions then?

> I think it would be better to just setup the SIGCANCEL on pthread_cancel.c
> and move the the SIGSETXID to nptl/nptl_setxid.c.

As I said, we have to unblock SIGCANCEL as part of pthread_create anyway
(for both the old and the new thread).

Thanks,
Florian


^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 12/23] nptl: Introduce __nptl_deferred_init
  2021-05-13 20:51     ` Florian Weimer
@ 2021-05-14 11:57       ` Adhemerval Zanella
  2021-05-14 12:22         ` Florian Weimer
  0 siblings, 1 reply; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-14 11:57 UTC (permalink / raw)
  To: Florian Weimer; +Cc: libc-alpha



On 13/05/2021 17:51, Florian Weimer wrote:
> * Adhemerval Zanella:
> 
>> On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
>>> This function is called once by pthread_create, before spawning
>>> the first thread, and also within pthread_cancel.  Since it sets up
>>> cancellation handlers, place it along with the pthread_cancel
>>> implementation within libc.
>>
>> Why does it need to be initialized by pthread_create as well?  I think
>> moving the initialization to pthread_cancel and only setting once
>> when pthread_cancel is called (and not tying to __libc_single_threaded)
>> is slight better since it avoids the setup of SIGCANCEL for programs
>> that do not use cancellation.
> 
> We need to unblock SIGCANCEL anyway, so that we can send the signal.
> This part can't be deferred until pthread_cancel is called.

Yes, what it seems to be wrong is unblocking it on both pthread_create
*and* on pthread_cancel.

> 
> We could delay installing the SIGCANCEL handler because it's a global
> resource, assuming that unshare (CLONE_SIGHAND) will fail in the kernel.
> 
>> Also, it seems wrong that pthread_cancel.c it the implementation
>> that setups both SIGCANCEL and SIGSETXID.  It also seems wrong
>> the rt_sigprocmask, SIG_UNBLOCK for pthread_cancel.
> 
> Hmm.  Should we have separate initialization functions then?

I think so, it is more logical (pthread_cancel only handles SIGCANCEL).

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 12/23] nptl: Introduce __nptl_deferred_init
  2021-05-14 11:57       ` Adhemerval Zanella
@ 2021-05-14 12:22         ` Florian Weimer
  2021-05-14 13:29           ` Adhemerval Zanella
  0 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-14 12:22 UTC (permalink / raw)
  To: Adhemerval Zanella; +Cc: libc-alpha

* Adhemerval Zanella:

> On 13/05/2021 17:51, Florian Weimer wrote:
>> * Adhemerval Zanella:
>> 
>>> On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
>>>> This function is called once by pthread_create, before spawning
>>>> the first thread, and also within pthread_cancel.  Since it sets up
>>>> cancellation handlers, place it along with the pthread_cancel
>>>> implementation within libc.
>>>
>>> Why does it need to be initialized by pthread_create as well?  I think
>>> moving the initialization to pthread_cancel and only setting once
>>> when pthread_cancel is called (and not tying to __libc_single_threaded)
>>> is slight better since it avoids the setup of SIGCANCEL for programs
>>> that do not use cancellation.
>> 
>> We need to unblock SIGCANCEL anyway, so that we can send the signal.
>> This part can't be deferred until pthread_cancel is called.
>
> Yes, what it seems to be wrong is unblocking it on both pthread_create
> *and* on pthread_cancel.

We need to unblock in pthread_cancel too, to support self-cancel in a
single-threaded process.

Do you know if we ever change the signal mask to enable/disable
asynchronous cancellation?  I don't think so.  Then we could support
self-cancel simply by calling the signal handler.  (It would not matter
whether the process is multi-threaded or not.)

If we do that, I think it is simpler to do all the initialization in
pthread_create.

Thanks,
Florian


^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 13/23] nptl: Eliminate the __static_tls_size, __static_tls_align_m1 variables
  2021-05-12 16:58 ` [PATCH 13/23] nptl: Eliminate the __static_tls_size, __static_tls_align_m1 variables Florian Weimer
@ 2021-05-14 12:40   ` Adhemerval Zanella
  2021-05-17  8:14     ` Florian Weimer
  0 siblings, 1 reply; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-14 12:40 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
> Use the  __nptl_tls_static_size_for_stack inline function instead,
> and the GLRO (dl_tls_static_align) value directly.
> 
> The computation of GLRO (dl_tls_static_align)  in
> _dl_determine_tlsoffset ensures that the alignment is at least
> TLS_TCB_ALIGN, which at least STACK_ALIGN (see allocate_stack).
> Therefore, the additional rounding-up step is removed.
> 
> ALso move the initialization of the default stack size from
> __pthread_initialize_minimal_internal to __pthread_early_init.
> This introduces an extra system call during single-threaded startup,
> but this simplifies the initialization sequence.  No locking is
> needed around the writes to __default_pthread_attr because the
> process is single-threaded at this point.

LGTM, with some comments below.

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

> ---
>  elf/dl-tls.c                      |  5 ++--
>  nptl/allocatestack.c              | 25 +++++++++--------
>  nptl/nptl-init.c                  | 46 ++-----------------------------
>  nptl/nptl-stack.h                 | 11 +++++++-
>  nptl/pthreadP.h                   |  4 ---
>  sysdeps/nptl/pthread_early_init.h | 28 +++++++++++++++++++
>  6 files changed, 58 insertions(+), 61 deletions(-)
> 
> diff --git a/elf/dl-tls.c b/elf/dl-tls.c
> index 91031c2b72..e531ec5913 100644
> --- a/elf/dl-tls.c
> +++ b/elf/dl-tls.c
> @@ -386,8 +386,9 @@ allocate_dtv (void *result)
>    return result;
>  }
>  
> -
> -/* Get size and alignment requirements of the static TLS block.  */
> +/* Get size and alignment requirements of the static TLS block.  This
> +   function is no longer used by glibc itself, but the GCC sanitizers
> +   use it despite the GLIBC_PRIVATE status.  */
>  void
>  _dl_get_tls_static_info (size_t *sizep, size_t *alignp)
>  {

Ok. I am not very found of adding this as de facto ABI, maybe we
proper export it outside GLIBC_PRIVATE since now binaries do rely
on them (since the sanitizer API project seems to be stalled).

> diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c
> index c0a5c4d96d..dc81a2ca73 100644
> --- a/nptl/allocatestack.c
> +++ b/nptl/allocatestack.c
> @@ -254,6 +254,8 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
>    struct pthread *pd;
>    size_t size;
>    size_t pagesize_m1 = __getpagesize () - 1;
> +  size_t tls_static_size_for_stack = __nptl_tls_static_size_for_stack ();
> +  size_t tls_static_align_m1 = GLRO (dl_tls_static_align) - 1;
>  
>    assert (powerof2 (pagesize_m1 + 1));
>    assert (TCB_ALIGNMENT >= STACK_ALIGN);
> @@ -284,17 +286,18 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
>        /* If the user also specified the size of the stack make sure it
>  	 is large enough.  */
>        if (attr->stacksize != 0
> -	  && attr->stacksize < (__static_tls_size + MINIMAL_REST_STACK))
> +	  && attr->stacksize < (tls_static_size_for_stack
> +				+ MINIMAL_REST_STACK))
>  	return EINVAL;
>  
>        /* Adjust stack size for alignment of the TLS block.  */

Ok.

>  #if TLS_TCB_AT_TP
>        adj = ((uintptr_t) stackaddr - TLS_TCB_SIZE)
> -	    & __static_tls_align_m1;
> +	    & tls_static_align_m1;
>        assert (size > adj + TLS_TCB_SIZE);
>  #elif TLS_DTV_AT_TP
> -      adj = ((uintptr_t) stackaddr - __static_tls_size)
> -	    & __static_tls_align_m1;
> +      adj = ((uintptr_t) stackaddr - tls_static_size_for_stack)
> +	    & tls_static_align_m1;
>        assert (size > adj);
>  #endif
>  

Ok.

> @@ -307,7 +310,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
>  			       - TLS_TCB_SIZE - adj);
>  #elif TLS_DTV_AT_TP
>        pd = (struct pthread *) (((uintptr_t) stackaddr
> -				- __static_tls_size - adj)
> +				- tls_static_size_for_stack - adj)
>  			       - TLS_PRE_TCB_SIZE);
>  #endif
>  
> @@ -366,7 +369,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
>  			| ((GL(dl_stack_flags) & PF_X) ? PROT_EXEC : 0));
>  
>        /* Adjust the stack size for alignment.  */
> -      size &= ~__static_tls_align_m1;
> +      size &= ~tls_static_align_m1;
>        assert (size != 0);
>  
>        /* Make sure the size of the stack is enough for the guard and

Ok.

> @@ -385,7 +388,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
>  	/* Arithmetic overflow.  */
>  	return EINVAL;
>        size += guardsize;
> -      if (__builtin_expect (size < ((guardsize + __static_tls_size
> +      if (__builtin_expect (size < ((guardsize + tls_static_size_for_stack
>  				     + MINIMAL_REST_STACK + pagesize_m1)
>  				    & ~pagesize_m1),
>  			    0))

Use __glibc_likely here.

> @@ -414,11 +417,11 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
>  #if TLS_TCB_AT_TP
>  	  pd = (struct pthread *) ((((uintptr_t) mem + size)
>  				    - TLS_TCB_SIZE)
> -				   & ~__static_tls_align_m1);
> +				   & ~tls_static_align_m1);
>  #elif TLS_DTV_AT_TP
>  	  pd = (struct pthread *) ((((uintptr_t) mem + size
> -				    - __static_tls_size)
> -				    & ~__static_tls_align_m1)
> +				    - tls_static_size_for_stack)
> +				    & ~tls_static_align_m1)
>  				   - TLS_PRE_TCB_SIZE);
>  #endif
>  

Ok.

> @@ -602,7 +605,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
>  
>  # if TLS_TCB_AT_TP
>    /* The stack begins before the TCB and the static TLS block.  */
> -  stacktop = ((char *) (pd + 1) - __static_tls_size);
> +  stacktop = ((char *) (pd + 1) - tls_static_size_for_stack);
>  # elif TLS_DTV_AT_TP
>    stacktop = (char *) (pd - 1);
>  # endif

Ok.

> diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
> index bc4831ac89..732e580355 100644
> --- a/nptl/nptl-init.c
> +++ b/nptl/nptl-init.c
> @@ -36,10 +36,7 @@
>  #include <kernel-features.h>
>  #include <libc-pointer-arith.h>
>  #include <pthread_mutex_conf.h>
> -
> -/* Size and alignment of static TLS block.  */
> -size_t __static_tls_size;
> -size_t __static_tls_align_m1;
> +#include <nptl-stack.h>
>  
>  /* Version of the library, used in libthread_db to detect mismatches.  */
>  static const char nptl_version[] __attribute_used__ = VERSION;
> @@ -47,44 +44,6 @@ static const char nptl_version[] __attribute_used__ = VERSION;
>  void
>  __pthread_initialize_minimal_internal (void)
>  {
> -  /* Get the size of the static and alignment requirements for the TLS
> -     block.  */
> -  size_t static_tls_align;
> -  _dl_get_tls_static_info (&__static_tls_size, &static_tls_align);
> -
> -  /* Make sure the size takes all the alignments into account.  */
> -  if (STACK_ALIGN > static_tls_align)
> -    static_tls_align = STACK_ALIGN;
> -  __static_tls_align_m1 = static_tls_align - 1;
> -
> -  __static_tls_size = roundup (__static_tls_size, static_tls_align);
> -
> -  /* Determine the default allowed stack size.  This is the size used
> -     in case the user does not specify one.  */
> -  struct rlimit limit;
> -  if (__getrlimit (RLIMIT_STACK, &limit) != 0
> -      || limit.rlim_cur == RLIM_INFINITY)
> -    /* The system limit is not usable.  Use an architecture-specific
> -       default.  */
> -    limit.rlim_cur = ARCH_STACK_DEFAULT_SIZE;
> -  else if (limit.rlim_cur < PTHREAD_STACK_MIN)
> -    /* The system limit is unusably small.
> -       Use the minimal size acceptable.  */
> -    limit.rlim_cur = PTHREAD_STACK_MIN;
> -
> -  /* Make sure it meets the minimum size that allocate_stack
> -     (allocatestack.c) will demand, which depends on the page size.  */
> -  const uintptr_t pagesz = GLRO(dl_pagesize);
> -  const size_t minstack = pagesz + __static_tls_size + MINIMAL_REST_STACK;
> -  if (limit.rlim_cur < minstack)
> -    limit.rlim_cur = minstack;
> -
> -  /* Round the resource limit up to page size.  */
> -  limit.rlim_cur = ALIGN_UP (limit.rlim_cur, pagesz);
> -  lll_lock (__default_pthread_attr_lock, LLL_PRIVATE);
> -  __default_pthread_attr.internal.stacksize = limit.rlim_cur;
> -  __default_pthread_attr.internal.guardsize = GLRO (dl_pagesize);
> -  lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE);
>  }
>  strong_alias (__pthread_initialize_minimal_internal,
>  	      __pthread_initialize_minimal)

Do we still need the empty __pthread_initialize_minimal_internal function?

> @@ -101,5 +60,6 @@ strong_alias (__pthread_initialize_minimal_internal,
>  size_t
>  __pthread_get_minstack (const pthread_attr_t *attr)
>  {
> -  return GLRO(dl_pagesize) + __static_tls_size + PTHREAD_STACK_MIN;
> +  return (GLRO(dl_pagesize) + __nptl_tls_static_size_for_stack ()
> +	  + PTHREAD_STACK_MIN);
>  }

Ok.

> diff --git a/nptl/nptl-stack.h b/nptl/nptl-stack.h
> index 8631b61816..a6bd8df77f 100644
> --- a/nptl/nptl-stack.h
> +++ b/nptl/nptl-stack.h
> @@ -20,7 +20,8 @@
>  #ifndef _NPTL_STACK_H
>  #define _NPTL_STACK_H
>  
> -#include <descr.h>
> +#include <nptl/descr.h>
> +#include <ldsodefs.h>
>  #include <list.h>
>  #include <stdbool.h>
>  
> @@ -47,4 +48,12 @@ libc_hidden_proto (__nptl_deallocate_stack)
>  /* Free stacks until cache size is lower than LIMIT.  */
>  void __nptl_free_stacks (size_t limit) attribute_hidden;
>  
> +/* Compute the size of the static TLS area based on data from the
> +   dynamic loader.  */
> +static inline size_t
> +__nptl_tls_static_size_for_stack (void)
> +{
> +  return roundup (GLRO (dl_tls_static_size), GLRO (dl_tls_static_align));
> +}
> +
>  #endif /* _NPTL_STACK_H */

Ok.

> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index e33b071a4d..9ee61af8b3 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -205,10 +205,6 @@ libc_hidden_proto (__default_pthread_attr_lock)
>  /* Called from __libc_freeres to deallocate the default attribute.  */
>  extern void __default_pthread_attr_freeres (void) attribute_hidden;
>  
> -/* Size and alignment of static TLS block.  */
> -extern size_t __static_tls_size attribute_hidden;
> -extern size_t __static_tls_align_m1 attribute_hidden;
> -
>  /* Attribute handling.  */
>  extern struct pthread_attr *__attr_list attribute_hidden;
>  extern int __attr_list_lock attribute_hidden;

Ok.

> diff --git a/sysdeps/nptl/pthread_early_init.h b/sysdeps/nptl/pthread_early_init.h
> index 2d15303dd9..5b49ce39c2 100644
> --- a/sysdeps/nptl/pthread_early_init.h
> +++ b/sysdeps/nptl/pthread_early_init.h
> @@ -19,12 +19,40 @@
>  #ifndef _PTHREAD_EARLY_INIT_H
>  #define _PTHREAD_EARLY_INIT_H 1
>  
> +#include <nptl/nptl-stack.h>
>  #include <nptl/pthreadP.h>
>  #include <pthread_mutex_conf.h>
> +#include <sys/resource.h>
>  
>  static inline void
>  __pthread_early_init (void)
>  {
> +  /* Determine the default allowed stack size.  This is the size used
> +     in case the user does not specify one.  */
> +  struct rlimit limit;
> +  if (__getrlimit (RLIMIT_STACK, &limit) != 0
> +      || limit.rlim_cur == RLIM_INFINITY)
> +    /* The system limit is not usable.  Use an architecture-specific
> +       default.  */
> +    limit.rlim_cur = ARCH_STACK_DEFAULT_SIZE;
> +  else if (limit.rlim_cur < PTHREAD_STACK_MIN)
> +    /* The system limit is unusably small.
> +       Use the minimal size acceptable.  */
> +    limit.rlim_cur = PTHREAD_STACK_MIN;

Maybe we should move away from non-LFS inside glibc call and use 
__getlimit64 instead here.

> +
> +  /* Make sure it meets the minimum size that allocate_stack
> +     (allocatestack.c) will demand, which depends on the page size.  */
> +  const uintptr_t pagesz = GLRO(dl_pagesize);
> +  const size_t minstack = (pagesz + __nptl_tls_static_size_for_stack ()
> +                           + MINIMAL_REST_STACK);
> +  if (limit.rlim_cur < minstack)
> +    limit.rlim_cur = minstack;
> +
> +  /* Round the resource limit up to page size.  */
> +  limit.rlim_cur = ALIGN_UP (limit.rlim_cur, pagesz);
> +  __default_pthread_attr.internal.stacksize = limit.rlim_cur;
> +  __default_pthread_attr.internal.guardsize = GLRO (dl_pagesize);
> +
>  #if HAVE_TUNABLES
>    __pthread_tunables_init ();
>  #endif
> 

Ok.

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 12/23] nptl: Introduce __nptl_deferred_init
  2021-05-14 12:22         ` Florian Weimer
@ 2021-05-14 13:29           ` Adhemerval Zanella
  2021-05-14 19:16             ` Carlos O'Donell
  0 siblings, 1 reply; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-14 13:29 UTC (permalink / raw)
  To: Florian Weimer; +Cc: libc-alpha



On 14/05/2021 09:22, Florian Weimer wrote:
> * Adhemerval Zanella:
> 
>> On 13/05/2021 17:51, Florian Weimer wrote:
>>> * Adhemerval Zanella:
>>>
>>>> On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
>>>>> This function is called once by pthread_create, before spawning
>>>>> the first thread, and also within pthread_cancel.  Since it sets up
>>>>> cancellation handlers, place it along with the pthread_cancel
>>>>> implementation within libc.
>>>>
>>>> Why does it need to be initialized by pthread_create as well?  I think
>>>> moving the initialization to pthread_cancel and only setting once
>>>> when pthread_cancel is called (and not tying to __libc_single_threaded)
>>>> is slight better since it avoids the setup of SIGCANCEL for programs
>>>> that do not use cancellation.
>>>
>>> We need to unblock SIGCANCEL anyway, so that we can send the signal.
>>> This part can't be deferred until pthread_cancel is called.
>>
>> Yes, what it seems to be wrong is unblocking it on both pthread_create
>> *and* on pthread_cancel.
> 
> We need to unblock in pthread_cancel too, to support self-cancel in a
> single-threaded process.

We don't really need in fact, pthread_cancel can call __pthread_exit
directly if the argument is THREAD_SELF. And with my canceltype and
cancelstate refactor we don't even need the whole atomic bit set
support.

> 
> Do you know if we ever change the signal mask to enable/disable
> asynchronous cancellation?  I don't think so.  Then we could support
> self-cancel simply by calling the signal handler.  (It would not matter
> whether the process is multi-threaded or not.)
> 
> If we do that, I think it is simpler to do all the initialization in
> pthread_create.
> 
> Thanks,
> Florian
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 14/23] nptl: Move pthread_getattr_default_np into libc
  2021-05-12 16:58 ` [PATCH 14/23] nptl: Move pthread_getattr_default_np into libc Florian Weimer
@ 2021-05-14 14:00   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-14 14:00 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
> 
> A new placeholder symbol __libpthread_version_placeholder@GLIBC_2.18
> is needed to keep the GLIBC_2.18 symbol version in libpthread.
> The __pthread_getattr_default_np@@GLIBC_PRIVATE export is used
> from pthread_create.

LGTM, thanks.

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

> ---
>  nptl/Makefile                                      |  2 +-
>  nptl/Versions                                      |  8 +++++++-
>  nptl/libpthread-compat.c                           |  6 ++++++
>  nptl/pthreadP.h                                    |  2 +-
>  nptl/pthread_getattr_default_np.c                  | 14 +++++++++++---
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/aarch64/libpthread.abilist |  2 +-
>  sysdeps/unix/sysv/linux/alpha/libc.abilist         |  2 ++
>  sysdeps/unix/sysv/linux/alpha/libpthread.abilist   |  2 +-
>  sysdeps/unix/sysv/linux/arc/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/arc/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/arm/be/libpthread.abilist  |  2 +-
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/arm/le/libpthread.abilist  |  2 +-
>  sysdeps/unix/sysv/linux/csky/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/csky/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/hppa/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/i386/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/i386/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/ia64/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/ia64/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist |  2 ++
>  .../sysv/linux/m68k/coldfire/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist   |  2 ++
>  .../unix/sysv/linux/m68k/m680x0/libpthread.abilist |  2 +-
>  sysdeps/unix/sysv/linux/microblaze/be/libc.abilist |  2 ++
>  .../sysv/linux/microblaze/be/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/microblaze/le/libc.abilist |  2 ++
>  .../sysv/linux/microblaze/le/libpthread.abilist    |  1 -
>  .../unix/sysv/linux/mips/mips32/fpu/libc.abilist   |  2 ++
>  .../unix/sysv/linux/mips/mips32/libpthread.abilist |  2 +-
>  .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist |  2 ++
>  .../unix/sysv/linux/mips/mips64/libpthread.abilist |  2 +-
>  .../unix/sysv/linux/mips/mips64/n32/libc.abilist   |  2 ++
>  .../unix/sysv/linux/mips/mips64/n64/libc.abilist   |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist         |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libpthread.abilist   |  1 -
>  .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist  |  2 ++
>  .../linux/powerpc/powerpc32/libpthread.abilist     |  2 +-
>  .../linux/powerpc/powerpc32/nofpu/libc.abilist     |  2 ++
>  .../sysv/linux/powerpc/powerpc64/be/libc.abilist   |  2 ++
>  .../linux/powerpc/powerpc64/be/libpthread.abilist  |  2 +-
>  .../sysv/linux/powerpc/powerpc64/le/libc.abilist   |  2 ++
>  .../linux/powerpc/powerpc64/le/libpthread.abilist  |  2 +-
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist    |  2 ++
>  .../unix/sysv/linux/riscv/rv32/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist    |  2 ++
>  .../unix/sysv/linux/riscv/rv64/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist  |  2 ++
>  .../sysv/linux/s390/s390-32/libpthread.abilist     |  2 +-
>  sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist  |  2 ++
>  .../sysv/linux/s390/s390-64/libpthread.abilist     |  2 +-
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist         |  2 ++
>  sysdeps/unix/sysv/linux/sh/be/libpthread.abilist   |  2 +-
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist         |  2 ++
>  sysdeps/unix/sysv/linux/sh/le/libpthread.abilist   |  2 +-
>  sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist |  2 ++
>  .../sysv/linux/sparc/sparc32/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist |  2 ++
>  .../sysv/linux/sparc/sparc64/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist     |  2 ++
>  .../unix/sysv/linux/x86_64/64/libpthread.abilist   |  2 +-
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist    |  2 ++
>  .../unix/sysv/linux/x86_64/x32/libpthread.abilist  |  2 +-
>  66 files changed, 112 insertions(+), 35 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index b57b010779..a7c1932332 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -113,6 +113,7 @@ routines = \
>    pthread_equal \
>    pthread_exit \
>    pthread_getaffinity \
> +  pthread_getattr_default_np \
>    pthread_getattr_np \
>    pthread_getconcurrency \
>    pthread_getschedparam \
> @@ -205,7 +206,6 @@ libpthread-routines = \
>    nptl-init \
>    pt-interp \
>    pthread_create \
> -  pthread_getattr_default_np \
>    pthread_getcpuclockid \
>    pthread_getname \
>    pthread_setaffinity \

Ok.

> diff --git a/nptl/Versions b/nptl/Versions
> index 200055cffa..657a53d658 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -189,6 +189,7 @@ libc {
>      pthread_mutexattr_setrobust;
>    }
>    GLIBC_2.18 {
> +    pthread_getattr_default_np;
>      pthread_setattr_default_np;
>    }
>    # C11 thread symbols.
> @@ -282,6 +283,7 @@ libc {
>      pthread_condattr_setclock;
>      pthread_condattr_setpshared;
>      pthread_detach;
> +    pthread_getattr_default_np;
>      pthread_getconcurrency;
>      pthread_getspecific;
>      pthread_join;
> @@ -393,6 +395,7 @@ libc {
>      __pthread_enable_asynccancel;
>      __pthread_force_elision;
>      __pthread_getattr_default_np;
> +    __pthread_getattr_default_np;
>      __pthread_keys;
>      __pthread_mutex_unlock_usercnt;
>      __pthread_setcancelstate;

Ok.

> @@ -474,7 +477,10 @@ libpthread {
>    };
>  
>    GLIBC_2.18 {
> -    pthread_getattr_default_np;
> +    __libpthread_version_placeholder;
> +  }
> +
> +  GLIBC_2.19 {
>    }
>  
>    # C11 thread symbols.

Ok.

> diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
> index bc9ee36df0..c828fd8f9e 100644
> --- a/nptl/libpthread-compat.c
> +++ b/nptl/libpthread-compat.c
> @@ -65,6 +65,12 @@ compat_symbol (libpthread, __libpthread_version_placeholder_1,
>  	       __libpthread_version_placeholder, GLIBC_2_4);
>  #endif
>  
> +#if SHLIB_COMPAT (libpthread, GLIBC_2_18, GLIBC_2_19) \
> +  && ABI_libpthread_GLIBC_2_18 != ABI_libpthread_GLIBC_2_0
> +compat_symbol (libpthread, __libpthread_version_placeholder_1,
> +	       __libpthread_version_placeholder, GLIBC_2_18);
> +#endif
> +
>  #if (SHLIB_COMPAT (libpthread, GLIBC_2_30, GLIBC_2_31))
>  compat_symbol (libpthread, __libpthread_version_placeholder_1,
>  	       __libpthread_version_placeholder, GLIBC_2_30);

Ok.

> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index 9ee61af8b3..3e9da9c7ea 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -406,7 +406,7 @@ extern int __pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
>  int __pthread_attr_setaffinity_np (pthread_attr_t *, size_t, const cpu_set_t *);
>  libc_hidden_proto (__pthread_attr_setaffinity_np)
>  extern __typeof (pthread_getattr_default_np) __pthread_getattr_default_np;
> -libpthread_hidden_proto (__pthread_getattr_default_np)
> +libc_hidden_proto (__pthread_getattr_default_np)
>  extern int __pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
>  				  const pthread_rwlockattr_t *__restrict
>  				  __attr);

Ok.

> diff --git a/nptl/pthread_getattr_default_np.c b/nptl/pthread_getattr_default_np.c
> index c403d1231c..f38f687431 100644
> --- a/nptl/pthread_getattr_default_np.c
> +++ b/nptl/pthread_getattr_default_np.c
> @@ -17,14 +17,22 @@
>     <https://www.gnu.org/licenses/>.  */
>  
>  #include <pthreadP.h>
> +#include <shlib-compat.h>
>  
>  int
> -__pthread_getattr_default_np (pthread_attr_t *out)
> +___pthread_getattr_default_np (pthread_attr_t *out)
>  {
>    lll_lock (__default_pthread_attr_lock, LLL_PRIVATE);
>    int ret = __pthread_attr_copy (out, &__default_pthread_attr.external);
>    lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE);
>    return ret;
>  }
> -libpthread_hidden_def (__pthread_getattr_default_np)
> -weak_alias (__pthread_getattr_default_np, pthread_getattr_default_np)
> +versioned_symbol (libc, ___pthread_getattr_default_np,
> +                  pthread_getattr_default_np, GLIBC_2_34);
> +versioned_symbol (libc, ___pthread_getattr_default_np,
> +                  __pthread_getattr_default_np, GLIBC_PRIVATE);
> +
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_18, GLIBC_2_34)
> +compat_symbol (libpthread, ___pthread_getattr_default_np,
> +               pthread_getattr_default_np, GLIBC_2_18);
> +#endif

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index ee5a5523f4..9ab880c72a 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -2199,6 +2199,7 @@ GLIBC_2.17 xprt_register F
>  GLIBC_2.17 xprt_unregister F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
>  GLIBC_2.18 _mcount F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.22 fmemopen F
>  GLIBC_2.23 fts64_children F
> @@ -2364,6 +2365,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index e476011333..ebd930eee5 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -6,7 +6,7 @@ GLIBC_2.17 pthread_setaffinity_np F
>  GLIBC_2.17 pthread_setname_np F
>  GLIBC_2.17 pthread_setschedprio F
>  GLIBC_2.17 pthread_sigqueue F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 387007f7aa..b99aa07295 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1865,6 +1865,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.2 _IO_adjust_wcolumn F
>  GLIBC_2.2 _IO_fgetpos F
> @@ -2454,6 +2455,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 990366049d..4f5f151530 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -6,7 +6,7 @@ GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 2cfd596853..4a4ae72dad 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1433,6 +1433,7 @@ GLIBC_2.32 pthread_detach F
>  GLIBC_2.32 pthread_equal F
>  GLIBC_2.32 pthread_exit F
>  GLIBC_2.32 pthread_getaffinity_np F
> +GLIBC_2.32 pthread_getattr_default_np F
>  GLIBC_2.32 pthread_getattr_np F
>  GLIBC_2.32 pthread_getconcurrency F
>  GLIBC_2.32 pthread_getschedparam F
> @@ -2123,6 +2124,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index 2ee77456dc..9bb26a4ac4 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.32 __errno_location F
>  GLIBC_2.32 pthread_create F
> -GLIBC_2.32 pthread_getattr_default_np F
>  GLIBC_2.32 pthread_getcpuclockid F
>  GLIBC_2.32 pthread_getname_np F
>  GLIBC_2.32 pthread_setaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index f7373394fd..c86ef8913d 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -74,6 +74,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.22 fmemopen F
>  GLIBC_2.23 fts64_children F
> @@ -233,6 +234,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index cef7ed6237..b550c922bf 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -1,7 +1,7 @@
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index cce828e28a..627b485571 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -74,6 +74,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.22 fmemopen F
>  GLIBC_2.23 fts64_children F
> @@ -230,6 +231,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index cef7ed6237..b550c922bf 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -1,7 +1,7 @@
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index c74d145e6b..eec048321d 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1492,6 +1492,7 @@ GLIBC_2.29 pthread_detach F
>  GLIBC_2.29 pthread_equal F
>  GLIBC_2.29 pthread_exit F
>  GLIBC_2.29 pthread_getaffinity_np F
> +GLIBC_2.29 pthread_getattr_default_np F
>  GLIBC_2.29 pthread_getattr_np F
>  GLIBC_2.29 pthread_getconcurrency F
>  GLIBC_2.29 pthread_getschedparam F
> @@ -2307,6 +2308,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 42df3c726d..4014014a3f 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.29 __errno_location F
>  GLIBC_2.29 pthread_create F
> -GLIBC_2.29 pthread_getattr_default_np F
>  GLIBC_2.29 pthread_getcpuclockid F
>  GLIBC_2.29 pthread_getname_np F
>  GLIBC_2.29 pthread_setaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 0d5acb6c89..24a4c0b90b 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -77,6 +77,7 @@ GLIBC_2.17 secure_getenv F
>  GLIBC_2.17 sys_errlist D 0x410
>  GLIBC_2.17 sys_nerr D 0x4
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.19 fanotify_mark F
>  GLIBC_2.2 _Exit F
> @@ -2259,6 +2260,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 04c8975664..96d1dd51d2 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -1,7 +1,7 @@
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index e739d7788a..e4481f9520 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1867,6 +1867,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.2 _IO_adjust_wcolumn F
>  GLIBC_2.2 _IO_fgetpos F
> @@ -2442,6 +2443,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index 990366049d..4f5f151530 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -6,7 +6,7 @@ GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 975d3d3070..0202e484ff 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -74,6 +74,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.2 _Exit F
>  GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
> @@ -2295,6 +2296,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 04c8975664..96d1dd51d2 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -1,7 +1,7 @@
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 18f69e5bd3..8ce579eb44 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -75,6 +75,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.22 fmemopen F
>  GLIBC_2.23 fts64_children F
> @@ -234,6 +235,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index cef7ed6237..b550c922bf 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -1,7 +1,7 @@
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index c04fc80932..01843db834 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1823,6 +1823,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.2 _IO_adjust_wcolumn F
>  GLIBC_2.2 _IO_fgetpos F
> @@ -2385,6 +2386,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index 990366049d..4f5f151530 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -6,7 +6,7 @@ GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 91676762d1..8a3d634f46 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1494,6 +1494,7 @@ GLIBC_2.18 pthread_detach F
>  GLIBC_2.18 pthread_equal F
>  GLIBC_2.18 pthread_exit F
>  GLIBC_2.18 pthread_getaffinity_np F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_getattr_np F
>  GLIBC_2.18 pthread_getconcurrency F
>  GLIBC_2.18 pthread_getschedparam F
> @@ -2358,6 +2359,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index 3186b124fc..7029d1e887 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_getcpuclockid F
>  GLIBC_2.18 pthread_getname_np F
>  GLIBC_2.18 pthread_setaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index b61b7efc69..0fd67bfe75 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1494,6 +1494,7 @@ GLIBC_2.18 pthread_detach F
>  GLIBC_2.18 pthread_equal F
>  GLIBC_2.18 pthread_exit F
>  GLIBC_2.18 pthread_getaffinity_np F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_getattr_np F
>  GLIBC_2.18 pthread_getconcurrency F
>  GLIBC_2.18 pthread_getschedparam F
> @@ -2355,6 +2356,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index 3186b124fc..7029d1e887 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_getcpuclockid F
>  GLIBC_2.18 pthread_getname_np F
>  GLIBC_2.18 pthread_setaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index e053d8ad44..b5ddc9223d 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1424,6 +1424,7 @@ GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
>  GLIBC_2.18 __mips_fpu_getcw F
>  GLIBC_2.18 __mips_fpu_setcw F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.19 getrlimit64 F
>  GLIBC_2.19 setrlimit64 F
> @@ -2350,6 +2351,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index 5d662334df..35ed1d1b60 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index d17deca37d..0401fa1910 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1422,6 +1422,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.19 getrlimit64 F
>  GLIBC_2.19 setrlimit64 F
> @@ -2348,6 +2349,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index 5d662334df..35ed1d1b60 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index e1fda2a811..5139b67189 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1422,6 +1422,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.19 getrlimit64 F
>  GLIBC_2.19 setrlimit64 F
> @@ -2356,6 +2357,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 4d0673d7a9..a14aa6c93a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1420,6 +1420,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.2 _Exit F
>  GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
> @@ -2350,6 +2351,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index f417ac1d6d..b00cc87c2e 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1537,6 +1537,7 @@ GLIBC_2.21 pthread_detach F
>  GLIBC_2.21 pthread_equal F
>  GLIBC_2.21 pthread_exit F
>  GLIBC_2.21 pthread_getaffinity_np F
> +GLIBC_2.21 pthread_getattr_default_np F
>  GLIBC_2.21 pthread_getattr_np F
>  GLIBC_2.21 pthread_getconcurrency F
>  GLIBC_2.21 pthread_getschedparam F
> @@ -2397,6 +2398,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 41c9a5f97d..543c3221eb 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.21 __errno_location F
>  GLIBC_2.21 pthread_create F
> -GLIBC_2.21 pthread_getattr_default_np F
>  GLIBC_2.21 pthread_getcpuclockid F
>  GLIBC_2.21 pthread_getname_np F
>  GLIBC_2.21 pthread_setaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index c51ae17a5c..8529703a5a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1829,6 +1829,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.2 _IO_adjust_wcolumn F
>  GLIBC_2.2 _IO_fgetpos F
> @@ -2412,6 +2413,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index 698a17837f..e3a4a8cb4f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -6,7 +6,7 @@ GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index de52f0b14f..2657f37e62 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1829,6 +1829,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.19 __atomic_feclearexcept F
>  GLIBC_2.19 __atomic_feholdexcept F
> @@ -2445,6 +2446,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 98dc2c37db..54ce0f911c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -75,6 +75,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.22 fmemopen F
>  GLIBC_2.23 fts64_children F
> @@ -2260,6 +2261,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index c224f8de1a..dfd44d67d0 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -1,7 +1,7 @@
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3 __errno_location F
>  GLIBC_2.3 pthread_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 8be99e5849..11553b21a9 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -2286,6 +2286,7 @@ GLIBC_2.17 xencrypt F
>  GLIBC_2.17 xprt_register F
>  GLIBC_2.17 xprt_unregister F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.22 fmemopen F
>  GLIBC_2.23 fts64_children F
> @@ -2560,6 +2561,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index e476011333..ebd930eee5 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -6,7 +6,7 @@ GLIBC_2.17 pthread_setaffinity_np F
>  GLIBC_2.17 pthread_setname_np F
>  GLIBC_2.17 pthread_setschedprio F
>  GLIBC_2.17 pthread_sigqueue F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index aee2f59bb0..7650629bd0 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1435,6 +1435,7 @@ GLIBC_2.33 pthread_detach F
>  GLIBC_2.33 pthread_equal F
>  GLIBC_2.33 pthread_exit F
>  GLIBC_2.33 pthread_getaffinity_np F
> +GLIBC_2.33 pthread_getattr_default_np F
>  GLIBC_2.33 pthread_getattr_np F
>  GLIBC_2.33 pthread_getconcurrency F
>  GLIBC_2.33 pthread_getschedparam F
> @@ -2125,6 +2126,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index e5b76b829d..e5ea464b5c 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.33 __errno_location F
>  GLIBC_2.33 pthread_create F
> -GLIBC_2.33 pthread_getattr_default_np F
>  GLIBC_2.33 pthread_getcpuclockid F
>  GLIBC_2.33 pthread_getname_np F
>  GLIBC_2.33 pthread_setaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index ef4f86b1ce..5d3321728c 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1482,6 +1482,7 @@ GLIBC_2.27 pthread_detach F
>  GLIBC_2.27 pthread_equal F
>  GLIBC_2.27 pthread_exit F
>  GLIBC_2.27 pthread_getaffinity_np F
> +GLIBC_2.27 pthread_getattr_default_np F
>  GLIBC_2.27 pthread_getattr_np F
>  GLIBC_2.27 pthread_getconcurrency F
>  GLIBC_2.27 pthread_getschedparam F
> @@ -2325,6 +2326,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index d697ba7e19..c8723da669 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.27 __errno_location F
>  GLIBC_2.27 pthread_create F
> -GLIBC_2.27 pthread_getattr_default_np F
>  GLIBC_2.27 pthread_getcpuclockid F
>  GLIBC_2.27 pthread_getname_np F
>  GLIBC_2.27 pthread_setaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 420c5eb1b0..20cf480080 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1819,6 +1819,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.19 __longjmp_chk F
>  GLIBC_2.19 __sigsetjmp F
> @@ -2410,6 +2411,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index cba826514c..dad6202523 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -6,7 +6,7 @@ GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.19 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index e3fd068bf4..e6dd727487 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -78,6 +78,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.19 __longjmp_chk F
>  GLIBC_2.19 __sigsetjmp F
> @@ -2297,6 +2298,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 787e56be1b..1c1c65ffcd 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -1,7 +1,7 @@
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.19 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 7d43481afa..feefe0ba54 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -78,6 +78,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.2 _Exit F
>  GLIBC_2.2 _IO_2_1_stderr_ D 0x98
> @@ -2266,6 +2267,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index 04c8975664..96d1dd51d2 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -1,7 +1,7 @@
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index adc53a4d54..e34f45cd08 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -78,6 +78,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.2 _Exit F
>  GLIBC_2.2 _IO_2_1_stderr_ D 0x98
> @@ -2263,6 +2264,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index 04c8975664..96d1dd51d2 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -1,7 +1,7 @@
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index abcdb0deec..a47858e4d1 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1825,6 +1825,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.2 _IO_adjust_wcolumn F
>  GLIBC_2.2 _IO_fgetpos F
> @@ -2403,6 +2404,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 990366049d..4f5f151530 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -6,7 +6,7 @@ GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 2bfe9c786b..50777a3806 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -83,6 +83,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.2 _Exit F
>  GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
> @@ -2316,6 +2317,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 04c8975664..96d1dd51d2 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -1,7 +1,7 @@
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index b6f9385076..922730fc2c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -76,6 +76,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.2.5 _Exit F
>  GLIBC_2.2.5 _IO_2_1_stderr_ D 0xe0
> @@ -2275,6 +2276,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 931013d746..9b6138ac89 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -1,7 +1,7 @@
>  GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2.5 __errno_location F
>  GLIBC_2.2.5 pthread_create F
>  GLIBC_2.2.5 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 61ae4b65f4..b232b5545e 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -2209,6 +2209,7 @@ GLIBC_2.17 clock_nanosleep F
>  GLIBC_2.17 clock_settime F
>  GLIBC_2.17 secure_getenv F
>  GLIBC_2.18 __cxa_thread_atexit_impl F
> +GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.22 fmemopen F
>  GLIBC_2.23 fts64_children F
> @@ -2379,6 +2380,7 @@ GLIBC_2.34 pthread_condattr_getpshared F
>  GLIBC_2.34 pthread_condattr_setclock F
>  GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
> +GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 94d721b81f..0554188755 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -6,7 +6,7 @@ GLIBC_2.16 pthread_setaffinity_np F
>  GLIBC_2.16 pthread_setname_np F
>  GLIBC_2.16 pthread_setschedprio F
>  GLIBC_2.16 pthread_sigqueue F
> -GLIBC_2.18 pthread_getattr_default_np F
> +GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 17/23] nptl: Move pthread_getcpuclockid into libc
  2021-05-12 16:58 ` [PATCH 17/23] nptl: Move pthread_getcpuclockid into libc Florian Weimer
@ 2021-05-14 14:05   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-14 14:05 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
> 
> __libpthread_version_placeholder@@GLIBC_2.2 is needed by this change;
> the Versions entry for GLIBC_2.2 in libpthread had leftover symbols
> due to an error in a previous conflict resolution.  The condition
> for the placeholder symbol is complicated because some architectures
> have earlier symbols at the GLIBC_2.2 symbol versions, so the
> placeholder is not required there (yet).

LGTM, thanks.

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

> ---
>  nptl/Makefile                                         |  2 +-
>  nptl/Versions                                         |  7 +++----
>  nptl/libpthread-compat.c                              | 10 ++++++++++
>  nptl/pthread_getcpuclockid.c                          | 11 +++++++++--
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/aarch64/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/alpha/libpthread.abilist      |  2 +-
>  sysdeps/unix/sysv/linux/arc/libc.abilist              |  2 ++
>  sysdeps/unix/sysv/linux/arc/libpthread.abilist        |  1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/arm/be/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/arm/le/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/csky/libpthread.abilist       |  1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/hppa/libpthread.abilist       |  1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/i386/libpthread.abilist       |  2 +-
>  sysdeps/unix/sysv/linux/ia64/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/ia64/libpthread.abilist       |  1 -
>  sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist    |  2 ++
>  .../unix/sysv/linux/m68k/coldfire/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist      |  2 ++
>  .../unix/sysv/linux/m68k/m680x0/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/microblaze/be/libc.abilist    |  2 ++
>  .../unix/sysv/linux/microblaze/be/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/microblaze/le/libc.abilist    |  2 ++
>  .../unix/sysv/linux/microblaze/le/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist  |  2 ++
>  .../unix/sysv/linux/mips/mips32/libpthread.abilist    |  1 -
>  .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist    |  2 ++
>  .../unix/sysv/linux/mips/mips64/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist  |  2 ++
>  sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist  |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libpthread.abilist      |  1 -
>  .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist     |  2 ++
>  .../sysv/linux/powerpc/powerpc32/libpthread.abilist   |  2 +-
>  .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist   |  2 ++
>  .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist |  2 ++
>  .../linux/powerpc/powerpc64/be/libpthread.abilist     |  1 -
>  .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist |  2 ++
>  .../linux/powerpc/powerpc64/le/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist     |  2 ++
>  .../unix/sysv/linux/s390/s390-32/libpthread.abilist   |  2 +-
>  sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist     |  2 ++
>  .../unix/sysv/linux/s390/s390-64/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/sh/be/libpthread.abilist      |  1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/sh/le/libpthread.abilist      |  1 -
>  sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist    |  2 ++
>  .../unix/sysv/linux/sparc/sparc32/libpthread.abilist  |  2 +-
>  sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist    |  2 ++
>  .../unix/sysv/linux/sparc/sparc64/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist |  1 -
>  65 files changed, 93 insertions(+), 36 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index a7c1932332..9c810b2b6c 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -116,6 +116,7 @@ routines = \
>    pthread_getattr_default_np \
>    pthread_getattr_np \
>    pthread_getconcurrency \
> +  pthread_getcpuclockid \
>    pthread_getschedparam \
>    pthread_getspecific \
>    pthread_join \
> @@ -206,7 +207,6 @@ libpthread-routines = \
>    nptl-init \
>    pt-interp \
>    pthread_create \
> -  pthread_getcpuclockid \
>    pthread_getname \
>    pthread_setaffinity \
>    pthread_setname \

Ok.

> diff --git a/nptl/Versions b/nptl/Versions
> index 657a53d658..18ead25af6 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -127,6 +127,7 @@ libc {
>      pthread_barrierattr_setpshared;
>      pthread_condattr_getpshared;
>      pthread_condattr_setpshared;
> +    pthread_getcpuclockid;
>      pthread_mutex_timedlock;
>      pthread_mutexattr_getpshared;
>      pthread_mutexattr_setpshared;
> @@ -285,6 +286,7 @@ libc {
>      pthread_detach;
>      pthread_getattr_default_np;
>      pthread_getconcurrency;
> +    pthread_getcpuclockid;
>      pthread_getspecific;
>      pthread_join;
>      pthread_key_create;
> @@ -435,10 +437,7 @@ libpthread {
>    }
>  
>    GLIBC_2.2 {
> -    pthread_getcpuclockid;
> -    pthread_yield;
> -    pthread_rwlock_timedrdlock;
> -    pthread_rwlock_timedwrlock;
> +    __libpthread_version_placeholder;
>    }
>  
>    GLIBC_2.2.3 {

Ok.

> diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
> index c828fd8f9e..18069870d1 100644
> --- a/nptl/libpthread-compat.c
> +++ b/nptl/libpthread-compat.c
> @@ -45,6 +45,16 @@ compat_symbol (libpthread, __libpthread_version_placeholder_1,
>  	       __libpthread_version_placeholder, GLIBC_2_1_2);
>  #endif
>  
> +/* Do not create the placeholder symbol version if there are other
> +   symbols left that keep the version around (because GLIBC_2.0 got
> +   promoted to GLIBC_2.2).  */
> +#if SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_2_3) \
> +  && ABI_libpthread_GLIBC_2_2 != ABI_libpthread_GLIBC_2_0 \
> +  && ABI_libpthread_GLIBC_2_2 != ABI_libpthread_GLIBC_2_1_3
> +compat_symbol (libpthread, __libpthread_version_placeholder_1,
> +	       __libpthread_version_placeholder, GLIBC_2_2);
> +#endif
> +
>  #if (SHLIB_COMPAT (libpthread, GLIBC_2_2_3, GLIBC_2_2_4))
>  compat_symbol (libpthread, __libpthread_version_placeholder_1,
>  	       __libpthread_version_placeholder, GLIBC_2_2_3);

Ok.

> diff --git a/nptl/pthread_getcpuclockid.c b/nptl/pthread_getcpuclockid.c
> index ae7122cb5f..0a6656ea4c 100644
> --- a/nptl/pthread_getcpuclockid.c
> +++ b/nptl/pthread_getcpuclockid.c
> @@ -21,10 +21,10 @@
>  #include <sys/time.h>
>  #include <tls.h>
>  #include <kernel-posix-cpu-timers.h>
> -
> +#include <shlib-compat.h>
>  
>  int
> -pthread_getcpuclockid (pthread_t threadid, clockid_t *clockid)
> +__pthread_getcpuclockid (pthread_t threadid, clockid_t *clockid)
>  {
>    struct pthread *pd = (struct pthread *) threadid;
>  
> @@ -40,3 +40,10 @@ pthread_getcpuclockid (pthread_t threadid, clockid_t *clockid)
>    *clockid = tidclock;
>    return 0;
>  }
> +versioned_symbol (libc, __pthread_getcpuclockid, pthread_getcpuclockid,
> +                  GLIBC_2_34);
> +
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
> +compat_symbol (libpthread, __pthread_getcpuclockid, pthread_getcpuclockid,
> +               GLIBC_2_2);
> +#endif

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 9ab880c72a..dde11d1d0b 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1494,6 +1494,7 @@ GLIBC_2.17 pthread_exit F
>  GLIBC_2.17 pthread_getaffinity_np F
>  GLIBC_2.17 pthread_getattr_np F
>  GLIBC_2.17 pthread_getconcurrency F
> +GLIBC_2.17 pthread_getcpuclockid F
>  GLIBC_2.17 pthread_getschedparam F
>  GLIBC_2.17 pthread_getspecific F
>  GLIBC_2.17 pthread_join F
> @@ -2367,6 +2368,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index ebd930eee5..9ac9be4ec4 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.17 __errno_location F
>  GLIBC_2.17 pthread_create F
> -GLIBC_2.17 pthread_getcpuclockid F
>  GLIBC_2.17 pthread_getname_np F
>  GLIBC_2.17 pthread_setaffinity_np F
>  GLIBC_2.17 pthread_setname_np F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index b99aa07295..0c3f66e309 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2031,6 +2031,7 @@ GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_setpshared F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
>  GLIBC_2.2 pthread_mutexattr_setpshared F
> @@ -2457,6 +2458,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 4f5f151530..ae50cb30c6 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -7,7 +7,7 @@ GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
> -GLIBC_2.2 pthread_getcpuclockid F
> +GLIBC_2.2 __libpthread_version_placeholder F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 4a4ae72dad..129040de57 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1436,6 +1436,7 @@ GLIBC_2.32 pthread_getaffinity_np F
>  GLIBC_2.32 pthread_getattr_default_np F
>  GLIBC_2.32 pthread_getattr_np F
>  GLIBC_2.32 pthread_getconcurrency F
> +GLIBC_2.32 pthread_getcpuclockid F
>  GLIBC_2.32 pthread_getschedparam F
>  GLIBC_2.32 pthread_getspecific F
>  GLIBC_2.32 pthread_join F
> @@ -2126,6 +2127,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index 9bb26a4ac4..88273f1424 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.32 __errno_location F
>  GLIBC_2.32 pthread_create F
> -GLIBC_2.32 pthread_getcpuclockid F
>  GLIBC_2.32 pthread_getname_np F
>  GLIBC_2.32 pthread_setaffinity_np F
>  GLIBC_2.32 pthread_setname_np F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index c86ef8913d..822b3f4005 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -236,6 +236,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> @@ -1736,6 +1737,7 @@ GLIBC_2.4 pthread_exit F
>  GLIBC_2.4 pthread_getaffinity_np F
>  GLIBC_2.4 pthread_getattr_np F
>  GLIBC_2.4 pthread_getconcurrency F
> +GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_getschedparam F
>  GLIBC_2.4 pthread_getspecific F
>  GLIBC_2.4 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index b550c922bf..7d023cb181 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -8,6 +8,5 @@ GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __errno_location F
>  GLIBC_2.4 __libpthread_version_placeholder F
>  GLIBC_2.4 pthread_create F
> -GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_setaffinity_np F
>  GLIBC_2.4 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 627b485571..e38c13db21 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -233,6 +233,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> @@ -1733,6 +1734,7 @@ GLIBC_2.4 pthread_exit F
>  GLIBC_2.4 pthread_getaffinity_np F
>  GLIBC_2.4 pthread_getattr_np F
>  GLIBC_2.4 pthread_getconcurrency F
> +GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_getschedparam F
>  GLIBC_2.4 pthread_getspecific F
>  GLIBC_2.4 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index b550c922bf..7d023cb181 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -8,6 +8,5 @@ GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __errno_location F
>  GLIBC_2.4 __libpthread_version_placeholder F
>  GLIBC_2.4 pthread_create F
> -GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_setaffinity_np F
>  GLIBC_2.4 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index eec048321d..899002975d 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1495,6 +1495,7 @@ GLIBC_2.29 pthread_getaffinity_np F
>  GLIBC_2.29 pthread_getattr_default_np F
>  GLIBC_2.29 pthread_getattr_np F
>  GLIBC_2.29 pthread_getconcurrency F
> +GLIBC_2.29 pthread_getcpuclockid F
>  GLIBC_2.29 pthread_getschedparam F
>  GLIBC_2.29 pthread_getspecific F
>  GLIBC_2.29 pthread_join F
> @@ -2310,6 +2311,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 4014014a3f..95574381d5 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.29 __errno_location F
>  GLIBC_2.29 pthread_create F
> -GLIBC_2.29 pthread_getcpuclockid F
>  GLIBC_2.29 pthread_getname_np F
>  GLIBC_2.29 pthread_setaffinity_np F
>  GLIBC_2.29 pthread_setname_np F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 24a4c0b90b..dda8816136 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -1313,6 +1313,7 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_getschedparam F
>  GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_join F
> @@ -2262,6 +2263,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 96d1dd51d2..1c20789e32 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
> -GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index e4481f9520..1ecc3a30bd 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2040,6 +2040,7 @@ GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_setpshared F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
>  GLIBC_2.2 pthread_mutexattr_setpshared F
> @@ -2445,6 +2446,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index 4f5f151530..ae50cb30c6 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -7,7 +7,7 @@ GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
> -GLIBC_2.2 pthread_getcpuclockid F
> +GLIBC_2.2 __libpthread_version_placeholder F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 0202e484ff..e3aefdeed6 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -1334,6 +1334,7 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_getschedparam F
>  GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_join F
> @@ -2298,6 +2299,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 96d1dd51d2..1c20789e32 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
> -GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 8ce579eb44..e3d4b739aa 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -237,6 +237,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> @@ -1716,6 +1717,7 @@ GLIBC_2.4 pthread_exit F
>  GLIBC_2.4 pthread_getaffinity_np F
>  GLIBC_2.4 pthread_getattr_np F
>  GLIBC_2.4 pthread_getconcurrency F
> +GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_getschedparam F
>  GLIBC_2.4 pthread_getspecific F
>  GLIBC_2.4 pthread_join F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index b550c922bf..7d023cb181 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -8,6 +8,5 @@ GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __errno_location F
>  GLIBC_2.4 __libpthread_version_placeholder F
>  GLIBC_2.4 pthread_create F
> -GLIBC_2.4 pthread_getcpuclockid F
>  GLIBC_2.4 pthread_setaffinity_np F
>  GLIBC_2.4 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 01843db834..37eaedebd7 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1996,6 +1996,7 @@ GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_setpshared F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
>  GLIBC_2.2 pthread_mutexattr_setpshared F
> @@ -2388,6 +2389,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index 4f5f151530..ae50cb30c6 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -7,7 +7,7 @@ GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
> -GLIBC_2.2 pthread_getcpuclockid F
> +GLIBC_2.2 __libpthread_version_placeholder F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 8a3d634f46..07729d04e1 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1497,6 +1497,7 @@ GLIBC_2.18 pthread_getaffinity_np F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_getattr_np F
>  GLIBC_2.18 pthread_getconcurrency F
> +GLIBC_2.18 pthread_getcpuclockid F
>  GLIBC_2.18 pthread_getschedparam F
>  GLIBC_2.18 pthread_getspecific F
>  GLIBC_2.18 pthread_join F
> @@ -2361,6 +2362,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index 7029d1e887..67a5cb9ab5 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_getcpuclockid F
>  GLIBC_2.18 pthread_getname_np F
>  GLIBC_2.18 pthread_setaffinity_np F
>  GLIBC_2.18 pthread_setname_np F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 0fd67bfe75..f690095f65 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1497,6 +1497,7 @@ GLIBC_2.18 pthread_getaffinity_np F
>  GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_getattr_np F
>  GLIBC_2.18 pthread_getconcurrency F
> +GLIBC_2.18 pthread_getcpuclockid F
>  GLIBC_2.18 pthread_getschedparam F
>  GLIBC_2.18 pthread_getspecific F
>  GLIBC_2.18 pthread_join F
> @@ -2358,6 +2359,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index 7029d1e887..67a5cb9ab5 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_getcpuclockid F
>  GLIBC_2.18 pthread_getname_np F
>  GLIBC_2.18 pthread_setaffinity_np F
>  GLIBC_2.18 pthread_setname_np F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index b5ddc9223d..a9a33c8d0c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1867,6 +1867,7 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_setpshared F
>  GLIBC_2.2 pthread_getconcurrency F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
>  GLIBC_2.2 pthread_mutexattr_gettype F
> @@ -2353,6 +2354,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index 35ed1d1b60..7ec95cd7f5 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_create F
> -GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 0401fa1910..e592dbac83 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1865,6 +1865,7 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_setpshared F
>  GLIBC_2.2 pthread_getconcurrency F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
>  GLIBC_2.2 pthread_mutexattr_gettype F
> @@ -2351,6 +2352,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index 35ed1d1b60..7ec95cd7f5 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_create F
> -GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 5139b67189..3fea1c5fda 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1865,6 +1865,7 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_setpshared F
>  GLIBC_2.2 pthread_getconcurrency F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
>  GLIBC_2.2 pthread_mutexattr_gettype F
> @@ -2359,6 +2360,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index a14aa6c93a..777ebc3591 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1861,6 +1861,7 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_setpshared F
>  GLIBC_2.2 pthread_getconcurrency F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
>  GLIBC_2.2 pthread_mutexattr_gettype F
> @@ -2353,6 +2354,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index b00cc87c2e..f3c575c293 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1540,6 +1540,7 @@ GLIBC_2.21 pthread_getaffinity_np F
>  GLIBC_2.21 pthread_getattr_default_np F
>  GLIBC_2.21 pthread_getattr_np F
>  GLIBC_2.21 pthread_getconcurrency F
> +GLIBC_2.21 pthread_getcpuclockid F
>  GLIBC_2.21 pthread_getschedparam F
>  GLIBC_2.21 pthread_getspecific F
>  GLIBC_2.21 pthread_join F
> @@ -2400,6 +2401,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 543c3221eb..9924c04cea 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.21 __errno_location F
>  GLIBC_2.21 pthread_create F
> -GLIBC_2.21 pthread_getcpuclockid F
>  GLIBC_2.21 pthread_getname_np F
>  GLIBC_2.21 pthread_setaffinity_np F
>  GLIBC_2.21 pthread_setname_np F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 8529703a5a..1133324bf7 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2001,6 +2001,7 @@ GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_setpshared F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
>  GLIBC_2.2 pthread_mutexattr_setpshared F
> @@ -2415,6 +2416,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index e3a4a8cb4f..0320e73dbb 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -7,7 +7,7 @@ GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
> -GLIBC_2.2 pthread_getcpuclockid F
> +GLIBC_2.2 __libpthread_version_placeholder F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 2657f37e62..d57c7e438f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2005,6 +2005,7 @@ GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_setpshared F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
>  GLIBC_2.2 pthread_mutexattr_setpshared F
> @@ -2448,6 +2449,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 54ce0f911c..c41682739e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -1439,6 +1439,7 @@ GLIBC_2.3 pthread_equal F
>  GLIBC_2.3 pthread_exit F
>  GLIBC_2.3 pthread_getattr_np F
>  GLIBC_2.3 pthread_getconcurrency F
> +GLIBC_2.3 pthread_getcpuclockid F
>  GLIBC_2.3 pthread_getschedparam F
>  GLIBC_2.3 pthread_getspecific F
>  GLIBC_2.3 pthread_join F
> @@ -2263,6 +2264,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index dfd44d67d0..dca9c1f876 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3 __errno_location F
>  GLIBC_2.3 pthread_create F
> -GLIBC_2.3 pthread_getcpuclockid F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 11553b21a9..6b60cdc8eb 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1582,6 +1582,7 @@ GLIBC_2.17 pthread_exit F
>  GLIBC_2.17 pthread_getaffinity_np F
>  GLIBC_2.17 pthread_getattr_np F
>  GLIBC_2.17 pthread_getconcurrency F
> +GLIBC_2.17 pthread_getcpuclockid F
>  GLIBC_2.17 pthread_getschedparam F
>  GLIBC_2.17 pthread_getspecific F
>  GLIBC_2.17 pthread_join F
> @@ -2563,6 +2564,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index ebd930eee5..9ac9be4ec4 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.17 __errno_location F
>  GLIBC_2.17 pthread_create F
> -GLIBC_2.17 pthread_getcpuclockid F
>  GLIBC_2.17 pthread_getname_np F
>  GLIBC_2.17 pthread_setaffinity_np F
>  GLIBC_2.17 pthread_setname_np F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 7650629bd0..bf5e54123f 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1438,6 +1438,7 @@ GLIBC_2.33 pthread_getaffinity_np F
>  GLIBC_2.33 pthread_getattr_default_np F
>  GLIBC_2.33 pthread_getattr_np F
>  GLIBC_2.33 pthread_getconcurrency F
> +GLIBC_2.33 pthread_getcpuclockid F
>  GLIBC_2.33 pthread_getschedparam F
>  GLIBC_2.33 pthread_getspecific F
>  GLIBC_2.33 pthread_join F
> @@ -2128,6 +2129,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index e5ea464b5c..abd4e6a9c4 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.33 __errno_location F
>  GLIBC_2.33 pthread_create F
> -GLIBC_2.33 pthread_getcpuclockid F
>  GLIBC_2.33 pthread_getname_np F
>  GLIBC_2.33 pthread_setaffinity_np F
>  GLIBC_2.33 pthread_setname_np F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 5d3321728c..6387850fd5 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1485,6 +1485,7 @@ GLIBC_2.27 pthread_getaffinity_np F
>  GLIBC_2.27 pthread_getattr_default_np F
>  GLIBC_2.27 pthread_getattr_np F
>  GLIBC_2.27 pthread_getconcurrency F
> +GLIBC_2.27 pthread_getcpuclockid F
>  GLIBC_2.27 pthread_getschedparam F
>  GLIBC_2.27 pthread_getspecific F
>  GLIBC_2.27 pthread_join F
> @@ -2328,6 +2329,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index c8723da669..e43f1e723e 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.27 __errno_location F
>  GLIBC_2.27 pthread_create F
> -GLIBC_2.27 pthread_getcpuclockid F
>  GLIBC_2.27 pthread_getname_np F
>  GLIBC_2.27 pthread_setaffinity_np F
>  GLIBC_2.27 pthread_setname_np F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 20cf480080..dc6d0776f8 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1999,6 +1999,7 @@ GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_setpshared F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
>  GLIBC_2.2 pthread_mutexattr_setpshared F
> @@ -2413,6 +2414,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index dad6202523..c349f281d5 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -8,7 +8,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.19 __libpthread_version_placeholder F
> -GLIBC_2.2 pthread_getcpuclockid F
> +GLIBC_2.2 __libpthread_version_placeholder F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index e6dd727487..f3da8ca119 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -1331,6 +1331,7 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_getschedparam F
>  GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_join F
> @@ -2300,6 +2301,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 1c1c65ffcd..7c42617688 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -5,7 +5,6 @@ GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.19 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
> -GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index feefe0ba54..83ce2ef1c5 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -1317,6 +1317,7 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_getschedparam F
>  GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_join F
> @@ -2269,6 +2270,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index 96d1dd51d2..1c20789e32 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
> -GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index e34f45cd08..ed832e9e5d 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -1317,6 +1317,7 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_getschedparam F
>  GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_join F
> @@ -2266,6 +2267,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index 96d1dd51d2..1c20789e32 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
> -GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index a47858e4d1..d0870d3d75 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1995,6 +1995,7 @@ GLIBC_2.2 pthread_barrierattr_init F
>  GLIBC_2.2 pthread_barrierattr_setpshared F
>  GLIBC_2.2 pthread_condattr_getpshared F
>  GLIBC_2.2 pthread_condattr_setpshared F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_mutex_timedlock F
>  GLIBC_2.2 pthread_mutexattr_getpshared F
>  GLIBC_2.2 pthread_mutexattr_setpshared F
> @@ -2406,6 +2407,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 4f5f151530..ae50cb30c6 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -7,7 +7,7 @@ GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
> -GLIBC_2.2 pthread_getcpuclockid F
> +GLIBC_2.2 __libpthread_version_placeholder F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 50777a3806..58a3cdb004 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -1360,6 +1360,7 @@ GLIBC_2.2 pthread_detach F
>  GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
> +GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2 pthread_getschedparam F
>  GLIBC_2.2 pthread_getspecific F
>  GLIBC_2.2 pthread_join F
> @@ -2319,6 +2320,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 96d1dd51d2..1c20789e32 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
> -GLIBC_2.2 pthread_getcpuclockid F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 922730fc2c..a71bd400c6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -1328,6 +1328,7 @@ GLIBC_2.2.5 pthread_equal F
>  GLIBC_2.2.5 pthread_exit F
>  GLIBC_2.2.5 pthread_getattr_np F
>  GLIBC_2.2.5 pthread_getconcurrency F
> +GLIBC_2.2.5 pthread_getcpuclockid F
>  GLIBC_2.2.5 pthread_getschedparam F
>  GLIBC_2.2.5 pthread_getspecific F
>  GLIBC_2.2.5 pthread_join F
> @@ -2278,6 +2279,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 9b6138ac89..040c0b7b8e 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2.5 __errno_location F
>  GLIBC_2.2.5 pthread_create F
> -GLIBC_2.2.5 pthread_getcpuclockid F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index b232b5545e..cb321c43b3 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1501,6 +1501,7 @@ GLIBC_2.16 pthread_exit F
>  GLIBC_2.16 pthread_getaffinity_np F
>  GLIBC_2.16 pthread_getattr_np F
>  GLIBC_2.16 pthread_getconcurrency F
> +GLIBC_2.16 pthread_getcpuclockid F
>  GLIBC_2.16 pthread_getschedparam F
>  GLIBC_2.16 pthread_getspecific F
>  GLIBC_2.16 pthread_join F
> @@ -2382,6 +2383,7 @@ GLIBC_2.34 pthread_condattr_setpshared F
>  GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
> +GLIBC_2.34 pthread_getcpuclockid F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 0554188755..357774d540 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.16 __errno_location F
>  GLIBC_2.16 pthread_create F
> -GLIBC_2.16 pthread_getcpuclockid F
>  GLIBC_2.16 pthread_getname_np F
>  GLIBC_2.16 pthread_setaffinity_np F
>  GLIBC_2.16 pthread_setname_np F
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 18/23] nptl: Move pthread_getname_np into libc
  2021-05-12 16:58 ` [PATCH 18/23] nptl: Move pthread_getname_np " Florian Weimer
@ 2021-05-14 14:44   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-14 14:44 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.

LGTM, thanks.

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

> ---
>  nptl/Makefile                                      |  2 +-
>  nptl/Versions                                      |  3 ++-
>  nptl/pthread_getname.c                             | 14 ++++++++++----
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/aarch64/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist         |  2 ++
>  sysdeps/unix/sysv/linux/alpha/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/arc/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/arm/be/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/arm/le/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/csky/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/hppa/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/i386/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/ia64/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist |  2 ++
>  .../sysv/linux/m68k/coldfire/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist   |  2 ++
>  .../unix/sysv/linux/m68k/m680x0/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/microblaze/be/libc.abilist |  2 ++
>  .../sysv/linux/microblaze/be/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/microblaze/le/libc.abilist |  2 ++
>  .../sysv/linux/microblaze/le/libpthread.abilist    |  1 -
>  .../unix/sysv/linux/mips/mips32/fpu/libc.abilist   |  2 ++
>  .../unix/sysv/linux/mips/mips32/libpthread.abilist |  1 -
>  .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist |  2 ++
>  .../unix/sysv/linux/mips/mips64/libpthread.abilist |  1 -
>  .../unix/sysv/linux/mips/mips64/n32/libc.abilist   |  2 ++
>  .../unix/sysv/linux/mips/mips64/n64/libc.abilist   |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist         |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libpthread.abilist   |  1 -
>  .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist  |  2 ++
>  .../linux/powerpc/powerpc32/libpthread.abilist     |  1 -
>  .../linux/powerpc/powerpc32/nofpu/libc.abilist     |  2 ++
>  .../sysv/linux/powerpc/powerpc64/be/libc.abilist   |  2 ++
>  .../linux/powerpc/powerpc64/be/libpthread.abilist  |  1 -
>  .../sysv/linux/powerpc/powerpc64/le/libc.abilist   |  2 ++
>  .../linux/powerpc/powerpc64/le/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist    |  2 ++
>  .../unix/sysv/linux/riscv/rv32/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist    |  2 ++
>  .../unix/sysv/linux/riscv/rv64/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist  |  2 ++
>  .../sysv/linux/s390/s390-32/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist  |  2 ++
>  .../sysv/linux/s390/s390-64/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist         |  2 ++
>  sysdeps/unix/sysv/linux/sh/be/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist         |  2 ++
>  sysdeps/unix/sysv/linux/sh/le/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist |  2 ++
>  .../sysv/linux/sparc/sparc32/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist |  2 ++
>  .../sysv/linux/sparc/sparc64/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist     |  2 ++
>  .../unix/sysv/linux/x86_64/64/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist    |  2 ++
>  .../unix/sysv/linux/x86_64/x32/libpthread.abilist  |  1 -
>  64 files changed, 77 insertions(+), 35 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 9c810b2b6c..516410cb84 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -117,6 +117,7 @@ routines = \
>    pthread_getattr_np \
>    pthread_getconcurrency \
>    pthread_getcpuclockid \
> +  pthread_getname \
>    pthread_getschedparam \
>    pthread_getspecific \
>    pthread_join \
> @@ -207,7 +208,6 @@ libpthread-routines = \
>    nptl-init \
>    pt-interp \
>    pthread_create \
> -  pthread_getname \
>    pthread_setaffinity \
>    pthread_setname \
>    pthread_setschedprio \

Ok.

> diff --git a/nptl/Versions b/nptl/Versions
> index 18ead25af6..cfdf548c77 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -185,6 +185,7 @@ libc {
>      pthread_mutexattr_setrobust_np;
>    }
>    GLIBC_2.12 {
> +    pthread_getname_np;
>      pthread_mutex_consistent;
>      pthread_mutexattr_getrobust;
>      pthread_mutexattr_setrobust;
> @@ -287,6 +288,7 @@ libc {
>      pthread_getattr_default_np;
>      pthread_getconcurrency;
>      pthread_getcpuclockid;
> +    pthread_getname_np;
>      pthread_getspecific;
>      pthread_join;
>      pthread_key_create;
> @@ -471,7 +473,6 @@ libpthread {
>    };
>  
>    GLIBC_2.12 {
> -    pthread_getname_np;
>      pthread_setname_np;
>    };
>  

Ok.

> diff --git a/nptl/pthread_getname.c b/nptl/pthread_getname.c
> index d796844e86..8ac814366a 100644
> --- a/nptl/pthread_getname.c
> +++ b/nptl/pthread_getname.c
> @@ -23,12 +23,11 @@
>  #include <string.h>
>  #include <unistd.h>
>  #include <sys/prctl.h>
> -
>  #include <not-cancel.h>
> -
> +#include <shlib-compat.h>
>  
>  int
> -pthread_getname_np (pthread_t th, char *buf, size_t len)
> +__pthread_getname_np (pthread_t th, char *buf, size_t len)
>  {
>    const struct pthread *pd = (const struct pthread *) th;
>  
> @@ -39,7 +38,7 @@ pthread_getname_np (pthread_t th, char *buf, size_t len)
>      return ERANGE;
>  
>    if (pd == THREAD_SELF)
> -    return prctl (PR_GET_NAME, buf) ? errno : 0;
> +    return __prctl (PR_GET_NAME, buf) ? errno : 0;
>  
>  #define FMT "/proc/self/task/%u/comm"
>    char fname[sizeof (FMT) + 8];
> @@ -67,3 +66,10 @@ pthread_getname_np (pthread_t th, char *buf, size_t len)
>  
>    return res;
>  }
> +versioned_symbol (libc, __pthread_getname_np, pthread_getname_np,
> +		  GLIBC_2_34);
> +
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_34)
> +compat_symbol (libpthread, __pthread_getname_np, pthread_getname_np,
> +	       GLIBC_2_12);
> +#endif

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index dde11d1d0b..a0043fcc72 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1495,6 +1495,7 @@ GLIBC_2.17 pthread_getaffinity_np F
>  GLIBC_2.17 pthread_getattr_np F
>  GLIBC_2.17 pthread_getconcurrency F
>  GLIBC_2.17 pthread_getcpuclockid F
> +GLIBC_2.17 pthread_getname_np F
>  GLIBC_2.17 pthread_getschedparam F
>  GLIBC_2.17 pthread_getspecific F
>  GLIBC_2.17 pthread_join F
> @@ -2369,6 +2370,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index 9ac9be4ec4..8245b4910a 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.17 __errno_location F
>  GLIBC_2.17 pthread_create F
> -GLIBC_2.17 pthread_getname_np F
>  GLIBC_2.17 pthread_setaffinity_np F
>  GLIBC_2.17 pthread_setname_np F
>  GLIBC_2.17 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 0c3f66e309..1409f32c5e 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1820,6 +1820,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x458
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2459,6 +2460,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index ae50cb30c6..3a8fce8fc2 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 129040de57..a780f261bd 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1437,6 +1437,7 @@ GLIBC_2.32 pthread_getattr_default_np F
>  GLIBC_2.32 pthread_getattr_np F
>  GLIBC_2.32 pthread_getconcurrency F
>  GLIBC_2.32 pthread_getcpuclockid F
> +GLIBC_2.32 pthread_getname_np F
>  GLIBC_2.32 pthread_getschedparam F
>  GLIBC_2.32 pthread_getspecific F
>  GLIBC_2.32 pthread_join F
> @@ -2128,6 +2129,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index 88273f1424..dff4c4d2ae 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.32 __errno_location F
>  GLIBC_2.32 pthread_create F
> -GLIBC_2.32 pthread_getname_np F
>  GLIBC_2.32 pthread_setaffinity_np F
>  GLIBC_2.32 pthread_setname_np F
>  GLIBC_2.32 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 822b3f4005..3c4439d0fd 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -237,6 +238,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index 7d023cb181..9459d1f7fb 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index e38c13db21..05174f6fb0 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -234,6 +235,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index 7d023cb181..9459d1f7fb 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 899002975d..515dc54d6a 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1496,6 +1496,7 @@ GLIBC_2.29 pthread_getattr_default_np F
>  GLIBC_2.29 pthread_getattr_np F
>  GLIBC_2.29 pthread_getconcurrency F
>  GLIBC_2.29 pthread_getcpuclockid F
> +GLIBC_2.29 pthread_getname_np F
>  GLIBC_2.29 pthread_getschedparam F
>  GLIBC_2.29 pthread_getspecific F
>  GLIBC_2.29 pthread_join F
> @@ -2312,6 +2313,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 95574381d5..ba9e21e735 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.29 __errno_location F
>  GLIBC_2.29 pthread_create F
> -GLIBC_2.29 pthread_getname_np F
>  GLIBC_2.29 pthread_setaffinity_np F
>  GLIBC_2.29 pthread_setname_np F
>  GLIBC_2.29 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index dda8816136..78e104a073 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x404
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2264,6 +2265,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 1c20789e32..6b97d836ef 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 1ecc3a30bd..e713095510 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1825,6 +1825,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2447,6 +2448,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index ae50cb30c6..3a8fce8fc2 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index e3aefdeed6..f1eb533894 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x438
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2300,6 +2301,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 1c20789e32..6b97d836ef 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index e3d4b739aa..97efbfdd91 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -34,6 +34,7 @@ GLIBC_2.12 __m68k_read_tp F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -238,6 +239,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index 7d023cb181..9459d1f7fb 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 37eaedebd7..a242798112 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1782,6 +1782,7 @@ GLIBC_2.12 __m68k_read_tp F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2390,6 +2391,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index ae50cb30c6..3a8fce8fc2 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 07729d04e1..ed8e1cd0d5 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1498,6 +1498,7 @@ GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_getattr_np F
>  GLIBC_2.18 pthread_getconcurrency F
>  GLIBC_2.18 pthread_getcpuclockid F
> +GLIBC_2.18 pthread_getname_np F
>  GLIBC_2.18 pthread_getschedparam F
>  GLIBC_2.18 pthread_getspecific F
>  GLIBC_2.18 pthread_join F
> @@ -2363,6 +2364,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index 67a5cb9ab5..e4c2d2c0fe 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_getname_np F
>  GLIBC_2.18 pthread_setaffinity_np F
>  GLIBC_2.18 pthread_setname_np F
>  GLIBC_2.18 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index f690095f65..71c563bc1d 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1498,6 +1498,7 @@ GLIBC_2.18 pthread_getattr_default_np F
>  GLIBC_2.18 pthread_getattr_np F
>  GLIBC_2.18 pthread_getconcurrency F
>  GLIBC_2.18 pthread_getcpuclockid F
> +GLIBC_2.18 pthread_getname_np F
>  GLIBC_2.18 pthread_getschedparam F
>  GLIBC_2.18 pthread_getspecific F
>  GLIBC_2.18 pthread_join F
> @@ -2360,6 +2361,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index 67a5cb9ab5..e4c2d2c0fe 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_getname_np F
>  GLIBC_2.18 pthread_setaffinity_np F
>  GLIBC_2.18 pthread_setname_np F
>  GLIBC_2.18 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index a9a33c8d0c..de345aa521 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1383,6 +1383,7 @@ GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2355,6 +2356,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index 7ec95cd7f5..8827ba7772 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -1,7 +1,6 @@
>  GLIBC_2.0 __errno_location F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index e592dbac83..5ace56265c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1383,6 +1383,7 @@ GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2353,6 +2354,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index 7ec95cd7f5..8827ba7772 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -1,7 +1,6 @@
>  GLIBC_2.0 __errno_location F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 3fea1c5fda..31acf12768 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1383,6 +1383,7 @@ GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2361,6 +2362,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 777ebc3591..4d5e4e9dd4 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1381,6 +1381,7 @@ GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2355,6 +2356,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index f3c575c293..2176d0e6e4 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1541,6 +1541,7 @@ GLIBC_2.21 pthread_getattr_default_np F
>  GLIBC_2.21 pthread_getattr_np F
>  GLIBC_2.21 pthread_getconcurrency F
>  GLIBC_2.21 pthread_getcpuclockid F
> +GLIBC_2.21 pthread_getname_np F
>  GLIBC_2.21 pthread_getschedparam F
>  GLIBC_2.21 pthread_getspecific F
>  GLIBC_2.21 pthread_join F
> @@ -2402,6 +2403,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 9924c04cea..9009a98b88 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.21 __errno_location F
>  GLIBC_2.21 pthread_create F
> -GLIBC_2.21 pthread_getname_np F
>  GLIBC_2.21 pthread_setaffinity_np F
>  GLIBC_2.21 pthread_setname_np F
>  GLIBC_2.21 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 1133324bf7..3abd4e065f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1786,6 +1786,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2417,6 +2418,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index 0320e73dbb..a5c6a8d42f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index d57c7e438f..67db071d92 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1786,6 +1786,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2450,6 +2451,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index c41682739e..a2b923bcb2 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x438
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2265,6 +2266,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index dca9c1f876..8b55edb1b4 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 6b60cdc8eb..2827acac75 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1583,6 +1583,7 @@ GLIBC_2.17 pthread_getaffinity_np F
>  GLIBC_2.17 pthread_getattr_np F
>  GLIBC_2.17 pthread_getconcurrency F
>  GLIBC_2.17 pthread_getcpuclockid F
> +GLIBC_2.17 pthread_getname_np F
>  GLIBC_2.17 pthread_getschedparam F
>  GLIBC_2.17 pthread_getspecific F
>  GLIBC_2.17 pthread_join F
> @@ -2565,6 +2566,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index 9ac9be4ec4..8245b4910a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.17 __errno_location F
>  GLIBC_2.17 pthread_create F
> -GLIBC_2.17 pthread_getname_np F
>  GLIBC_2.17 pthread_setaffinity_np F
>  GLIBC_2.17 pthread_setname_np F
>  GLIBC_2.17 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index bf5e54123f..d26c0b603e 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1439,6 +1439,7 @@ GLIBC_2.33 pthread_getattr_default_np F
>  GLIBC_2.33 pthread_getattr_np F
>  GLIBC_2.33 pthread_getconcurrency F
>  GLIBC_2.33 pthread_getcpuclockid F
> +GLIBC_2.33 pthread_getname_np F
>  GLIBC_2.33 pthread_getschedparam F
>  GLIBC_2.33 pthread_getspecific F
>  GLIBC_2.33 pthread_join F
> @@ -2130,6 +2131,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index abd4e6a9c4..b1f30a796c 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.33 __errno_location F
>  GLIBC_2.33 pthread_create F
> -GLIBC_2.33 pthread_getname_np F
>  GLIBC_2.33 pthread_setaffinity_np F
>  GLIBC_2.33 pthread_setname_np F
>  GLIBC_2.33 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 6387850fd5..7e77123dec 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1486,6 +1486,7 @@ GLIBC_2.27 pthread_getattr_default_np F
>  GLIBC_2.27 pthread_getattr_np F
>  GLIBC_2.27 pthread_getconcurrency F
>  GLIBC_2.27 pthread_getcpuclockid F
> +GLIBC_2.27 pthread_getname_np F
>  GLIBC_2.27 pthread_getschedparam F
>  GLIBC_2.27 pthread_getspecific F
>  GLIBC_2.27 pthread_join F
> @@ -2330,6 +2331,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index e43f1e723e..e1c2320d40 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.27 __errno_location F
>  GLIBC_2.27 pthread_create F
> -GLIBC_2.27 pthread_getname_np F
>  GLIBC_2.27 pthread_setaffinity_np F
>  GLIBC_2.27 pthread_setname_np F
>  GLIBC_2.27 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index dc6d0776f8..f077792865 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1778,6 +1778,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2415,6 +2416,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index c349f281d5..a084421929 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.19 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index f3da8ca119..1e103ce570 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -37,6 +37,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x438
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2302,6 +2303,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 7c42617688..68f74e182f 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.19 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 83ce2ef1c5..5644da2e1d 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -37,6 +37,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2271,6 +2272,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index 1c20789e32..6b97d836ef 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index ed832e9e5d..7b9badf6b1 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -37,6 +37,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2268,6 +2269,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index 1c20789e32..6b97d836ef 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index d0870d3d75..0ab8427a30 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1779,6 +1779,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2408,6 +2409,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index ae50cb30c6..3a8fce8fc2 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -4,7 +4,6 @@ GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 58a3cdb004..c1aa8d592e 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -37,6 +37,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x438
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2321,6 +2322,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 1c20789e32..6b97d836ef 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index a71bd400c6..68d829d128 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -33,6 +33,7 @@ GLIBC_2.11 mkstemps64 F
>  GLIBC_2.12 _sys_errlist D 0x438
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> +GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> @@ -2280,6 +2281,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 040c0b7b8e..a0954fccc5 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2.5 __errno_location F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index cb321c43b3..f4364769c7 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1502,6 +1502,7 @@ GLIBC_2.16 pthread_getaffinity_np F
>  GLIBC_2.16 pthread_getattr_np F
>  GLIBC_2.16 pthread_getconcurrency F
>  GLIBC_2.16 pthread_getcpuclockid F
> +GLIBC_2.16 pthread_getname_np F
>  GLIBC_2.16 pthread_getschedparam F
>  GLIBC_2.16 pthread_getspecific F
>  GLIBC_2.16 pthread_join F
> @@ -2384,6 +2385,7 @@ GLIBC_2.34 pthread_detach F
>  GLIBC_2.34 pthread_getattr_default_np F
>  GLIBC_2.34 pthread_getconcurrency F
>  GLIBC_2.34 pthread_getcpuclockid F
> +GLIBC_2.34 pthread_getname_np F
>  GLIBC_2.34 pthread_getspecific F
>  GLIBC_2.34 pthread_join F
>  GLIBC_2.34 pthread_key_create F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 357774d540..c8f7f67b98 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.16 __errno_location F
>  GLIBC_2.16 pthread_create F
> -GLIBC_2.16 pthread_getname_np F
>  GLIBC_2.16 pthread_setaffinity_np F
>  GLIBC_2.16 pthread_setname_np F
>  GLIBC_2.16 pthread_setschedprio F
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 19/23] nptl: Move pthread_setaffinity_np into libc
  2021-05-12 16:59 ` [PATCH 19/23] nptl: Move pthread_setaffinity_np " Florian Weimer
@ 2021-05-14 14:45   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-14 14:45 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:59, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.

LGTM, thanks.

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

> ---
>  nptl/Makefile                                          |  2 +-
>  nptl/Versions                                          |  5 +++--
>  nptl/libpthread-compat.c                               |  5 +++++
>  nptl/pthread_setaffinity.c                             | 10 +++++++---
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/aarch64/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist             |  3 +++
>  sysdeps/unix/sysv/linux/alpha/libpthread.abilist       |  3 +--
>  sysdeps/unix/sysv/linux/arc/libc.abilist               |  2 ++
>  sysdeps/unix/sysv/linux/arc/libpthread.abilist         |  1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/arm/be/libpthread.abilist      |  1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/arm/le/libpthread.abilist      |  1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist              |  2 ++
>  sysdeps/unix/sysv/linux/csky/libpthread.abilist        |  1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist              |  3 +++
>  sysdeps/unix/sysv/linux/hppa/libpthread.abilist        |  3 +--
>  sysdeps/unix/sysv/linux/i386/libc.abilist              |  3 +++
>  sysdeps/unix/sysv/linux/i386/libpthread.abilist        |  3 +--
>  sysdeps/unix/sysv/linux/ia64/libc.abilist              |  3 +++
>  sysdeps/unix/sysv/linux/ia64/libpthread.abilist        |  3 +--
>  sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist     |  2 ++
>  .../unix/sysv/linux/m68k/coldfire/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist       |  3 +++
>  sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist |  3 +--
>  sysdeps/unix/sysv/linux/microblaze/be/libc.abilist     |  2 ++
>  .../unix/sysv/linux/microblaze/be/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/microblaze/le/libc.abilist     |  2 ++
>  .../unix/sysv/linux/microblaze/le/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist   |  3 +++
>  sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist |  3 +--
>  sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist |  3 +++
>  sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist |  3 +--
>  sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist   |  3 +++
>  sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist   |  3 +++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libpthread.abilist       |  1 -
>  .../unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist |  3 +++
>  .../sysv/linux/powerpc/powerpc32/libpthread.abilist    |  3 +--
>  .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist    |  3 +++
>  .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist  |  3 +++
>  .../sysv/linux/powerpc/powerpc64/be/libpthread.abilist |  3 +--
>  .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist  |  2 ++
>  .../sysv/linux/powerpc/powerpc64/le/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist      |  3 +++
>  .../unix/sysv/linux/s390/s390-32/libpthread.abilist    |  3 +--
>  sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist      |  3 +++
>  .../unix/sysv/linux/s390/s390-64/libpthread.abilist    |  3 +--
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist             |  3 +++
>  sysdeps/unix/sysv/linux/sh/be/libpthread.abilist       |  3 +--
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist             |  3 +++
>  sysdeps/unix/sysv/linux/sh/le/libpthread.abilist       |  3 +--
>  sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist     |  3 +++
>  .../unix/sysv/linux/sparc/sparc32/libpthread.abilist   |  3 +--
>  sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist     |  3 +++
>  .../unix/sysv/linux/sparc/sparc64/libpthread.abilist   |  3 +--
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist         |  3 +++
>  sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist   |  3 +--
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist  |  1 -
>  65 files changed, 115 insertions(+), 51 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 516410cb84..a33f495653 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -169,6 +169,7 @@ routines = \
>    pthread_rwlockattr_setkind_np \
>    pthread_rwlockattr_setpshared \
>    pthread_self \
> +  pthread_setaffinity \
>    pthread_setattr_default_np \
>    pthread_setcancelstate \
>    pthread_setcanceltype \
> @@ -208,7 +209,6 @@ libpthread-routines = \
>    nptl-init \
>    pt-interp \
>    pthread_create \
> -  pthread_setaffinity \
>    pthread_setname \
>    pthread_setschedprio \
>    pthread_sigqueue \

Ok.

> diff --git a/nptl/Versions b/nptl/Versions
> index cfdf548c77..9293151253 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -166,12 +166,14 @@ libc {
>      pthread_condattr_getclock;
>      pthread_condattr_setclock;
>      pthread_getaffinity_np;
> +    pthread_setaffinity_np;
>      pthread_timedjoin_np;
>      pthread_tryjoin_np;
>    }
>    GLIBC_2.3.4 {
>      pthread_attr_getaffinity_np;
>      pthread_attr_setaffinity_np;
> +    pthread_setaffinity_np;
>    }
>    GLIBC_2.4 {
>      pthread_mutex_consistent_np;
> @@ -455,12 +457,11 @@ libpthread {
>    }
>  
>    GLIBC_2.3.3 {
> -    pthread_setaffinity_np;
> +    __libpthread_version_placeholder;
>    }
>  
>    GLIBC_2.3.4 {
>      pthread_getaffinity_np;
> -    pthread_setaffinity_np;
>      pthread_setschedprio;
>    }
>  

Ok.

> diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
> index 18069870d1..a0c0102fd8 100644
> --- a/nptl/libpthread-compat.c
> +++ b/nptl/libpthread-compat.c
> @@ -70,6 +70,11 @@ compat_symbol (libpthread, __libpthread_version_placeholder_1,
>  	       __libpthread_version_placeholder, GLIBC_2_3_2);
>  #endif
>  
> +#if (SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_3_4))
> +compat_symbol (libpthread, __libpthread_version_placeholder_1,
> +	       __libpthread_version_placeholder, GLIBC_2_3_3);
> +#endif
> +
>  #if (SHLIB_COMPAT (libpthread, GLIBC_2_4, GLIBC_2_5))
>  compat_symbol (libpthread, __libpthread_version_placeholder_1,
>  	       __libpthread_version_placeholder, GLIBC_2_4);

Ok.

> diff --git a/nptl/pthread_setaffinity.c b/nptl/pthread_setaffinity.c
> index e0226ea890..3bfdc63e19 100644
> --- a/nptl/pthread_setaffinity.c
> +++ b/nptl/pthread_setaffinity.c
> @@ -37,11 +37,15 @@ __pthread_setaffinity_new (pthread_t th, size_t cpusetsize,
>  	  ? INTERNAL_SYSCALL_ERRNO (res)
>  	  : 0);
>  }
> -versioned_symbol (libpthread, __pthread_setaffinity_new,
> -		  pthread_setaffinity_np, GLIBC_2_3_4);
> +versioned_symbol (libc, __pthread_setaffinity_new,
> +		  pthread_setaffinity_np, GLIBC_2_34);
>  
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (libpthread, __pthread_setaffinity_new,
> +	       pthread_setaffinity_np, GLIBC_2_3_4);
> +#endif
>  
> -#if SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_3_4)
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_3_4)
>  int
>  __pthread_setaffinity_old (pthread_t th, cpu_set_t *cpuset)
>  {

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index a0043fcc72..5a0899fe90 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1546,6 +1546,7 @@ GLIBC_2.17 pthread_rwlockattr_init F
>  GLIBC_2.17 pthread_rwlockattr_setkind_np F
>  GLIBC_2.17 pthread_rwlockattr_setpshared F
>  GLIBC_2.17 pthread_self F
> +GLIBC_2.17 pthread_setaffinity_np F
>  GLIBC_2.17 pthread_setcancelstate F
>  GLIBC_2.17 pthread_setcanceltype F
>  GLIBC_2.17 pthread_setconcurrency F
> @@ -2412,6 +2413,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index 8245b4910a..0272714fce 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.17 __errno_location F
>  GLIBC_2.17 pthread_create F
> -GLIBC_2.17 pthread_setaffinity_np F
>  GLIBC_2.17 pthread_setname_np F
>  GLIBC_2.17 pthread_setschedprio F
>  GLIBC_2.17 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 1409f32c5e..25d8603bc0 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2307,6 +2307,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2358,6 +2359,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2502,6 +2504,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 3a8fce8fc2..7b143cd3d7 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -11,8 +11,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index a780f261bd..088f9056c6 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1491,6 +1491,7 @@ GLIBC_2.32 pthread_rwlockattr_init F
>  GLIBC_2.32 pthread_rwlockattr_setkind_np F
>  GLIBC_2.32 pthread_rwlockattr_setpshared F
>  GLIBC_2.32 pthread_self F
> +GLIBC_2.32 pthread_setaffinity_np F
>  GLIBC_2.32 pthread_setattr_default_np F
>  GLIBC_2.32 pthread_setcancelstate F
>  GLIBC_2.32 pthread_setcanceltype F
> @@ -2171,6 +2172,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index dff4c4d2ae..5e1f4425f2 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.32 __errno_location F
>  GLIBC_2.32 pthread_create F
> -GLIBC_2.32 pthread_setaffinity_np F
>  GLIBC_2.32 pthread_setname_np F
>  GLIBC_2.32 pthread_setschedprio F
>  GLIBC_2.32 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 3c4439d0fd..afee2d9bb9 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -280,6 +280,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> @@ -1787,6 +1788,7 @@ GLIBC_2.4 pthread_rwlockattr_init F
>  GLIBC_2.4 pthread_rwlockattr_setkind_np F
>  GLIBC_2.4 pthread_rwlockattr_setpshared F
>  GLIBC_2.4 pthread_self F
> +GLIBC_2.4 pthread_setaffinity_np F
>  GLIBC_2.4 pthread_setcancelstate F
>  GLIBC_2.4 pthread_setcanceltype F
>  GLIBC_2.4 pthread_setconcurrency F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index 9459d1f7fb..e4421d1661 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -7,5 +7,4 @@ GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __errno_location F
>  GLIBC_2.4 __libpthread_version_placeholder F
>  GLIBC_2.4 pthread_create F
> -GLIBC_2.4 pthread_setaffinity_np F
>  GLIBC_2.4 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 05174f6fb0..e360433660 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -277,6 +277,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> @@ -1784,6 +1785,7 @@ GLIBC_2.4 pthread_rwlockattr_init F
>  GLIBC_2.4 pthread_rwlockattr_setkind_np F
>  GLIBC_2.4 pthread_rwlockattr_setpshared F
>  GLIBC_2.4 pthread_self F
> +GLIBC_2.4 pthread_setaffinity_np F
>  GLIBC_2.4 pthread_setcancelstate F
>  GLIBC_2.4 pthread_setcanceltype F
>  GLIBC_2.4 pthread_setconcurrency F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index 9459d1f7fb..e4421d1661 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -7,5 +7,4 @@ GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __errno_location F
>  GLIBC_2.4 __libpthread_version_placeholder F
>  GLIBC_2.4 pthread_create F
> -GLIBC_2.4 pthread_setaffinity_np F
>  GLIBC_2.4 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 515dc54d6a..5f0d74c38b 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1547,6 +1547,7 @@ GLIBC_2.29 pthread_rwlockattr_init F
>  GLIBC_2.29 pthread_rwlockattr_setkind_np F
>  GLIBC_2.29 pthread_rwlockattr_setpshared F
>  GLIBC_2.29 pthread_self F
> +GLIBC_2.29 pthread_setaffinity_np F
>  GLIBC_2.29 pthread_setattr_default_np F
>  GLIBC_2.29 pthread_setcancelstate F
>  GLIBC_2.29 pthread_setcanceltype F
> @@ -2355,6 +2356,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index ba9e21e735..976476e6b0 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.29 __errno_location F
>  GLIBC_2.29 pthread_create F
> -GLIBC_2.29 pthread_setaffinity_np F
>  GLIBC_2.29 pthread_setname_np F
>  GLIBC_2.29 pthread_setschedprio F
>  GLIBC_2.29 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 78e104a073..f050474ba0 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2142,6 +2142,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2175,6 +2176,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2307,6 +2309,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 6b97d836ef..f301ecb383 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -7,8 +7,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index e713095510..515d3af6f5 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2322,6 +2322,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2355,6 +2356,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2490,6 +2492,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index 3a8fce8fc2..7b143cd3d7 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -11,8 +11,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index f1eb533894..1cd3220ff4 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2175,6 +2175,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2210,6 +2211,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2343,6 +2345,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 6b97d836ef..f301ecb383 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -7,8 +7,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 97efbfdd91..3f9003bf89 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -281,6 +281,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> @@ -1767,6 +1768,7 @@ GLIBC_2.4 pthread_rwlockattr_init F
>  GLIBC_2.4 pthread_rwlockattr_setkind_np F
>  GLIBC_2.4 pthread_rwlockattr_setpshared F
>  GLIBC_2.4 pthread_self F
> +GLIBC_2.4 pthread_setaffinity_np F
>  GLIBC_2.4 pthread_setcancelstate F
>  GLIBC_2.4 pthread_setcanceltype F
>  GLIBC_2.4 pthread_setconcurrency F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index 9459d1f7fb..e4421d1661 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -7,5 +7,4 @@ GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __errno_location F
>  GLIBC_2.4 __libpthread_version_placeholder F
>  GLIBC_2.4 pthread_create F
> -GLIBC_2.4 pthread_setaffinity_np F
>  GLIBC_2.4 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index a242798112..013e5de06d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2265,6 +2265,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2298,6 +2299,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2433,6 +2435,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index 3a8fce8fc2..7b143cd3d7 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -11,8 +11,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index ed8e1cd0d5..1df55eb788 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1549,6 +1549,7 @@ GLIBC_2.18 pthread_rwlockattr_init F
>  GLIBC_2.18 pthread_rwlockattr_setkind_np F
>  GLIBC_2.18 pthread_rwlockattr_setpshared F
>  GLIBC_2.18 pthread_self F
> +GLIBC_2.18 pthread_setaffinity_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.18 pthread_setcancelstate F
>  GLIBC_2.18 pthread_setcanceltype F
> @@ -2406,6 +2407,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index e4c2d2c0fe..44cc2080c2 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_setaffinity_np F
>  GLIBC_2.18 pthread_setname_np F
>  GLIBC_2.18 pthread_setschedprio F
>  GLIBC_2.18 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 71c563bc1d..b397b1cbee 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1549,6 +1549,7 @@ GLIBC_2.18 pthread_rwlockattr_init F
>  GLIBC_2.18 pthread_rwlockattr_setkind_np F
>  GLIBC_2.18 pthread_rwlockattr_setpshared F
>  GLIBC_2.18 pthread_self F
> +GLIBC_2.18 pthread_setaffinity_np F
>  GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.18 pthread_setcancelstate F
>  GLIBC_2.18 pthread_setcanceltype F
> @@ -2403,6 +2404,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index e4c2d2c0fe..44cc2080c2 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_setaffinity_np F
>  GLIBC_2.18 pthread_setname_np F
>  GLIBC_2.18 pthread_setschedprio F
>  GLIBC_2.18 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index de345aa521..0b366d487f 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2233,6 +2233,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2266,6 +2267,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2398,6 +2400,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index 8827ba7772..c884dfc6ae 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -8,8 +8,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 5ace56265c..8361b430df 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2231,6 +2231,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2264,6 +2265,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2396,6 +2398,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index 8827ba7772..c884dfc6ae 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -8,8 +8,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 31acf12768..642ce9dceb 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2239,6 +2239,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2272,6 +2273,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2404,6 +2406,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 4d5e4e9dd4..48632de397 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2231,6 +2231,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2266,6 +2267,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2398,6 +2400,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 2176d0e6e4..125fe4d799 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1592,6 +1592,7 @@ GLIBC_2.21 pthread_rwlockattr_init F
>  GLIBC_2.21 pthread_rwlockattr_setkind_np F
>  GLIBC_2.21 pthread_rwlockattr_setpshared F
>  GLIBC_2.21 pthread_self F
> +GLIBC_2.21 pthread_setaffinity_np F
>  GLIBC_2.21 pthread_setattr_default_np F
>  GLIBC_2.21 pthread_setcancelstate F
>  GLIBC_2.21 pthread_setcanceltype F
> @@ -2445,6 +2446,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 9009a98b88..3f25a85a5f 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.21 __errno_location F
>  GLIBC_2.21 pthread_create F
> -GLIBC_2.21 pthread_setaffinity_np F
>  GLIBC_2.21 pthread_setname_np F
>  GLIBC_2.21 pthread_setschedprio F
>  GLIBC_2.21 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 3abd4e065f..893c46b74a 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2271,6 +2271,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2312,6 +2313,7 @@ GLIBC_2.3.4 makecontext F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2460,6 +2462,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index a5c6a8d42f..7d6a83c3af 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -11,8 +11,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 67db071d92..5b828687bf 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2304,6 +2304,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2345,6 +2346,7 @@ GLIBC_2.3.4 makecontext F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2493,6 +2495,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index a2b923bcb2..3e7677e070 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2120,6 +2120,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2160,6 +2161,7 @@ GLIBC_2.3.4 longjmp F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2308,6 +2310,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 8b55edb1b4..1d08bd8e73 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -5,8 +5,7 @@ GLIBC_2.28 thrd_create F
>  GLIBC_2.3 __errno_location F
>  GLIBC_2.3 pthread_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 2827acac75..4b29564e00 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1634,6 +1634,7 @@ GLIBC_2.17 pthread_rwlockattr_init F
>  GLIBC_2.17 pthread_rwlockattr_setkind_np F
>  GLIBC_2.17 pthread_rwlockattr_setpshared F
>  GLIBC_2.17 pthread_self F
> +GLIBC_2.17 pthread_setaffinity_np F
>  GLIBC_2.17 pthread_setcancelstate F
>  GLIBC_2.17 pthread_setcanceltype F
>  GLIBC_2.17 pthread_setconcurrency F
> @@ -2608,6 +2609,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index 8245b4910a..0272714fce 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.17 __errno_location F
>  GLIBC_2.17 pthread_create F
> -GLIBC_2.17 pthread_setaffinity_np F
>  GLIBC_2.17 pthread_setname_np F
>  GLIBC_2.17 pthread_setschedprio F
>  GLIBC_2.17 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index d26c0b603e..ba876fc418 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1493,6 +1493,7 @@ GLIBC_2.33 pthread_rwlockattr_init F
>  GLIBC_2.33 pthread_rwlockattr_setkind_np F
>  GLIBC_2.33 pthread_rwlockattr_setpshared F
>  GLIBC_2.33 pthread_self F
> +GLIBC_2.33 pthread_setaffinity_np F
>  GLIBC_2.33 pthread_setattr_default_np F
>  GLIBC_2.33 pthread_setcancelstate F
>  GLIBC_2.33 pthread_setcanceltype F
> @@ -2173,6 +2174,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index b1f30a796c..86594445c3 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.33 __errno_location F
>  GLIBC_2.33 pthread_create F
> -GLIBC_2.33 pthread_setaffinity_np F
>  GLIBC_2.33 pthread_setname_np F
>  GLIBC_2.33 pthread_setschedprio F
>  GLIBC_2.33 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 7e77123dec..6f45a3ebd6 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1537,6 +1537,7 @@ GLIBC_2.27 pthread_rwlockattr_init F
>  GLIBC_2.27 pthread_rwlockattr_setkind_np F
>  GLIBC_2.27 pthread_rwlockattr_setpshared F
>  GLIBC_2.27 pthread_self F
> +GLIBC_2.27 pthread_setaffinity_np F
>  GLIBC_2.27 pthread_setattr_default_np F
>  GLIBC_2.27 pthread_setcancelstate F
>  GLIBC_2.27 pthread_setcanceltype F
> @@ -2373,6 +2374,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index e1c2320d40..2f58bb845c 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.27 __errno_location F
>  GLIBC_2.27 pthread_create F
> -GLIBC_2.27 pthread_setaffinity_np F
>  GLIBC_2.27 pthread_setname_np F
>  GLIBC_2.27 pthread_setschedprio F
>  GLIBC_2.27 pthread_sigqueue F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index f077792865..ea42d4f420 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2278,6 +2278,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2311,6 +2312,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2458,6 +2460,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index a084421929..12048bef37 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -12,8 +12,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 1e103ce570..811121dbb9 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2166,6 +2166,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2201,6 +2202,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2345,6 +2347,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 68f74e182f..c685c20bf7 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -8,8 +8,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 5644da2e1d..85d2b2c13f 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2146,6 +2146,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2179,6 +2180,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2314,6 +2316,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index 6b97d836ef..f301ecb383 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -7,8 +7,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 7b9badf6b1..d3429b6d96 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2146,6 +2146,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2179,6 +2180,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2311,6 +2313,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index 6b97d836ef..f301ecb383 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -7,8 +7,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 0ab8427a30..be5a5aabd5 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2274,6 +2274,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2307,6 +2308,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2451,6 +2453,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 3a8fce8fc2..7b143cd3d7 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -11,8 +11,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index c1aa8d592e..8e88035ee6 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2197,6 +2197,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2232,6 +2233,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2364,6 +2366,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 6b97d836ef..f301ecb383 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -7,8 +7,7 @@ GLIBC_2.2.3 __libpthread_version_placeholder F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 68d829d128..18eaaad847 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2154,6 +2154,7 @@ GLIBC_2.3.3 pthread_barrierattr_getpshared F
>  GLIBC_2.3.3 pthread_condattr_getclock F
>  GLIBC_2.3.3 pthread_condattr_setclock F
>  GLIBC_2.3.3 pthread_getaffinity_np F
> +GLIBC_2.3.3 pthread_setaffinity_np F
>  GLIBC_2.3.3 pthread_timedjoin_np F
>  GLIBC_2.3.3 pthread_tryjoin_np F
>  GLIBC_2.3.3 remap_file_pages F
> @@ -2189,6 +2190,7 @@ GLIBC_2.3.4 getsourcefilter F
>  GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
> +GLIBC_2.3.4 pthread_setaffinity_np F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2323,6 +2325,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index a0954fccc5..0759d42083 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -6,8 +6,7 @@ GLIBC_2.2.5 pthread_create F
>  GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
> -GLIBC_2.3.3 pthread_setaffinity_np F
> -GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.3 __libpthread_version_placeholder F
>  GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index f4364769c7..6b754260c7 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1553,6 +1553,7 @@ GLIBC_2.16 pthread_rwlockattr_init F
>  GLIBC_2.16 pthread_rwlockattr_setkind_np F
>  GLIBC_2.16 pthread_rwlockattr_setpshared F
>  GLIBC_2.16 pthread_self F
> +GLIBC_2.16 pthread_setaffinity_np F
>  GLIBC_2.16 pthread_setcancelstate F
>  GLIBC_2.16 pthread_setcanceltype F
>  GLIBC_2.16 pthread_setconcurrency F
> @@ -2427,6 +2428,7 @@ GLIBC_2.34 pthread_rwlockattr_getpshared F
>  GLIBC_2.34 pthread_rwlockattr_init F
>  GLIBC_2.34 pthread_rwlockattr_setkind_np F
>  GLIBC_2.34 pthread_rwlockattr_setpshared F
> +GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setspecific F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index c8f7f67b98..1e6013cfe6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.16 __errno_location F
>  GLIBC_2.16 pthread_create F
> -GLIBC_2.16 pthread_setaffinity_np F
>  GLIBC_2.16 pthread_setname_np F
>  GLIBC_2.16 pthread_setschedprio F
>  GLIBC_2.16 pthread_sigqueue F
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 20/23] nptl: Move pthread_setname_np into libc
  2021-05-12 16:59 ` [PATCH 20/23] nptl: Move pthread_setname_np " Florian Weimer
@ 2021-05-14 14:46   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-14 14:46 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:59, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
> 
> Add __libpthread_version_placeholder@@GLIBC_2.12 for the targets
> that need it.

LGTM, thanks.

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

> ---
>  nptl/Makefile                                         |  2 +-
>  nptl/Versions                                         |  7 ++++++-
>  nptl/libpthread-compat.c                              |  5 +++++
>  nptl/pthread_setname.c                                | 11 +++++++++--
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/aarch64/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/alpha/libpthread.abilist      |  2 +-
>  sysdeps/unix/sysv/linux/arc/libc.abilist              |  2 ++
>  sysdeps/unix/sysv/linux/arc/libpthread.abilist        |  1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/arm/be/libpthread.abilist     |  2 +-
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/arm/le/libpthread.abilist     |  2 +-
>  sysdeps/unix/sysv/linux/csky/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/csky/libpthread.abilist       |  1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/hppa/libpthread.abilist       |  2 +-
>  sysdeps/unix/sysv/linux/i386/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/i386/libpthread.abilist       |  2 +-
>  sysdeps/unix/sysv/linux/ia64/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/ia64/libpthread.abilist       |  2 +-
>  sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist    |  2 ++
>  .../unix/sysv/linux/m68k/coldfire/libpthread.abilist  |  2 +-
>  sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist      |  2 ++
>  .../unix/sysv/linux/m68k/m680x0/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/microblaze/be/libc.abilist    |  2 ++
>  .../unix/sysv/linux/microblaze/be/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/microblaze/le/libc.abilist    |  2 ++
>  .../unix/sysv/linux/microblaze/le/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist  |  2 ++
>  .../unix/sysv/linux/mips/mips32/libpthread.abilist    |  2 +-
>  .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist    |  2 ++
>  .../unix/sysv/linux/mips/mips64/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist  |  2 ++
>  sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist  |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libpthread.abilist      |  1 -
>  .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist     |  2 ++
>  .../sysv/linux/powerpc/powerpc32/libpthread.abilist   |  2 +-
>  .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist   |  2 ++
>  .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist |  2 ++
>  .../linux/powerpc/powerpc64/be/libpthread.abilist     |  2 +-
>  .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist |  2 ++
>  .../linux/powerpc/powerpc64/le/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist     |  2 ++
>  .../unix/sysv/linux/s390/s390-32/libpthread.abilist   |  2 +-
>  sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist     |  2 ++
>  .../unix/sysv/linux/s390/s390-64/libpthread.abilist   |  2 +-
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/sh/be/libpthread.abilist      |  2 +-
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/sh/le/libpthread.abilist      |  2 +-
>  sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist    |  2 ++
>  .../unix/sysv/linux/sparc/sparc32/libpthread.abilist  |  2 +-
>  sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist    |  2 ++
>  .../unix/sysv/linux/sparc/sparc64/libpthread.abilist  |  2 +-
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist  |  2 +-
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist |  1 -
>  65 files changed, 104 insertions(+), 33 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index a33f495653..5a271fed87 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -174,6 +174,7 @@ routines = \
>    pthread_setcancelstate \
>    pthread_setcanceltype \
>    pthread_setconcurrency \
> +  pthread_setname \
>    pthread_setschedparam \
>    pthread_setspecific \
>    pthread_sigmask \
> @@ -209,7 +210,6 @@ libpthread-routines = \
>    nptl-init \
>    pt-interp \
>    pthread_create \
> -  pthread_setname \
>    pthread_setschedprio \
>    pthread_sigqueue \
>    version \

Ok.

> diff --git a/nptl/Versions b/nptl/Versions
> index 9293151253..22d32df50f 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -191,6 +191,7 @@ libc {
>      pthread_mutex_consistent;
>      pthread_mutexattr_getrobust;
>      pthread_mutexattr_setrobust;
> +    pthread_setname_np;
>    }
>    GLIBC_2.18 {
>      pthread_getattr_default_np;
> @@ -330,6 +331,7 @@ libc {
>      pthread_rwlockattr_setpshared;
>      pthread_setattr_default_np;
>      pthread_setconcurrency;
> +    pthread_setname_np;
>      pthread_setspecific;
>      pthread_spin_destroy;
>      pthread_spin_init;
> @@ -474,9 +476,12 @@ libpthread {
>    };
>  
>    GLIBC_2.12 {
> -    pthread_setname_np;
> +    __libpthread_version_placeholder;
>    };
>  
> +  GLIBC_2.13 {
> +  }
> +
>    GLIBC_2.18 {
>      __libpthread_version_placeholder;
>    }

Ok.

> diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
> index a0c0102fd8..b1bee36f36 100644
> --- a/nptl/libpthread-compat.c
> +++ b/nptl/libpthread-compat.c
> @@ -80,6 +80,11 @@ compat_symbol (libpthread, __libpthread_version_placeholder_1,
>  	       __libpthread_version_placeholder, GLIBC_2_4);
>  #endif
>  
> +#if SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_13)
> +compat_symbol (libpthread, __libpthread_version_placeholder_1,
> +	       __libpthread_version_placeholder, GLIBC_2_12);
> +#endif
> +
>  #if SHLIB_COMPAT (libpthread, GLIBC_2_18, GLIBC_2_19) \
>    && ABI_libpthread_GLIBC_2_18 != ABI_libpthread_GLIBC_2_0
>  compat_symbol (libpthread, __libpthread_version_placeholder_1,

Ok.

> diff --git a/nptl/pthread_setname.c b/nptl/pthread_setname.c
> index 61a39fbc58..6d2d8a1723 100644
> --- a/nptl/pthread_setname.c
> +++ b/nptl/pthread_setname.c
> @@ -28,7 +28,7 @@
>  
>  
>  int
> -pthread_setname_np (pthread_t th, const char *name)
> +__pthread_setname_np (pthread_t th, const char *name)
>  {
>    const struct pthread *pd = (const struct pthread *) th;
>  
> @@ -40,7 +40,7 @@ pthread_setname_np (pthread_t th, const char *name)
>      return ERANGE;
>  
>    if (pd == THREAD_SELF)
> -    return prctl (PR_SET_NAME, name) ? errno : 0;
> +    return __prctl (PR_SET_NAME, name) ? errno : 0;
>  
>  #define FMT "/proc/self/task/%u/comm"
>    char fname[sizeof (FMT) + 8];
> @@ -61,3 +61,10 @@ pthread_setname_np (pthread_t th, const char *name)
>  
>    return res;
>  }
> +versioned_symbol (libc, __pthread_setname_np, pthread_setname_np,
> +                  GLIBC_2_34);
> +
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_34)
> +compat_symbol (libpthread, __pthread_setname_np, pthread_setname_np,
> +               GLIBC_2_12);
> +#endif

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 5a0899fe90..ebe358d524 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1550,6 +1550,7 @@ GLIBC_2.17 pthread_setaffinity_np F
>  GLIBC_2.17 pthread_setcancelstate F
>  GLIBC_2.17 pthread_setcanceltype F
>  GLIBC_2.17 pthread_setconcurrency F
> +GLIBC_2.17 pthread_setname_np F
>  GLIBC_2.17 pthread_setschedparam F
>  GLIBC_2.17 pthread_setspecific F
>  GLIBC_2.17 pthread_sigmask F
> @@ -2416,6 +2417,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index 0272714fce..c95d8d7e0f 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.17 __errno_location F
>  GLIBC_2.17 pthread_create F
> -GLIBC_2.17 pthread_setname_np F
>  GLIBC_2.17 pthread_setschedprio F
>  GLIBC_2.17 pthread_sigqueue F
>  GLIBC_2.18 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 25d8603bc0..003eddb0e4 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1824,6 +1824,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x458
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2507,6 +2508,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 7b143cd3d7..c002d68e5a 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -4,7 +4,7 @@ GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 088f9056c6..6e00b62a37 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1496,6 +1496,7 @@ GLIBC_2.32 pthread_setattr_default_np F
>  GLIBC_2.32 pthread_setcancelstate F
>  GLIBC_2.32 pthread_setcanceltype F
>  GLIBC_2.32 pthread_setconcurrency F
> +GLIBC_2.32 pthread_setname_np F
>  GLIBC_2.32 pthread_setschedparam F
>  GLIBC_2.32 pthread_setspecific F
>  GLIBC_2.32 pthread_sigmask F
> @@ -2175,6 +2176,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index 5e1f4425f2..f3736f98af 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.32 __errno_location F
>  GLIBC_2.32 pthread_create F
> -GLIBC_2.32 pthread_setname_np F
>  GLIBC_2.32 pthread_setschedprio F
>  GLIBC_2.32 pthread_sigqueue F
>  GLIBC_2.32 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index afee2d9bb9..94a9c08fd8 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -37,6 +37,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x21c
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -283,6 +284,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index e4421d1661..7c62cde550 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -1,5 +1,5 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index e360433660..7dee722baf 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -37,6 +37,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x21c
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -280,6 +281,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index e4421d1661..7c62cde550 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -1,5 +1,5 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 5f0d74c38b..28cce579f2 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1552,6 +1552,7 @@ GLIBC_2.29 pthread_setattr_default_np F
>  GLIBC_2.29 pthread_setcancelstate F
>  GLIBC_2.29 pthread_setcanceltype F
>  GLIBC_2.29 pthread_setconcurrency F
> +GLIBC_2.29 pthread_setname_np F
>  GLIBC_2.29 pthread_setschedparam F
>  GLIBC_2.29 pthread_setspecific F
>  GLIBC_2.29 pthread_sigmask F
> @@ -2359,6 +2360,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 976476e6b0..97e0acd58e 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.29 __errno_location F
>  GLIBC_2.29 pthread_create F
> -GLIBC_2.29 pthread_setname_np F
>  GLIBC_2.29 pthread_setschedprio F
>  GLIBC_2.29 pthread_sigqueue F
>  GLIBC_2.29 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index f050474ba0..1f9b6d8d01 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -37,6 +37,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x404
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2312,6 +2313,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index f301ecb383..ac5627e09d 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -1,5 +1,5 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 515d3af6f5..5c24eaef49 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1829,6 +1829,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x21c
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2495,6 +2496,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index 7b143cd3d7..c002d68e5a 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -4,7 +4,7 @@ GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 1cd3220ff4..2fade241ae 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -37,6 +37,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x438
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2348,6 +2349,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index f301ecb383..ac5627e09d 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -1,5 +1,5 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 3f9003bf89..4a036fce78 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -38,6 +38,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x21c
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -284,6 +285,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index e4421d1661..7c62cde550 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -1,5 +1,5 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 013e5de06d..ab7d5c54e1 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1786,6 +1786,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x21c
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2438,6 +2439,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index 7b143cd3d7..c002d68e5a 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -4,7 +4,7 @@ GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 1df55eb788..010fd7e917 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1554,6 +1554,7 @@ GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.18 pthread_setcancelstate F
>  GLIBC_2.18 pthread_setcanceltype F
>  GLIBC_2.18 pthread_setconcurrency F
> +GLIBC_2.18 pthread_setname_np F
>  GLIBC_2.18 pthread_setschedparam F
>  GLIBC_2.18 pthread_setspecific F
>  GLIBC_2.18 pthread_sigmask F
> @@ -2410,6 +2411,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index 44cc2080c2..7cf69ae9b7 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_setname_np F
>  GLIBC_2.18 pthread_setschedprio F
>  GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index b397b1cbee..26a0db4c36 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1554,6 +1554,7 @@ GLIBC_2.18 pthread_setattr_default_np F
>  GLIBC_2.18 pthread_setcancelstate F
>  GLIBC_2.18 pthread_setcanceltype F
>  GLIBC_2.18 pthread_setconcurrency F
> +GLIBC_2.18 pthread_setname_np F
>  GLIBC_2.18 pthread_setschedparam F
>  GLIBC_2.18 pthread_setspecific F
>  GLIBC_2.18 pthread_sigmask F
> @@ -2407,6 +2408,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index 44cc2080c2..7cf69ae9b7 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_setname_np F
>  GLIBC_2.18 pthread_setschedprio F
>  GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 0b366d487f..18f84a75d5 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1387,6 +1387,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.13 fanotify_init F
>  GLIBC_2.13 fanotify_mark F
> @@ -2403,6 +2404,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index c884dfc6ae..c467d55dc1 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -1,7 +1,7 @@
>  GLIBC_2.0 __errno_location F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 8361b430df..a88f242493 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1387,6 +1387,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.13 fanotify_init F
>  GLIBC_2.13 fanotify_mark F
> @@ -2401,6 +2402,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index c884dfc6ae..c467d55dc1 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -1,7 +1,7 @@
>  GLIBC_2.0 __errno_location F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 642ce9dceb..5e2e7e666e 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1387,6 +1387,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.13 fanotify_init F
>  GLIBC_2.13 fanotify_mark F
> @@ -2409,6 +2410,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 48632de397..115c85a49a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1385,6 +1385,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.13 fanotify_init F
>  GLIBC_2.13 fanotify_mark F
> @@ -2403,6 +2404,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 125fe4d799..4e91b3f0a0 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1597,6 +1597,7 @@ GLIBC_2.21 pthread_setattr_default_np F
>  GLIBC_2.21 pthread_setcancelstate F
>  GLIBC_2.21 pthread_setcanceltype F
>  GLIBC_2.21 pthread_setconcurrency F
> +GLIBC_2.21 pthread_setname_np F
>  GLIBC_2.21 pthread_setschedparam F
>  GLIBC_2.21 pthread_setspecific F
>  GLIBC_2.21 pthread_sigmask F
> @@ -2449,6 +2450,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 3f25a85a5f..fe54b3c7bd 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.21 __errno_location F
>  GLIBC_2.21 pthread_create F
> -GLIBC_2.21 pthread_setname_np F
>  GLIBC_2.21 pthread_setschedprio F
>  GLIBC_2.21 pthread_sigqueue F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 893c46b74a..77d3e6e2ac 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1790,6 +1790,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x21c
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2465,6 +2466,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index 7d6a83c3af..59a3a9caab 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -4,7 +4,7 @@ GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 5b828687bf..26dda60d76 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1790,6 +1790,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x21c
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2498,6 +2499,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 3e7677e070..e8ad3d3160 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -37,6 +37,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x438
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2313,6 +2314,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 1d08bd8e73..2483a4b02d 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -1,5 +1,5 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3 __errno_location F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 4b29564e00..937def80d1 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1638,6 +1638,7 @@ GLIBC_2.17 pthread_setaffinity_np F
>  GLIBC_2.17 pthread_setcancelstate F
>  GLIBC_2.17 pthread_setcanceltype F
>  GLIBC_2.17 pthread_setconcurrency F
> +GLIBC_2.17 pthread_setname_np F
>  GLIBC_2.17 pthread_setschedparam F
>  GLIBC_2.17 pthread_setspecific F
>  GLIBC_2.17 pthread_sigmask F
> @@ -2612,6 +2613,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index 0272714fce..c95d8d7e0f 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.17 __errno_location F
>  GLIBC_2.17 pthread_create F
> -GLIBC_2.17 pthread_setname_np F
>  GLIBC_2.17 pthread_setschedprio F
>  GLIBC_2.17 pthread_sigqueue F
>  GLIBC_2.18 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index ba876fc418..15a653f357 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1498,6 +1498,7 @@ GLIBC_2.33 pthread_setattr_default_np F
>  GLIBC_2.33 pthread_setcancelstate F
>  GLIBC_2.33 pthread_setcanceltype F
>  GLIBC_2.33 pthread_setconcurrency F
> +GLIBC_2.33 pthread_setname_np F
>  GLIBC_2.33 pthread_setschedparam F
>  GLIBC_2.33 pthread_setspecific F
>  GLIBC_2.33 pthread_sigmask F
> @@ -2177,6 +2178,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index 86594445c3..8583d6e1b8 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.33 __errno_location F
>  GLIBC_2.33 pthread_create F
> -GLIBC_2.33 pthread_setname_np F
>  GLIBC_2.33 pthread_setschedprio F
>  GLIBC_2.33 pthread_sigqueue F
>  GLIBC_2.33 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 6f45a3ebd6..2217cc5d4a 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1542,6 +1542,7 @@ GLIBC_2.27 pthread_setattr_default_np F
>  GLIBC_2.27 pthread_setcancelstate F
>  GLIBC_2.27 pthread_setcanceltype F
>  GLIBC_2.27 pthread_setconcurrency F
> +GLIBC_2.27 pthread_setname_np F
>  GLIBC_2.27 pthread_setschedparam F
>  GLIBC_2.27 pthread_setspecific F
>  GLIBC_2.27 pthread_sigmask F
> @@ -2377,6 +2378,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index 2f58bb845c..da077324ec 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.27 __errno_location F
>  GLIBC_2.27 pthread_create F
> -GLIBC_2.27 pthread_setname_np F
>  GLIBC_2.27 pthread_setschedprio F
>  GLIBC_2.27 pthread_sigqueue F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index ea42d4f420..41461447e7 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1782,6 +1782,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x21c
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2463,6 +2464,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 12048bef37..fd86527d05 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -4,7 +4,7 @@ GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.19 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index 811121dbb9..a10f057eaf 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -41,6 +41,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x438
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2350,6 +2351,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index c685c20bf7..811d709114 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -1,5 +1,5 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.19 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 85d2b2c13f..75b1aece01 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -41,6 +41,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x21c
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2319,6 +2320,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index f301ecb383..ac5627e09d 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -1,5 +1,5 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index d3429b6d96..392dd88819 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -41,6 +41,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x21c
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2316,6 +2317,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index f301ecb383..ac5627e09d 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -1,5 +1,5 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index be5a5aabd5..2b98f773a3 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1783,6 +1783,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x21c
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2456,6 +2457,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 7b143cd3d7..c002d68e5a 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -4,7 +4,7 @@ GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
>  GLIBC_2.2.3 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 8e88035ee6..db9dcf6978 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -41,6 +41,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x438
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2369,6 +2370,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index f301ecb383..ac5627e09d 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -1,5 +1,5 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
>  GLIBC_2.2 pthread_create F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 18eaaad847..deaa9991d4 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -37,6 +37,7 @@ GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
>  GLIBC_2.12 pthread_mutexattr_getrobust F
>  GLIBC_2.12 pthread_mutexattr_setrobust F
> +GLIBC_2.12 pthread_setname_np F
>  GLIBC_2.12 recvmmsg F
>  GLIBC_2.12 sys_errlist D 0x438
>  GLIBC_2.12 sys_nerr D 0x4
> @@ -2328,6 +2329,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 0759d42083..973e0d152a 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -1,5 +1,5 @@
>  GLIBC_2.11 pthread_sigqueue F
> -GLIBC_2.12 pthread_setname_np F
> +GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2.5 __errno_location F
>  GLIBC_2.2.5 pthread_create F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 6b754260c7..07fbab152e 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1557,6 +1557,7 @@ GLIBC_2.16 pthread_setaffinity_np F
>  GLIBC_2.16 pthread_setcancelstate F
>  GLIBC_2.16 pthread_setcanceltype F
>  GLIBC_2.16 pthread_setconcurrency F
> +GLIBC_2.16 pthread_setname_np F
>  GLIBC_2.16 pthread_setschedparam F
>  GLIBC_2.16 pthread_setspecific F
>  GLIBC_2.16 pthread_sigmask F
> @@ -2431,6 +2432,7 @@ GLIBC_2.34 pthread_rwlockattr_setpshared F
>  GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
> +GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 1e6013cfe6..551f630afe 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.16 __errno_location F
>  GLIBC_2.16 pthread_create F
> -GLIBC_2.16 pthread_setname_np F
>  GLIBC_2.16 pthread_setschedprio F
>  GLIBC_2.16 pthread_sigqueue F
>  GLIBC_2.18 __libpthread_version_placeholder F
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 21/23] nptl: Move pthread_setschedprio into libc
  2021-05-12 16:59 ` [PATCH 21/23] nptl: Move pthread_setschedprio " Florian Weimer
@ 2021-05-14 14:47   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-14 14:47 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:59, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
> 
> The GLIBC_2.3.4 version is now empty, so add a placeholder symbol.

LGTM, thanks.

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

> ---
>  nptl/Makefile                                       |  2 +-
>  nptl/Versions                                       |  5 +++--
>  nptl/libpthread-compat.c                            |  5 +++++
>  nptl/pthread_setschedprio.c                         | 13 ++++++++++---
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/aarch64/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/alpha/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/arc/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/arc/libpthread.abilist      |  1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist         |  2 ++
>  sysdeps/unix/sysv/linux/arm/be/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist         |  2 ++
>  sysdeps/unix/sysv/linux/arm/le/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/csky/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/hppa/libpthread.abilist     |  2 +-
>  sysdeps/unix/sysv/linux/i386/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/i386/libpthread.abilist     |  2 +-
>  sysdeps/unix/sysv/linux/ia64/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/ia64/libpthread.abilist     |  2 +-
>  sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist  |  2 ++
>  .../sysv/linux/m68k/coldfire/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist    |  2 ++
>  .../unix/sysv/linux/m68k/m680x0/libpthread.abilist  |  2 +-
>  sysdeps/unix/sysv/linux/microblaze/be/libc.abilist  |  2 ++
>  .../sysv/linux/microblaze/be/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/microblaze/le/libc.abilist  |  2 ++
>  .../sysv/linux/microblaze/le/libpthread.abilist     |  1 -
>  .../unix/sysv/linux/mips/mips32/fpu/libc.abilist    |  2 ++
>  .../unix/sysv/linux/mips/mips32/libpthread.abilist  |  2 +-
>  .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist  |  2 ++
>  .../unix/sysv/linux/mips/mips64/libpthread.abilist  |  2 +-
>  .../unix/sysv/linux/mips/mips64/n32/libc.abilist    |  2 ++
>  .../unix/sysv/linux/mips/mips64/n64/libc.abilist    |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libpthread.abilist    |  1 -
>  .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist   |  2 ++
>  .../sysv/linux/powerpc/powerpc32/libpthread.abilist |  2 +-
>  .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist |  2 ++
>  .../sysv/linux/powerpc/powerpc64/be/libc.abilist    |  2 ++
>  .../linux/powerpc/powerpc64/be/libpthread.abilist   |  2 +-
>  .../sysv/linux/powerpc/powerpc64/le/libc.abilist    |  2 ++
>  .../linux/powerpc/powerpc64/le/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist     |  2 ++
>  .../unix/sysv/linux/riscv/rv32/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist     |  2 ++
>  .../unix/sysv/linux/riscv/rv64/libpthread.abilist   |  1 -
>  sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist   |  2 ++
>  .../unix/sysv/linux/s390/s390-32/libpthread.abilist |  2 +-
>  sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist   |  2 ++
>  .../unix/sysv/linux/s390/s390-64/libpthread.abilist |  2 +-
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/sh/be/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/sh/le/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist  |  2 ++
>  .../sysv/linux/sparc/sparc32/libpthread.abilist     |  2 +-
>  sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist  |  2 ++
>  .../sysv/linux/sparc/sparc64/libpthread.abilist     |  2 +-
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist      |  2 ++
>  .../unix/sysv/linux/x86_64/64/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist     |  2 ++
>  .../unix/sysv/linux/x86_64/x32/libpthread.abilist   |  1 -
>  65 files changed, 99 insertions(+), 35 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 5a271fed87..d4cff359b5 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -176,6 +176,7 @@ routines = \
>    pthread_setconcurrency \
>    pthread_setname \
>    pthread_setschedparam \
> +  pthread_setschedprio \
>    pthread_setspecific \
>    pthread_sigmask \
>    pthread_spin_destroy \
> @@ -210,7 +211,6 @@ libpthread-routines = \
>    nptl-init \
>    pt-interp \
>    pthread_create \
> -  pthread_setschedprio \
>    pthread_sigqueue \
>    version \
>  

Ok.

> diff --git a/nptl/Versions b/nptl/Versions
> index 22d32df50f..49272dc998 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -174,6 +174,7 @@ libc {
>      pthread_attr_getaffinity_np;
>      pthread_attr_setaffinity_np;
>      pthread_setaffinity_np;
> +    pthread_setschedprio;
>    }
>    GLIBC_2.4 {
>      pthread_mutex_consistent_np;
> @@ -332,6 +333,7 @@ libc {
>      pthread_setattr_default_np;
>      pthread_setconcurrency;
>      pthread_setname_np;
> +    pthread_setschedprio;
>      pthread_setspecific;
>      pthread_spin_destroy;
>      pthread_spin_init;
> @@ -463,8 +465,7 @@ libpthread {
>    }
>  
>    GLIBC_2.3.4 {
> -    pthread_getaffinity_np;
> -    pthread_setschedprio;
> +    __libpthread_version_placeholder;
>    }
>  
>    GLIBC_2.4 {

Ok.

> diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
> index b1bee36f36..4d29a4c781 100644
> --- a/nptl/libpthread-compat.c
> +++ b/nptl/libpthread-compat.c
> @@ -75,6 +75,11 @@ compat_symbol (libpthread, __libpthread_version_placeholder_1,
>  	       __libpthread_version_placeholder, GLIBC_2_3_3);
>  #endif
>  
> +#if (SHLIB_COMPAT (libpthread, GLIBC_2_3_4, GLIBC_2_4))
> +compat_symbol (libpthread, __libpthread_version_placeholder_1,
> +	       __libpthread_version_placeholder, GLIBC_2_3_4);
> +#endif
> +
>  #if (SHLIB_COMPAT (libpthread, GLIBC_2_4, GLIBC_2_5))
>  compat_symbol (libpthread, __libpthread_version_placeholder_1,
>  	       __libpthread_version_placeholder, GLIBC_2_4);

Ok.

> diff --git a/nptl/pthread_setschedprio.c b/nptl/pthread_setschedprio.c
> index bc60ff0451..7bb68d3231 100644
> --- a/nptl/pthread_setschedprio.c
> +++ b/nptl/pthread_setschedprio.c
> @@ -22,10 +22,10 @@
>  #include <sched.h>
>  #include "pthreadP.h"
>  #include <lowlevellock.h>
> -
> +#include <shlib-compat.h>
>  
>  int
> -pthread_setschedprio (pthread_t threadid, int prio)
> +__pthread_setschedprio (pthread_t threadid, int prio)
>  {
>    struct pthread *pd = (struct pthread *) threadid;
>  
> @@ -47,7 +47,7 @@ pthread_setschedprio (pthread_t threadid, int prio)
>      param.sched_priority = pd->tpp->priomax;
>  
>    /* Try to set the scheduler information.  */
> -  if (__glibc_unlikely (sched_setparam (pd->tid, &param) == -1))
> +  if (__glibc_unlikely (__sched_setparam (pd->tid, &param) == -1))
>      result = errno;
>    else
>      {
> @@ -62,3 +62,10 @@ pthread_setschedprio (pthread_t threadid, int prio)
>  
>    return result;
>  }
> +versioned_symbol (libc, __pthread_setschedprio, pthread_setschedprio,
> +		  GLIBC_2_34);
> +
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_3_4, GLIBC_2_34)
> +compat_symbol (libpthread, __pthread_setschedprio, pthread_setschedprio,
> +	       GLIBC_2_3_4);
> +#endif

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index ebe358d524..9f7d6ae38f 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1552,6 +1552,7 @@ GLIBC_2.17 pthread_setcanceltype F
>  GLIBC_2.17 pthread_setconcurrency F
>  GLIBC_2.17 pthread_setname_np F
>  GLIBC_2.17 pthread_setschedparam F
> +GLIBC_2.17 pthread_setschedprio F
>  GLIBC_2.17 pthread_setspecific F
>  GLIBC_2.17 pthread_sigmask F
>  GLIBC_2.17 pthread_spin_destroy F
> @@ -2418,6 +2419,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index c95d8d7e0f..8dc1044562 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.17 __errno_location F
>  GLIBC_2.17 pthread_create F
> -GLIBC_2.17 pthread_setschedprio F
>  GLIBC_2.17 pthread_sigqueue F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 003eddb0e4..4db265b834 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2361,6 +2361,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2509,6 +2510,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index c002d68e5a..2646cf522e 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -12,7 +12,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 6e00b62a37..515ed90332 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1498,6 +1498,7 @@ GLIBC_2.32 pthread_setcanceltype F
>  GLIBC_2.32 pthread_setconcurrency F
>  GLIBC_2.32 pthread_setname_np F
>  GLIBC_2.32 pthread_setschedparam F
> +GLIBC_2.32 pthread_setschedprio F
>  GLIBC_2.32 pthread_setspecific F
>  GLIBC_2.32 pthread_sigmask F
>  GLIBC_2.32 pthread_spin_destroy F
> @@ -2177,6 +2178,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index f3736f98af..a16e1fd63b 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.32 __errno_location F
>  GLIBC_2.32 pthread_create F
> -GLIBC_2.32 pthread_setschedprio F
>  GLIBC_2.32 pthread_sigqueue F
>  GLIBC_2.32 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 94a9c08fd8..5279208f3b 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -285,6 +285,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> @@ -1795,6 +1796,7 @@ GLIBC_2.4 pthread_setcancelstate F
>  GLIBC_2.4 pthread_setcanceltype F
>  GLIBC_2.4 pthread_setconcurrency F
>  GLIBC_2.4 pthread_setschedparam F
> +GLIBC_2.4 pthread_setschedprio F
>  GLIBC_2.4 pthread_setspecific F
>  GLIBC_2.4 pthread_sigmask F
>  GLIBC_2.4 pthread_spin_destroy F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index 7c62cde550..ffb33d5f4d 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -7,4 +7,3 @@ GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __errno_location F
>  GLIBC_2.4 __libpthread_version_placeholder F
>  GLIBC_2.4 pthread_create F
> -GLIBC_2.4 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index 7dee722baf..fdedeb4746 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -282,6 +282,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> @@ -1792,6 +1793,7 @@ GLIBC_2.4 pthread_setcancelstate F
>  GLIBC_2.4 pthread_setcanceltype F
>  GLIBC_2.4 pthread_setconcurrency F
>  GLIBC_2.4 pthread_setschedparam F
> +GLIBC_2.4 pthread_setschedprio F
>  GLIBC_2.4 pthread_setspecific F
>  GLIBC_2.4 pthread_sigmask F
>  GLIBC_2.4 pthread_spin_destroy F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index 7c62cde550..ffb33d5f4d 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -7,4 +7,3 @@ GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __errno_location F
>  GLIBC_2.4 __libpthread_version_placeholder F
>  GLIBC_2.4 pthread_create F
> -GLIBC_2.4 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 28cce579f2..baf0714d27 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1554,6 +1554,7 @@ GLIBC_2.29 pthread_setcanceltype F
>  GLIBC_2.29 pthread_setconcurrency F
>  GLIBC_2.29 pthread_setname_np F
>  GLIBC_2.29 pthread_setschedparam F
> +GLIBC_2.29 pthread_setschedprio F
>  GLIBC_2.29 pthread_setspecific F
>  GLIBC_2.29 pthread_sigmask F
>  GLIBC_2.29 pthread_spin_destroy F
> @@ -2361,6 +2362,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 97e0acd58e..b1a1a61de4 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.29 __errno_location F
>  GLIBC_2.29 pthread_create F
> -GLIBC_2.29 pthread_setschedprio F
>  GLIBC_2.29 pthread_sigqueue F
>  GLIBC_2.29 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 1f9b6d8d01..01853c3864 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2178,6 +2178,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2314,6 +2315,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index ac5627e09d..7592c1ba3c 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -8,7 +8,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 5c24eaef49..70c2ecdda2 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2358,6 +2358,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2497,6 +2498,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index c002d68e5a..2646cf522e 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -12,7 +12,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 2fade241ae..6756cbc7b7 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2213,6 +2213,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2350,6 +2351,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index ac5627e09d..7592c1ba3c 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -8,7 +8,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 4a036fce78..40a3655075 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -286,6 +286,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> @@ -1775,6 +1776,7 @@ GLIBC_2.4 pthread_setcancelstate F
>  GLIBC_2.4 pthread_setcanceltype F
>  GLIBC_2.4 pthread_setconcurrency F
>  GLIBC_2.4 pthread_setschedparam F
> +GLIBC_2.4 pthread_setschedprio F
>  GLIBC_2.4 pthread_setspecific F
>  GLIBC_2.4 pthread_sigmask F
>  GLIBC_2.4 pthread_spin_destroy F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index 7c62cde550..ffb33d5f4d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -7,4 +7,3 @@ GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __errno_location F
>  GLIBC_2.4 __libpthread_version_placeholder F
>  GLIBC_2.4 pthread_create F
> -GLIBC_2.4 pthread_setschedprio F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index ab7d5c54e1..7e1eea7b05 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2301,6 +2301,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2440,6 +2441,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index c002d68e5a..2646cf522e 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -12,7 +12,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 010fd7e917..666c8bff7e 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1556,6 +1556,7 @@ GLIBC_2.18 pthread_setcanceltype F
>  GLIBC_2.18 pthread_setconcurrency F
>  GLIBC_2.18 pthread_setname_np F
>  GLIBC_2.18 pthread_setschedparam F
> +GLIBC_2.18 pthread_setschedprio F
>  GLIBC_2.18 pthread_setspecific F
>  GLIBC_2.18 pthread_sigmask F
>  GLIBC_2.18 pthread_spin_destroy F
> @@ -2412,6 +2413,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index 7cf69ae9b7..f82659a575 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_setschedprio F
>  GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 26a0db4c36..3ba5ce2666 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1556,6 +1556,7 @@ GLIBC_2.18 pthread_setcanceltype F
>  GLIBC_2.18 pthread_setconcurrency F
>  GLIBC_2.18 pthread_setname_np F
>  GLIBC_2.18 pthread_setschedparam F
> +GLIBC_2.18 pthread_setschedprio F
>  GLIBC_2.18 pthread_setspecific F
>  GLIBC_2.18 pthread_sigmask F
>  GLIBC_2.18 pthread_spin_destroy F
> @@ -2409,6 +2410,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index 7cf69ae9b7..f82659a575 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_setschedprio F
>  GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 18f84a75d5..005316e35e 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2269,6 +2269,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2405,6 +2406,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index c467d55dc1..3509a430b1 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -9,7 +9,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index a88f242493..eac98a8be5 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2267,6 +2267,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2403,6 +2404,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index c467d55dc1..3509a430b1 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -9,7 +9,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 5e2e7e666e..b37c7cf080 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2275,6 +2275,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2411,6 +2412,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 115c85a49a..5407edcacc 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2269,6 +2269,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2405,6 +2406,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index 4e91b3f0a0..a54cb8e71c 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1599,6 +1599,7 @@ GLIBC_2.21 pthread_setcanceltype F
>  GLIBC_2.21 pthread_setconcurrency F
>  GLIBC_2.21 pthread_setname_np F
>  GLIBC_2.21 pthread_setschedparam F
> +GLIBC_2.21 pthread_setschedprio F
>  GLIBC_2.21 pthread_setspecific F
>  GLIBC_2.21 pthread_sigmask F
>  GLIBC_2.21 pthread_spin_destroy F
> @@ -2451,6 +2452,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index fe54b3c7bd..5b2ad8dc3c 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.21 __errno_location F
>  GLIBC_2.21 pthread_create F
> -GLIBC_2.21 pthread_setschedprio F
>  GLIBC_2.21 pthread_sigqueue F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 77d3e6e2ac..c0fb296a70 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2315,6 +2315,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2467,6 +2468,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index 59a3a9caab..06a3a16d91 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -12,7 +12,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 26dda60d76..06d3fcd881 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2348,6 +2348,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2500,6 +2501,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index e8ad3d3160..cf5ce60477 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2163,6 +2163,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2315,6 +2316,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 2483a4b02d..17d0dc8c9d 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -6,7 +6,7 @@ GLIBC_2.3 __errno_location F
>  GLIBC_2.3 pthread_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index 937def80d1..c95af588ed 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1640,6 +1640,7 @@ GLIBC_2.17 pthread_setcanceltype F
>  GLIBC_2.17 pthread_setconcurrency F
>  GLIBC_2.17 pthread_setname_np F
>  GLIBC_2.17 pthread_setschedparam F
> +GLIBC_2.17 pthread_setschedprio F
>  GLIBC_2.17 pthread_setspecific F
>  GLIBC_2.17 pthread_sigmask F
>  GLIBC_2.17 pthread_spin_destroy F
> @@ -2614,6 +2615,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index c95d8d7e0f..8dc1044562 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.17 __errno_location F
>  GLIBC_2.17 pthread_create F
> -GLIBC_2.17 pthread_setschedprio F
>  GLIBC_2.17 pthread_sigqueue F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index 15a653f357..ffd9e7dd5c 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1500,6 +1500,7 @@ GLIBC_2.33 pthread_setcanceltype F
>  GLIBC_2.33 pthread_setconcurrency F
>  GLIBC_2.33 pthread_setname_np F
>  GLIBC_2.33 pthread_setschedparam F
> +GLIBC_2.33 pthread_setschedprio F
>  GLIBC_2.33 pthread_setspecific F
>  GLIBC_2.33 pthread_sigmask F
>  GLIBC_2.33 pthread_spin_destroy F
> @@ -2179,6 +2180,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index 8583d6e1b8..58c6081c6b 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -1,5 +1,4 @@
>  GLIBC_2.33 __errno_location F
>  GLIBC_2.33 pthread_create F
> -GLIBC_2.33 pthread_setschedprio F
>  GLIBC_2.33 pthread_sigqueue F
>  GLIBC_2.33 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 2217cc5d4a..65e239fd36 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1544,6 +1544,7 @@ GLIBC_2.27 pthread_setcanceltype F
>  GLIBC_2.27 pthread_setconcurrency F
>  GLIBC_2.27 pthread_setname_np F
>  GLIBC_2.27 pthread_setschedparam F
> +GLIBC_2.27 pthread_setschedprio F
>  GLIBC_2.27 pthread_setspecific F
>  GLIBC_2.27 pthread_sigmask F
>  GLIBC_2.27 pthread_spin_destroy F
> @@ -2379,6 +2380,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index da077324ec..6d374d50a8 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.27 __errno_location F
>  GLIBC_2.27 pthread_create F
> -GLIBC_2.27 pthread_setschedprio F
>  GLIBC_2.27 pthread_sigqueue F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 41461447e7..dc12675b89 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2314,6 +2314,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2465,6 +2466,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index fd86527d05..446bed0b3e 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -13,7 +13,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index a10f057eaf..fec5890543 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2204,6 +2204,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2352,6 +2353,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index 811d709114..ad141b690a 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -9,7 +9,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index 75b1aece01..a6deb10080 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2182,6 +2182,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2321,6 +2322,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index ac5627e09d..7592c1ba3c 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -8,7 +8,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 392dd88819..87e07af367 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2182,6 +2182,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2318,6 +2319,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index ac5627e09d..7592c1ba3c 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -8,7 +8,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 2b98f773a3..b4f6da7a0d 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2310,6 +2310,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2458,6 +2459,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index c002d68e5a..2646cf522e 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -12,7 +12,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index db9dcf6978..a809cdc6b9 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2235,6 +2235,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2371,6 +2372,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index ac5627e09d..7592c1ba3c 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -8,7 +8,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index deaa9991d4..a809de67b6 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2192,6 +2192,7 @@ GLIBC_2.3.4 pthread_attr_getaffinity_np F
>  GLIBC_2.3.4 pthread_attr_setaffinity_np F
>  GLIBC_2.3.4 pthread_getaffinity_np F
>  GLIBC_2.3.4 pthread_setaffinity_np F
> +GLIBC_2.3.4 pthread_setschedprio F
>  GLIBC_2.3.4 regexec F
>  GLIBC_2.3.4 sched_getaffinity F
>  GLIBC_2.3.4 sched_setaffinity F
> @@ -2330,6 +2331,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 973e0d152a..309e1a4f7a 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -7,7 +7,7 @@ GLIBC_2.2.6 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.3.2 __libpthread_version_placeholder F
>  GLIBC_2.3.3 __libpthread_version_placeholder F
> -GLIBC_2.3.4 pthread_setschedprio F
> +GLIBC_2.3.4 __libpthread_version_placeholder F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
>  GLIBC_2.4 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 07fbab152e..030971c133 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1559,6 +1559,7 @@ GLIBC_2.16 pthread_setcanceltype F
>  GLIBC_2.16 pthread_setconcurrency F
>  GLIBC_2.16 pthread_setname_np F
>  GLIBC_2.16 pthread_setschedparam F
> +GLIBC_2.16 pthread_setschedprio F
>  GLIBC_2.16 pthread_setspecific F
>  GLIBC_2.16 pthread_sigmask F
>  GLIBC_2.16 pthread_spin_destroy F
> @@ -2433,6 +2434,7 @@ GLIBC_2.34 pthread_setaffinity_np F
>  GLIBC_2.34 pthread_setattr_default_np F
>  GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
> +GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 551f630afe..47a9fcae50 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.16 __errno_location F
>  GLIBC_2.16 pthread_create F
> -GLIBC_2.16 pthread_setschedprio F
>  GLIBC_2.16 pthread_sigqueue F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> 

Ok.

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 22/23] nptl: Move pthread_sigqueue into libc
  2021-05-12 16:59 ` [PATCH 22/23] nptl: Move pthread_sigqueue " Florian Weimer
@ 2021-05-14 14:48   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-14 14:48 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:59, Florian Weimer via Libc-alpha wrote:
> The symbol was moved using scripts/move-symbol-to-libc.py.
> 
> The GLIBC_2.11 version is now empty, so add a placeholder symbol.

LGTM, thanks.

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

> ---
>  nptl/Makefile                                         |  2 +-
>  nptl/Versions                                         |  6 +++++-
>  nptl/libpthread-compat.c                              |  5 +++++
>  nptl/pthread_sigqueue.c                               | 11 ++++++++---
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist          |  2 ++
>  sysdeps/unix/sysv/linux/aarch64/libpthread.abilist    |  1 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/alpha/libpthread.abilist      |  2 +-
>  sysdeps/unix/sysv/linux/arc/libc.abilist              |  2 ++
>  sysdeps/unix/sysv/linux/arc/libpthread.abilist        |  1 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/arm/be/libpthread.abilist     |  2 +-
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist           |  2 ++
>  sysdeps/unix/sysv/linux/arm/le/libpthread.abilist     |  2 +-
>  sysdeps/unix/sysv/linux/csky/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/csky/libpthread.abilist       |  1 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/hppa/libpthread.abilist       |  2 +-
>  sysdeps/unix/sysv/linux/i386/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/i386/libpthread.abilist       |  2 +-
>  sysdeps/unix/sysv/linux/ia64/libc.abilist             |  2 ++
>  sysdeps/unix/sysv/linux/ia64/libpthread.abilist       |  2 +-
>  sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist    |  2 ++
>  .../unix/sysv/linux/m68k/coldfire/libpthread.abilist  |  2 +-
>  sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist      |  2 ++
>  .../unix/sysv/linux/m68k/m680x0/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/microblaze/be/libc.abilist    |  2 ++
>  .../unix/sysv/linux/microblaze/be/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/microblaze/le/libc.abilist    |  2 ++
>  .../unix/sysv/linux/microblaze/le/libpthread.abilist  |  1 -
>  sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist  |  2 ++
>  .../unix/sysv/linux/mips/mips32/libpthread.abilist    |  2 +-
>  .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist    |  2 ++
>  .../unix/sysv/linux/mips/mips64/libpthread.abilist    |  2 +-
>  sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist  |  2 ++
>  sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist  |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/nios2/libpthread.abilist      |  1 -
>  .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist     |  2 ++
>  .../sysv/linux/powerpc/powerpc32/libpthread.abilist   |  2 +-
>  .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist   |  2 ++
>  .../unix/sysv/linux/powerpc/powerpc64/be/libc.abilist |  2 ++
>  .../linux/powerpc/powerpc64/be/libpthread.abilist     |  2 +-
>  .../unix/sysv/linux/powerpc/powerpc64/le/libc.abilist |  2 ++
>  .../linux/powerpc/powerpc64/le/libpthread.abilist     |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist |  1 -
>  sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist     |  2 ++
>  .../unix/sysv/linux/s390/s390-32/libpthread.abilist   |  2 +-
>  sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist     |  2 ++
>  .../unix/sysv/linux/s390/s390-64/libpthread.abilist   |  2 +-
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/sh/be/libpthread.abilist      |  2 +-
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist            |  2 ++
>  sysdeps/unix/sysv/linux/sh/le/libpthread.abilist      |  2 +-
>  sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist    |  2 ++
>  .../unix/sysv/linux/sparc/sparc32/libpthread.abilist  |  2 +-
>  sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist    |  2 ++
>  .../unix/sysv/linux/sparc/sparc64/libpthread.abilist  |  2 +-
>  sysdeps/unix/sysv/linux/x86_64/64/libc.abilist        |  2 ++
>  sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist  |  2 +-
>  sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist       |  2 ++
>  sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist |  1 -
>  65 files changed, 102 insertions(+), 34 deletions(-)
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index d4cff359b5..bd5a9ce51f 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -179,6 +179,7 @@ routines = \
>    pthread_setschedprio \
>    pthread_setspecific \
>    pthread_sigmask \
> +  pthread_sigqueue \
>    pthread_spin_destroy \
>    pthread_spin_init \
>    pthread_spin_lock \
> @@ -211,7 +212,6 @@ libpthread-routines = \
>    nptl-init \
>    pt-interp \
>    pthread_create \
> -  pthread_sigqueue \
>    version \
>  
>  libpthread-shared-only-routines = \

Ok.

> diff --git a/nptl/Versions b/nptl/Versions
> index 49272dc998..2097e517ae 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -187,6 +187,9 @@ libc {
>      pthread_mutexattr_setprotocol;
>      pthread_mutexattr_setrobust_np;
>    }
> +  GLIBC_2.11 {
> +    pthread_sigqueue;
> +  }
>    GLIBC_2.12 {
>      pthread_getname_np;
>      pthread_mutex_consistent;
> @@ -335,6 +338,7 @@ libc {
>      pthread_setname_np;
>      pthread_setschedprio;
>      pthread_setspecific;
> +    pthread_sigqueue;
>      pthread_spin_destroy;
>      pthread_spin_init;
>      pthread_spin_lock;
> @@ -473,7 +477,7 @@ libpthread {
>    };
>  
>    GLIBC_2.11 {
> -    pthread_sigqueue;
> +    __libpthread_version_placeholder;
>    };
>  
>    GLIBC_2.12 {

Ok.

> diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
> index 4d29a4c781..7e3e7aa0c3 100644
> --- a/nptl/libpthread-compat.c
> +++ b/nptl/libpthread-compat.c
> @@ -85,6 +85,11 @@ compat_symbol (libpthread, __libpthread_version_placeholder_1,
>  	       __libpthread_version_placeholder, GLIBC_2_4);
>  #endif
>  
> +#if SHLIB_COMPAT (libpthread, GLIBC_2_11, GLIBC_2_12)
> +compat_symbol (libpthread, __libpthread_version_placeholder_1,
> +	       __libpthread_version_placeholder, GLIBC_2_11);
> +#endif
> +
>  #if SHLIB_COMPAT (libpthread, GLIBC_2_12, GLIBC_2_13)
>  compat_symbol (libpthread, __libpthread_version_placeholder_1,
>  	       __libpthread_version_placeholder, GLIBC_2_12);

Ok.

> diff --git a/nptl/pthread_sigqueue.c b/nptl/pthread_sigqueue.c
> index 3ffb595489..2a0467ad7a 100644
> --- a/nptl/pthread_sigqueue.c
> +++ b/nptl/pthread_sigqueue.c
> @@ -23,10 +23,10 @@
>  #include <pthreadP.h>
>  #include <tls.h>
>  #include <sysdep.h>
> -
> +#include <shlib-compat.h>
>  
>  int
> -pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
> +__pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
>  {
>  #ifdef __NR_rt_tgsigqueueinfo
>    struct pthread *pd = (struct pthread *) threadid;
> @@ -52,7 +52,7 @@ pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
>    info.si_signo = signo;
>    info.si_code = SI_QUEUE;
>    info.si_pid = pid;
> -  info.si_uid = getuid ();
> +  info.si_uid = __getuid ();
>    info.si_value = value;
>  
>    /* We have a special syscall to do the work.  */
> @@ -64,3 +64,8 @@ pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
>    return ENOSYS;
>  #endif
>  }
> +versioned_symbol (libc, __pthread_sigqueue, pthread_sigqueue, GLIBC_2_34);
> +
> +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_11, GLIBC_2_34)
> +compat_symbol (libpthread, __pthread_sigqueue, pthread_sigqueue, GLIBC_2_11);
> +#endif


Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 9f7d6ae38f..c8920ed79b 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -1555,6 +1555,7 @@ GLIBC_2.17 pthread_setschedparam F
>  GLIBC_2.17 pthread_setschedprio F
>  GLIBC_2.17 pthread_setspecific F
>  GLIBC_2.17 pthread_sigmask F
> +GLIBC_2.17 pthread_sigqueue F
>  GLIBC_2.17 pthread_spin_destroy F
>  GLIBC_2.17 pthread_spin_init F
>  GLIBC_2.17 pthread_spin_lock F
> @@ -2421,6 +2422,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index 8dc1044562..3c03fcc17b 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.17 __errno_location F
>  GLIBC_2.17 pthread_create F
> -GLIBC_2.17 pthread_sigqueue F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index 4db265b834..dbc4a25aa3 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -1817,6 +1817,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x458
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -2512,6 +2513,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index 2646cf522e..c8f065b787 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index 515ed90332..de790e8ecf 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -1501,6 +1501,7 @@ GLIBC_2.32 pthread_setschedparam F
>  GLIBC_2.32 pthread_setschedprio F
>  GLIBC_2.32 pthread_setspecific F
>  GLIBC_2.32 pthread_sigmask F
> +GLIBC_2.32 pthread_sigqueue F
>  GLIBC_2.32 pthread_spin_destroy F
>  GLIBC_2.32 pthread_spin_init F
>  GLIBC_2.32 pthread_spin_lock F
> @@ -2180,6 +2181,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> index a16e1fd63b..1d363aa47f 100644
> --- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
> @@ -1,4 +1,3 @@
>  GLIBC_2.32 __errno_location F
>  GLIBC_2.32 pthread_create F
> -GLIBC_2.32 pthread_sigqueue F
>  GLIBC_2.32 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index 5279208f3b..93ca2a5b28 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -30,6 +30,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -287,6 +288,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> index ffb33d5f4d..0ad6524820 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index fdedeb4746..935b2f99bb 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -30,6 +30,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -284,6 +285,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> index ffb33d5f4d..0ad6524820 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index baf0714d27..32f14e48f6 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -1557,6 +1557,7 @@ GLIBC_2.29 pthread_setschedparam F
>  GLIBC_2.29 pthread_setschedprio F
>  GLIBC_2.29 pthread_setspecific F
>  GLIBC_2.29 pthread_sigmask F
> +GLIBC_2.29 pthread_sigqueue F
>  GLIBC_2.29 pthread_spin_destroy F
>  GLIBC_2.29 pthread_spin_init F
>  GLIBC_2.29 pthread_spin_lock F
> @@ -2364,6 +2365,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index b1a1a61de4..d2f66f45ff 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.29 __errno_location F
>  GLIBC_2.29 pthread_create F
> -GLIBC_2.29 pthread_sigqueue F
>  GLIBC_2.29 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 01853c3864..4264754c4d 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -30,6 +30,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x404
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -2317,6 +2318,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 7592c1ba3c..cc941573b6 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index 70c2ecdda2..519a060643 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -1822,6 +1822,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -2500,6 +2501,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index 2646cf522e..c8f065b787 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 6756cbc7b7..7a13ab08f6 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -30,6 +30,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x438
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -2353,6 +2354,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 7592c1ba3c..cc941573b6 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 40a3655075..9b378e4447 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -30,6 +30,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 __m68k_read_tp F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
> @@ -288,6 +289,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index ffb33d5f4d..0ad6524820 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index 7e1eea7b05..b6d0f57e9d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -1778,6 +1778,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 __m68k_read_tp F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
> @@ -2443,6 +2444,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index 2646cf522e..c8f065b787 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 666c8bff7e..ac5d3656c7 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -1559,6 +1559,7 @@ GLIBC_2.18 pthread_setschedparam F
>  GLIBC_2.18 pthread_setschedprio F
>  GLIBC_2.18 pthread_setspecific F
>  GLIBC_2.18 pthread_sigmask F
> +GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.18 pthread_spin_destroy F
>  GLIBC_2.18 pthread_spin_init F
>  GLIBC_2.18 pthread_spin_lock F
> @@ -2415,6 +2416,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> index f82659a575..921e604dbe 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 3ba5ce2666..3c47c1c907 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -1559,6 +1559,7 @@ GLIBC_2.18 pthread_setschedparam F
>  GLIBC_2.18 pthread_setschedprio F
>  GLIBC_2.18 pthread_setspecific F
>  GLIBC_2.18 pthread_sigmask F
> +GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.18 pthread_spin_destroy F
>  GLIBC_2.18 pthread_spin_init F
>  GLIBC_2.18 pthread_spin_lock F
> @@ -2412,6 +2413,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> index f82659a575..921e604dbe 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.18 __errno_location F
>  GLIBC_2.18 pthread_create F
> -GLIBC_2.18 pthread_sigqueue F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index 005316e35e..f9b4a578a9 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -1382,6 +1382,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 ntp_gettimex F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
> @@ -2408,6 +2409,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index 3509a430b1..a5f3d5ce2a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -1,6 +1,6 @@
>  GLIBC_2.0 __errno_location F
>  GLIBC_2.0 pthread_create F
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index eac98a8be5..9e6c0e1c57 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -1382,6 +1382,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 ntp_gettimex F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
> @@ -2406,6 +2407,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index 3509a430b1..a5f3d5ce2a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -1,6 +1,6 @@
>  GLIBC_2.0 __errno_location F
>  GLIBC_2.0 pthread_create F
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 pthread_create F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index b37c7cf080..d52f480650 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -1382,6 +1382,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 ntp_gettimex F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
> @@ -2414,6 +2415,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 5407edcacc..86727e2e50 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -1380,6 +1380,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 ntp_gettimex F
>  GLIBC_2.12 pthread_getname_np F
>  GLIBC_2.12 pthread_mutex_consistent F
> @@ -2408,6 +2409,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index a54cb8e71c..af7e10feb6 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -1602,6 +1602,7 @@ GLIBC_2.21 pthread_setschedparam F
>  GLIBC_2.21 pthread_setschedprio F
>  GLIBC_2.21 pthread_setspecific F
>  GLIBC_2.21 pthread_sigmask F
> +GLIBC_2.21 pthread_sigqueue F
>  GLIBC_2.21 pthread_spin_destroy F
>  GLIBC_2.21 pthread_spin_init F
>  GLIBC_2.21 pthread_spin_lock F
> @@ -2454,6 +2455,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 5b2ad8dc3c..f36733746e 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.21 __errno_location F
>  GLIBC_2.21 pthread_create F
> -GLIBC_2.21 pthread_sigqueue F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index c0fb296a70..9591c4b782 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -1783,6 +1783,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -2470,6 +2471,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index 06a3a16d91..84a1592904 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index 06d3fcd881..f539198508 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -1783,6 +1783,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -2503,6 +2504,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index cf5ce60477..f4d4d39e38 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -30,6 +30,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x438
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -2318,6 +2319,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index 17d0dc8c9d..b66279a352 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index c95af588ed..632acd4d74 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -1643,6 +1643,7 @@ GLIBC_2.17 pthread_setschedparam F
>  GLIBC_2.17 pthread_setschedprio F
>  GLIBC_2.17 pthread_setspecific F
>  GLIBC_2.17 pthread_sigmask F
> +GLIBC_2.17 pthread_sigqueue F
>  GLIBC_2.17 pthread_spin_destroy F
>  GLIBC_2.17 pthread_spin_init F
>  GLIBC_2.17 pthread_spin_lock F
> @@ -2617,6 +2618,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index 8dc1044562..3c03fcc17b 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.17 __errno_location F
>  GLIBC_2.17 pthread_create F
> -GLIBC_2.17 pthread_sigqueue F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index ffd9e7dd5c..7080ea1119 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -1503,6 +1503,7 @@ GLIBC_2.33 pthread_setschedparam F
>  GLIBC_2.33 pthread_setschedprio F
>  GLIBC_2.33 pthread_setspecific F
>  GLIBC_2.33 pthread_sigmask F
> +GLIBC_2.33 pthread_sigqueue F
>  GLIBC_2.33 pthread_spin_destroy F
>  GLIBC_2.33 pthread_spin_init F
>  GLIBC_2.33 pthread_spin_lock F
> @@ -2182,6 +2183,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> index 58c6081c6b..e9cded0b3c 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
> @@ -1,4 +1,3 @@
>  GLIBC_2.33 __errno_location F
>  GLIBC_2.33 pthread_create F
> -GLIBC_2.33 pthread_sigqueue F
>  GLIBC_2.33 thrd_create F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 65e239fd36..dbdf580afc 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -1547,6 +1547,7 @@ GLIBC_2.27 pthread_setschedparam F
>  GLIBC_2.27 pthread_setschedprio F
>  GLIBC_2.27 pthread_setspecific F
>  GLIBC_2.27 pthread_sigmask F
> +GLIBC_2.27 pthread_sigqueue F
>  GLIBC_2.27 pthread_spin_destroy F
>  GLIBC_2.27 pthread_spin_init F
>  GLIBC_2.27 pthread_spin_lock F
> @@ -2382,6 +2383,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index 6d374d50a8..07a3c7f01d 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.27 __errno_location F
>  GLIBC_2.27 pthread_create F
> -GLIBC_2.27 pthread_sigqueue F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
>  GLIBC_2.31 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index dc12675b89..ba6f93488f 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -1775,6 +1775,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -2468,6 +2469,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 446bed0b3e..faae6bcf76 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.19 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index fec5890543..4e814da843 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -34,6 +34,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x438
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -2355,6 +2356,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index ad141b690a..ac3a2834dc 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.19 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index a6deb10080..ed0575e545 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -34,6 +34,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -2324,6 +2325,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> index 7592c1ba3c..cc941573b6 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index 87e07af367..23c356ea4d 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -34,6 +34,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -2321,6 +2322,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> index 7592c1ba3c..cc941573b6 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index b4f6da7a0d..dd24236ad8 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -1776,6 +1776,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x21c
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -2461,6 +2462,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index 2646cf522e..c8f065b787 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -3,7 +3,7 @@ GLIBC_2.0 pthread_create F
>  GLIBC_2.1 pthread_create F
>  GLIBC_2.1.1 __libpthread_version_placeholder F
>  GLIBC_2.1.2 __libpthread_version_placeholder F
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __libpthread_version_placeholder F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index a809cdc6b9..b3fcaadd70 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -34,6 +34,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x438
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -2374,6 +2375,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 7592c1ba3c..cc941573b6 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2 __errno_location F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index a809de67b6..ea61127067 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -30,6 +30,7 @@ GLIBC_2.11 mkostemps F
>  GLIBC_2.11 mkostemps64 F
>  GLIBC_2.11 mkstemps F
>  GLIBC_2.11 mkstemps64 F
> +GLIBC_2.11 pthread_sigqueue F
>  GLIBC_2.12 _sys_errlist D 0x438
>  GLIBC_2.12 _sys_nerr D 0x4
>  GLIBC_2.12 ntp_gettimex F
> @@ -2333,6 +2334,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 309e1a4f7a..d3abfb7d11 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -1,4 +1,4 @@
> -GLIBC_2.11 pthread_sigqueue F
> +GLIBC_2.11 __libpthread_version_placeholder F
>  GLIBC_2.12 __libpthread_version_placeholder F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.2.5 __errno_location F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index 030971c133..8425366915 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -1562,6 +1562,7 @@ GLIBC_2.16 pthread_setschedparam F
>  GLIBC_2.16 pthread_setschedprio F
>  GLIBC_2.16 pthread_setspecific F
>  GLIBC_2.16 pthread_sigmask F
> +GLIBC_2.16 pthread_sigqueue F
>  GLIBC_2.16 pthread_spin_destroy F
>  GLIBC_2.16 pthread_spin_init F
>  GLIBC_2.16 pthread_spin_lock F
> @@ -2436,6 +2437,7 @@ GLIBC_2.34 pthread_setconcurrency F
>  GLIBC_2.34 pthread_setname_np F
>  GLIBC_2.34 pthread_setschedprio F
>  GLIBC_2.34 pthread_setspecific F
> +GLIBC_2.34 pthread_sigqueue F
>  GLIBC_2.34 pthread_spin_destroy F
>  GLIBC_2.34 pthread_spin_init F
>  GLIBC_2.34 pthread_spin_lock F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 47a9fcae50..af42dea518 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -1,6 +1,5 @@
>  GLIBC_2.16 __errno_location F
>  GLIBC_2.16 pthread_create F
> -GLIBC_2.16 pthread_sigqueue F
>  GLIBC_2.18 __libpthread_version_placeholder F
>  GLIBC_2.28 thrd_create F
>  GLIBC_2.30 __libpthread_version_placeholder F
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 23/23] nptl: Move semi-public __pthread_get_minstack symbol into libc
  2021-05-12 16:59 ` [PATCH 23/23] nptl: Move semi-public __pthread_get_minstack symbol " Florian Weimer
@ 2021-05-14 14:50   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-14 14:50 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 12/05/2021 13:59, Florian Weimer via Libc-alpha wrote:
> No abilist updates here because it is a GLIBC_PRIVATE symbol.
> 
> It's also necessary to move nptl_version into pthread_create, so
> that it still ends up in static binaries.

LGTM, thanks.

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

> ---
>  nptl/Versions         |  2 +-
>  nptl/nptl-init.c      | 19 -------------------
>  nptl/nptl-stack.c     | 17 +++++++++++++++++
>  nptl/pthreadP.h       |  1 +
>  nptl/pthread_create.c |  4 ++++
>  5 files changed, 23 insertions(+), 20 deletions(-)
> 
> diff --git a/nptl/Versions b/nptl/Versions
> index 2097e517ae..016a9bef09 100644
> --- a/nptl/Versions
> +++ b/nptl/Versions
> @@ -408,6 +408,7 @@ libc {
>      __pthread_disable_asynccancel;
>      __pthread_enable_asynccancel;
>      __pthread_force_elision;
> +    __pthread_get_minstack;
>      __pthread_getattr_default_np;
>      __pthread_getattr_default_np;
>      __pthread_keys;
> @@ -510,7 +511,6 @@ libpthread {
>    GLIBC_PRIVATE {
>      __pthread_clock_gettime;
>      __pthread_clock_settime;
> -    __pthread_get_minstack;
>      __pthread_initialize_minimal;
>    }
>  }

Ok.

> diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
> index 732e580355..5a460aedba 100644
> --- a/nptl/nptl-init.c
> +++ b/nptl/nptl-init.c
> @@ -38,28 +38,9 @@
>  #include <pthread_mutex_conf.h>
>  #include <nptl-stack.h>
>  
> -/* Version of the library, used in libthread_db to detect mismatches.  */
> -static const char nptl_version[] __attribute_used__ = VERSION;
> -
>  void
>  __pthread_initialize_minimal_internal (void)
>  {
>  }
>  strong_alias (__pthread_initialize_minimal_internal,
>  	      __pthread_initialize_minimal)
> -
> -
> -/* This function is internal (it has a GLIBC_PRIVATE) version, but it
> -   is widely used (either via weak symbol, or dlsym) to obtain the
> -   __static_tls_size value.  This value is then used to adjust the
> -   value of the stack size attribute, so that applications receive the
> -   full requested stack size, not diminished by the TCB and static TLS
> -   allocation on the stack.  Once the TCB is separately allocated,
> -   this function should be removed or renamed (if it is still
> -   necessary at that point).  */
> -size_t
> -__pthread_get_minstack (const pthread_attr_t *attr)
> -{
> -  return (GLRO(dl_pagesize) + __nptl_tls_static_size_for_stack ()
> -	  + PTHREAD_STACK_MIN);
> -}

Ok.

> diff --git a/nptl/nptl-stack.c b/nptl/nptl-stack.c
> index 7853c105be..1a0c460ba8 100644
> --- a/nptl/nptl-stack.c
> +++ b/nptl/nptl-stack.c
> @@ -19,6 +19,7 @@
>  
>  #include <nptl-stack.h>
>  #include <ldsodefs.h>
> +#include <pthreadP.h>
>  
>  /* Maximum size in kB of cache.  40MiBi by default.  */
>  static const size_t stack_cache_maxsize = 40 * 1024 * 1024;
> @@ -128,3 +129,19 @@ __nptl_deallocate_stack (struct pthread *pd)
>    lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
>  }
>  libc_hidden_def (__nptl_deallocate_stack)
> +
> +/* This function is internal (it has a GLIBC_PRIVATE) version, but it
> +   is widely used (either via weak symbol, or dlsym) to obtain the
> +   __static_tls_size value.  This value is then used to adjust the
> +   value of the stack size attribute, so that applications receive the
> +   full requested stack size, not diminished by the TCB and static TLS
> +   allocation on the stack.  Once the TCB is separately allocated,
> +   this function should be removed or renamed (if it is still
> +   necessary at that point).  */
> +size_t
> +__pthread_get_minstack (const pthread_attr_t *attr)
> +{
> +  return (GLRO(dl_pagesize) + __nptl_tls_static_size_for_stack ()
> +	  + PTHREAD_STACK_MIN);
> +}
> +libc_hidden_def (__pthread_get_minstack)

Ok.

> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index 3e9da9c7ea..c6b82851bf 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -340,6 +340,7 @@ extern unsigned long int __fork_generation attribute_hidden;
>  extern unsigned long int *__fork_generation_pointer attribute_hidden;
>  
>  extern size_t __pthread_get_minstack (const pthread_attr_t *attr);
> +libc_hidden_proto (__pthread_get_minstack)
>  
>  /* Namespace save aliases.  */
>  extern int __pthread_getschedparam (pthread_t thread_id, int *policy,

Ok.

> diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
> index 43f3722f57..220edda917 100644
> --- a/nptl/pthread_create.c
> +++ b/nptl/pthread_create.c
> @@ -36,6 +36,7 @@
>  #include <tls-setup.h>
>  #include "libioP.h"
>  #include <sys/single_threaded.h>
> +#include <version.h>
>  
>  #include <shlib-compat.h>
>  
> @@ -56,6 +57,9 @@ static struct rtld_global *__nptl_rtld_global __attribute_used__
>    = &_rtld_global;
>  #endif
>  
> +/* Version of the library, used in libthread_db to detect mismatches.  */
> +static const char nptl_version[] __attribute_used__ = VERSION;
> +
>  /* Code to allocate and deallocate a stack.  */
>  #include "allocatestack.c"
>  
> 

Ok.

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 12/23] nptl: Introduce __nptl_deferred_init
  2021-05-14 13:29           ` Adhemerval Zanella
@ 2021-05-14 19:16             ` Carlos O'Donell
  2021-05-14 19:27               ` Florian Weimer
  0 siblings, 1 reply; 63+ messages in thread
From: Carlos O'Donell @ 2021-05-14 19:16 UTC (permalink / raw)
  To: Adhemerval Zanella, Florian Weimer; +Cc: libc-alpha

On 5/14/21 9:29 AM, Adhemerval Zanella via Libc-alpha wrote:
> 
> 
> On 14/05/2021 09:22, Florian Weimer wrote:
>> * Adhemerval Zanella:
>>
>>> On 13/05/2021 17:51, Florian Weimer wrote:
>>>> * Adhemerval Zanella:
>>>>
>>>>> On 12/05/2021 13:58, Florian Weimer via Libc-alpha wrote:
>>>>>> This function is called once by pthread_create, before spawning
>>>>>> the first thread, and also within pthread_cancel.  Since it sets up
>>>>>> cancellation handlers, place it along with the pthread_cancel
>>>>>> implementation within libc.
>>>>>
>>>>> Why does it need to be initialized by pthread_create as well?  I think
>>>>> moving the initialization to pthread_cancel and only setting once
>>>>> when pthread_cancel is called (and not tying to __libc_single_threaded)
>>>>> is slight better since it avoids the setup of SIGCANCEL for programs
>>>>> that do not use cancellation.
>>>>
>>>> We need to unblock SIGCANCEL anyway, so that we can send the signal.
>>>> This part can't be deferred until pthread_cancel is called.
>>>
>>> Yes, what it seems to be wrong is unblocking it on both pthread_create
>>> *and* on pthread_cancel.
>>
>> We need to unblock in pthread_cancel too, to support self-cancel in a
>> single-threaded process.
> 
> We don't really need in fact, pthread_cancel can call __pthread_exit
> directly if the argument is THREAD_SELF. And with my canceltype and
> cancelstate refactor we don't even need the whole atomic bit set
> support.

And POSIX in the RATIONALE says exactly this:
~~~
The special function also means that implementations are not obliged
to implement cancellation with signals.
~~~
https://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_cancel.html


>> Do you know if we ever change the signal mask to enable/disable
>> asynchronous cancellation?  I don't think so.  Then we could support
>> self-cancel simply by calling the signal handler.  (It would not matter
>> whether the process is multi-threaded or not.)
>>
>> If we do that, I think it is simpler to do all the initialization in
>> pthread_create.
>>
>> Thanks,
>> Florian
>>
> 


-- 
Cheers,
Carlos.


^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 12/23] nptl: Introduce __nptl_deferred_init
  2021-05-14 19:16             ` Carlos O'Donell
@ 2021-05-14 19:27               ` Florian Weimer
  2021-05-15  2:02                 ` Carlos O'Donell
  0 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-14 19:27 UTC (permalink / raw)
  To: Carlos O'Donell; +Cc: Adhemerval Zanella, libc-alpha

* Carlos O'Donell:

>> We don't really need in fact, pthread_cancel can call __pthread_exit
>> directly if the argument is THREAD_SELF. And with my canceltype and
>> cancelstate refactor we don't even need the whole atomic bit set
>> support.
>
> And POSIX in the RATIONALE says exactly this:
> ~~~
> The special function also means that implementations are not obliged
> to implement cancellation with signals.
> ~~~
> https://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_cancel.html

My question was whether we use the signal mask to block cancellation,
but I don't think that's the case (except in some cases where we block
*all* signals for other reasons).

But calling pthread_exit is probably not the right thing to do because
pthread_cancel is itself not a cancellation point.

In any case, I really don't want to change the implementation as part of
this series.

Thnaks,
Florian


^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 12/23] nptl: Introduce __nptl_deferred_init
  2021-05-14 19:27               ` Florian Weimer
@ 2021-05-15  2:02                 ` Carlos O'Donell
  2021-05-18 17:29                   ` Adhemerval Zanella
  0 siblings, 1 reply; 63+ messages in thread
From: Carlos O'Donell @ 2021-05-15  2:02 UTC (permalink / raw)
  To: Florian Weimer; +Cc: Adhemerval Zanella, libc-alpha

On 5/14/21 3:27 PM, Florian Weimer wrote:
> * Carlos O'Donell:
> 
>>> We don't really need in fact, pthread_cancel can call __pthread_exit
>>> directly if the argument is THREAD_SELF. And with my canceltype and
>>> cancelstate refactor we don't even need the whole atomic bit set
>>> support.
>>
>> And POSIX in the RATIONALE says exactly this:
>> ~~~
>> The special function also means that implementations are not obliged
>> to implement cancellation with signals.
>> ~~~
>> https://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_cancel.html
> 
> My question was whether we use the signal mask to block cancellation,
> but I don't think that's the case (except in some cases where we block
> *all* signals for other reasons).
> 
> But calling pthread_exit is probably not the right thing to do because
> pthread_cancel is itself not a cancellation point.
> 
> In any case, I really don't want to change the implementation as part of
> this series.

I agree that not changing things during a refactor is an important
part of avoiding regression.

Adhemerval, Do we agree that this can be changed later?

-- 
Cheers,
Carlos.


^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 01/23] nptl: Move __nptl_initial_report_events into ld.so/startup code
  2021-05-13 17:51   ` Adhemerval Zanella
@ 2021-05-17  8:06     ` Florian Weimer
  2021-05-18 17:28       ` Adhemerval Zanella
  0 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-17  8:06 UTC (permalink / raw)
  To: Adhemerval Zanella via Libc-alpha

* Adhemerval Zanella via Libc-alpha:

>> enough to support GDB with this change.
>
> Should we start to deprecate and remove such interfaces? Your patch is
> already ignoring the possible error on td_thr_get_info.

I think we should deprecate these interfaces.  The dyninst framework may
still be using them (it's hard to tell based on the source code).

There are other libthread_db interfaces that aren't used by GDB  (they
pthread_key_t handling comes to my mind).

Thanks,
Florian


^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 13/23] nptl: Eliminate the __static_tls_size, __static_tls_align_m1 variables
  2021-05-14 12:40   ` Adhemerval Zanella
@ 2021-05-17  8:14     ` Florian Weimer
  2021-05-18 17:33       ` Adhemerval Zanella
  0 siblings, 1 reply; 63+ messages in thread
From: Florian Weimer @ 2021-05-17  8:14 UTC (permalink / raw)
  To: Adhemerval Zanella via Libc-alpha

* Adhemerval Zanella via Libc-alpha:

>> -/* Get size and alignment requirements of the static TLS block.  */
>> +/* Get size and alignment requirements of the static TLS block.  This
>> +   function is no longer used by glibc itself, but the GCC sanitizers
>> +   use it despite the GLIBC_PRIVATE status.  */
>>  void
>>  _dl_get_tls_static_info (size_t *sizep, size_t *alignp)
>>  {
>
> Ok. I am not very found of adding this as de facto ABI, maybe we
> proper export it outside GLIBC_PRIVATE since now binaries do rely
> on them (since the sanitizer API project seems to be stalled).

The API is not future-proof because I want to implement resizable static
TLS one day.  I think it's useful to document that GCC uses it.  (A
first version of this patch removed this function, but then I checked
GCC.)

>> @@ -385,7 +388,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
>>  	/* Arithmetic overflow.  */
>>  	return EINVAL;
>>        size += guardsize;
>> -      if (__builtin_expect (size < ((guardsize + __static_tls_size
>> +      if (__builtin_expect (size < ((guardsize + tls_static_size_for_stack
>>  				     + MINIMAL_REST_STACK + pagesize_m1)
>>  				    & ~pagesize_m1),
>>  			    0))
>
> Use __glibc_likely here.

I think we should eliminate all these hints from the thread creation
code.  It seems unlikely that there is a performance impact, and the
likely/unlikely hints are wrong for applications that consistently use
specific pthread_create features anyway.  But I'd prefer this to be a
separate patch.

> Do we still need the empty __pthread_initialize_minimal_internal
> function?

It is still called from the preinit code.

>> diff --git a/sysdeps/nptl/pthread_early_init.h b/sysdeps/nptl/pthread_early_init.h
>> index 2d15303dd9..5b49ce39c2 100644
>> --- a/sysdeps/nptl/pthread_early_init.h
>> +++ b/sysdeps/nptl/pthread_early_init.h
>> @@ -19,12 +19,40 @@
>>  #ifndef _PTHREAD_EARLY_INIT_H
>>  #define _PTHREAD_EARLY_INIT_H 1
>>  
>> +#include <nptl/nptl-stack.h>
>>  #include <nptl/pthreadP.h>
>>  #include <pthread_mutex_conf.h>
>> +#include <sys/resource.h>
>>  
>>  static inline void
>>  __pthread_early_init (void)
>>  {
>> +  /* Determine the default allowed stack size.  This is the size used
>> +     in case the user does not specify one.  */
>> +  struct rlimit limit;
>> +  if (__getrlimit (RLIMIT_STACK, &limit) != 0
>> +      || limit.rlim_cur == RLIM_INFINITY)
>> +    /* The system limit is not usable.  Use an architecture-specific
>> +       default.  */
>> +    limit.rlim_cur = ARCH_STACK_DEFAULT_SIZE;
>> +  else if (limit.rlim_cur < PTHREAD_STACK_MIN)
>> +    /* The system limit is unusably small.
>> +       Use the minimal size acceptable.  */
>> +    limit.rlim_cur = PTHREAD_STACK_MIN;
>
> Maybe we should move away from non-LFS inside glibc call and use 
> __getlimit64 instead here.

Yes, there's another call in nptl/pthread_getattr_np.c.

Thanks,
Florian


^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 00/23] nptl: Move almost all remaining functions into libc
  2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
                   ` (22 preceding siblings ...)
  2021-05-12 16:59 ` [PATCH 23/23] nptl: Move semi-public __pthread_get_minstack symbol " Florian Weimer
@ 2021-05-17  9:12 ` Florian Weimer
  23 siblings, 0 replies; 63+ messages in thread
From: Florian Weimer @ 2021-05-17  9:12 UTC (permalink / raw)
  To: Florian Weimer via Libc-alpha

* Florian Weimer via Libc-alpha:

> I had to fix initialization of the dormant _rtld_global_ro after static
> dlopen because I was running into issues because threading
> initialization depends on data from _rtld_global_ro, and that
> increasingly happens even without libpthread linked in.
>
> Tested on aarch64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
> x86_64-linux-gnu.  Built with build-many-glibcs-py.
>
> For pthread_create, I'm running into issues related to libthread_db
> integration (the structure definition).  But with the current series,
> debugging should still work (as verified by the GDB attach test).

I've pushed the approved parts of this series.

I'll rework the __nptl_deferred_init patch and resubmit.

Thanks,
Florian


^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 01/23] nptl: Move __nptl_initial_report_events into ld.so/startup code
  2021-05-17  8:06     ` Florian Weimer
@ 2021-05-18 17:28       ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-18 17:28 UTC (permalink / raw)
  To: Florian Weimer, Adhemerval Zanella via Libc-alpha



On 17/05/2021 05:06, Florian Weimer wrote:
> * Adhemerval Zanella via Libc-alpha:
> 
>>> enough to support GDB with this change.
>>
>> Should we start to deprecate and remove such interfaces? Your patch is
>> already ignoring the possible error on td_thr_get_info.
> 
> I think we should deprecate these interfaces.  The dyninst framework may
> still be using them (it's hard to tell based on the source code).
> 
> There are other libthread_db interfaces that aren't used by GDB  (they
> pthread_key_t handling comes to my mind).

OK, I think we can start to deprecate them on new version.  Maybe we
can even remove it, since I hardly think this interface is worth
to keep as a compatibility layer.

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 12/23] nptl: Introduce __nptl_deferred_init
  2021-05-15  2:02                 ` Carlos O'Donell
@ 2021-05-18 17:29                   ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-18 17:29 UTC (permalink / raw)
  To: Carlos O'Donell, Florian Weimer; +Cc: libc-alpha



On 14/05/2021 23:02, Carlos O'Donell wrote:
> On 5/14/21 3:27 PM, Florian Weimer wrote:
>> * Carlos O'Donell:
>>
>>>> We don't really need in fact, pthread_cancel can call __pthread_exit
>>>> directly if the argument is THREAD_SELF. And with my canceltype and
>>>> cancelstate refactor we don't even need the whole atomic bit set
>>>> support.
>>>
>>> And POSIX in the RATIONALE says exactly this:
>>> ~~~
>>> The special function also means that implementations are not obliged
>>> to implement cancellation with signals.
>>> ~~~
>>> https://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_cancel.html
>>
>> My question was whether we use the signal mask to block cancellation,
>> but I don't think that's the case (except in some cases where we block
>> *all* signals for other reasons).
>>
>> But calling pthread_exit is probably not the right thing to do because
>> pthread_cancel is itself not a cancellation point.
>>
>> In any case, I really don't want to change the implementation as part of
>> this series.
> 
> I agree that not changing things during a refactor is an important
> part of avoiding regression.
> 
> Adhemerval, Do we agree that this can be changed later?
> 

Fair enough, I have some patches I am working to try simplify the
cancellation handling (and hopefully get the long-standing BZ#12683
fix).

^ permalink raw reply	[flat|nested] 63+ messages in thread

* Re: [PATCH 13/23] nptl: Eliminate the __static_tls_size, __static_tls_align_m1 variables
  2021-05-17  8:14     ` Florian Weimer
@ 2021-05-18 17:33       ` Adhemerval Zanella
  0 siblings, 0 replies; 63+ messages in thread
From: Adhemerval Zanella @ 2021-05-18 17:33 UTC (permalink / raw)
  To: Florian Weimer, Adhemerval Zanella via Libc-alpha



On 17/05/2021 05:14, Florian Weimer wrote:
> * Adhemerval Zanella via Libc-alpha:
> 
>>> -/* Get size and alignment requirements of the static TLS block.  */
>>> +/* Get size and alignment requirements of the static TLS block.  This
>>> +   function is no longer used by glibc itself, but the GCC sanitizers
>>> +   use it despite the GLIBC_PRIVATE status.  */
>>>  void
>>>  _dl_get_tls_static_info (size_t *sizep, size_t *alignp)
>>>  {
>>
>> Ok. I am not very found of adding this as de facto ABI, maybe we
>> proper export it outside GLIBC_PRIVATE since now binaries do rely
>> on them (since the sanitizer API project seems to be stalled).
> 
> The API is not future-proof because I want to implement resizable static
> TLS one day.  I think it's useful to document that GCC uses it.  (A
> first version of this patch removed this function, but then I checked
> GCC.)

Maybe we can fix it on gcc/sanitizer so we might not be bounded to add
backward compatibility symbols for GLIBC_PRIVATE.

> 
>>> @@ -385,7 +388,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
>>>  	/* Arithmetic overflow.  */
>>>  	return EINVAL;
>>>        size += guardsize;
>>> -      if (__builtin_expect (size < ((guardsize + __static_tls_size
>>> +      if (__builtin_expect (size < ((guardsize + tls_static_size_for_stack
>>>  				     + MINIMAL_REST_STACK + pagesize_m1)
>>>  				    & ~pagesize_m1),
>>>  			    0))
>>
>> Use __glibc_likely here.
> 
> I think we should eliminate all these hints from the thread creation
> code.  It seems unlikely that there is a performance impact, and the
> likely/unlikely hints are wrong for applications that consistently use
> specific pthread_create features anyway.  But I'd prefer this to be a
> separate patch.

Fair enough.  In fact, I think glibc overuse the branch hints in a
lot of places and I have the hint most of them does not improve much.


> 
>> Do we still need the empty __pthread_initialize_minimal_internal
>> function?
> 
> It is still called from the preinit code.

Ok.

> 
>>> diff --git a/sysdeps/nptl/pthread_early_init.h b/sysdeps/nptl/pthread_early_init.h
>>> index 2d15303dd9..5b49ce39c2 100644
>>> --- a/sysdeps/nptl/pthread_early_init.h
>>> +++ b/sysdeps/nptl/pthread_early_init.h
>>> @@ -19,12 +19,40 @@
>>>  #ifndef _PTHREAD_EARLY_INIT_H
>>>  #define _PTHREAD_EARLY_INIT_H 1
>>>  
>>> +#include <nptl/nptl-stack.h>
>>>  #include <nptl/pthreadP.h>
>>>  #include <pthread_mutex_conf.h>
>>> +#include <sys/resource.h>
>>>  
>>>  static inline void
>>>  __pthread_early_init (void)
>>>  {
>>> +  /* Determine the default allowed stack size.  This is the size used
>>> +     in case the user does not specify one.  */
>>> +  struct rlimit limit;
>>> +  if (__getrlimit (RLIMIT_STACK, &limit) != 0
>>> +      || limit.rlim_cur == RLIM_INFINITY)
>>> +    /* The system limit is not usable.  Use an architecture-specific
>>> +       default.  */
>>> +    limit.rlim_cur = ARCH_STACK_DEFAULT_SIZE;
>>> +  else if (limit.rlim_cur < PTHREAD_STACK_MIN)
>>> +    /* The system limit is unusably small.
>>> +       Use the minimal size acceptable.  */
>>> +    limit.rlim_cur = PTHREAD_STACK_MIN;
>>
>> Maybe we should move away from non-LFS inside glibc call and use 
>> __getlimit64 instead here.
> 
> Yes, there's another call in nptl/pthread_getattr_np.c.
> 
> Thanks,
> Florian
> 

^ permalink raw reply	[flat|nested] 63+ messages in thread

end of thread, other threads:[~2021-05-18 17:33 UTC | newest]

Thread overview: 63+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-12 16:57 [PATCH 00/23] nptl: Move almost all remaining functions into libc Florian Weimer
2021-05-12 16:57 ` [PATCH 01/23] nptl: Move __nptl_initial_report_events into ld.so/startup code Florian Weimer
2021-05-13 17:51   ` Adhemerval Zanella
2021-05-17  8:06     ` Florian Weimer
2021-05-18 17:28       ` Adhemerval Zanella
2021-05-12 16:57 ` [PATCH 02/23] nptl: Move __nptl_create_event, __nptl_death_event into libc Florian Weimer
2021-05-13 18:04   ` Adhemerval Zanella
2021-05-12 16:57 ` [PATCH 03/23] elf: Partially initialize ld.so after static dlopen (bug 20802) Florian Weimer
2021-05-13 19:35   ` Adhemerval Zanella
2021-05-13 20:09     ` Florian Weimer
2021-05-13 20:11       ` Adhemerval Zanella
2021-05-13 20:44         ` Florian Weimer
2021-05-12 16:57 ` [PATCH 04/23] aarch64: Remove _dl_var_init Florian Weimer
2021-05-13 19:36   ` Adhemerval Zanella
2021-05-12 16:57 ` [PATCH 05/23] arc: " Florian Weimer
2021-05-13 19:36   ` Adhemerval Zanella
2021-05-12 16:57 ` [PATCH 06/23] ia64: " Florian Weimer
2021-05-13 19:37   ` Adhemerval Zanella
2021-05-12 16:57 ` [PATCH 07/23] m68k: " Florian Weimer
2021-05-13 19:37   ` Adhemerval Zanella
2021-05-12 16:57 ` [PATCH 08/23] mips: " Florian Weimer
2021-05-13 19:37   ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 09/23] powerpc: " Florian Weimer
2021-05-13 19:38   ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 10/23] elf: Remove DL_STATIC_INIT Florian Weimer
2021-05-13 19:38   ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 11/23] elf: Move static TLS size and alignment into _rtld_global_ro Florian Weimer
2021-05-13 19:45   ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 12/23] nptl: Introduce __nptl_deferred_init Florian Weimer
2021-05-13 20:20   ` Adhemerval Zanella
2021-05-13 20:51     ` Florian Weimer
2021-05-14 11:57       ` Adhemerval Zanella
2021-05-14 12:22         ` Florian Weimer
2021-05-14 13:29           ` Adhemerval Zanella
2021-05-14 19:16             ` Carlos O'Donell
2021-05-14 19:27               ` Florian Weimer
2021-05-15  2:02                 ` Carlos O'Donell
2021-05-18 17:29                   ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 13/23] nptl: Eliminate the __static_tls_size, __static_tls_align_m1 variables Florian Weimer
2021-05-14 12:40   ` Adhemerval Zanella
2021-05-17  8:14     ` Florian Weimer
2021-05-18 17:33       ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 14/23] nptl: Move pthread_getattr_default_np into libc Florian Weimer
2021-05-14 14:00   ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 15/23] nptl: Remove unused nptl/pthread_getcpuclockid.c implementation Florian Weimer
2021-05-13 20:22   ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 16/23] Linux: Move implementation of pthread_getcpuclockid to nptl directory Florian Weimer
2021-05-13 20:23   ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 17/23] nptl: Move pthread_getcpuclockid into libc Florian Weimer
2021-05-14 14:05   ` Adhemerval Zanella
2021-05-12 16:58 ` [PATCH 18/23] nptl: Move pthread_getname_np " Florian Weimer
2021-05-14 14:44   ` Adhemerval Zanella
2021-05-12 16:59 ` [PATCH 19/23] nptl: Move pthread_setaffinity_np " Florian Weimer
2021-05-14 14:45   ` Adhemerval Zanella
2021-05-12 16:59 ` [PATCH 20/23] nptl: Move pthread_setname_np " Florian Weimer
2021-05-14 14:46   ` Adhemerval Zanella
2021-05-12 16:59 ` [PATCH 21/23] nptl: Move pthread_setschedprio " Florian Weimer
2021-05-14 14:47   ` Adhemerval Zanella
2021-05-12 16:59 ` [PATCH 22/23] nptl: Move pthread_sigqueue " Florian Weimer
2021-05-14 14:48   ` Adhemerval Zanella
2021-05-12 16:59 ` [PATCH 23/23] nptl: Move semi-public __pthread_get_minstack symbol " Florian Weimer
2021-05-14 14:50   ` Adhemerval Zanella
2021-05-17  9:12 ` [PATCH 00/23] nptl: Move almost all remaining functions " Florian Weimer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).