public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc] nptl: Move pthread_spin_init, Move pthread_spin_unlock  into libc
@ 2021-04-23 16:08 Florian Weimer
  0 siblings, 0 replies; only message in thread
From: Florian Weimer @ 2021-04-23 16:08 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ce4b3b7befc1010a4be0294d28984d0af47b7bc2

commit ce4b3b7befc1010a4be0294d28984d0af47b7bc2
Author: Florian Weimer <fweimer@redhat.com>
Date:   Thu Apr 22 15:18:12 2021 +0200

    nptl: Move pthread_spin_init, Move pthread_spin_unlock  into libc
    
    For some architectures, the two functions are aliased, so these
    symbols need to be moved at the same time.
    
    The symbols were moved using scripts/move-symbol-to-libc.py.

Diff:
---
 nptl/Makefile                                       |  4 ++--
 nptl/Versions                                       |  6 ++++--
 nptl/pthread_spin_init.c                            |  8 +++++++-
 nptl/pthread_spin_unlock.c                          | 10 +++++++++-
 sysdeps/hppa/nptl/pthread_spin_init.c               | 10 +++++++++-
 sysdeps/hppa/nptl/pthread_spin_unlock.c             | 10 +++++++++-
 sysdeps/i386/nptl/pthread_spin_unlock.S             | 16 +++++++++++-----
 sysdeps/ia64/nptl/pthread_spin_unlock.c             | 11 +++++++++--
 sysdeps/powerpc/nptl/pthread_spin_unlock.c          | 10 +++++++++-
 sysdeps/sh/nptl/pthread_spin_unlock.S               | 21 ++++++++++++++-------
 sysdeps/sparc/sparc64/pthread_spin_unlock.S         | 14 +++++++++++---
 sysdeps/unix/sysv/linux/aarch64/libc.abilist        |  4 ++++
 sysdeps/unix/sysv/linux/aarch64/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/alpha/libc.abilist          |  4 ++++
 sysdeps/unix/sysv/linux/alpha/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/arc/libc.abilist            |  4 ++++
 sysdeps/unix/sysv/linux/arc/libpthread.abilist      |  2 --
 sysdeps/unix/sysv/linux/arm/be/libc.abilist         |  4 ++++
 sysdeps/unix/sysv/linux/arm/be/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/arm/le/libc.abilist         |  4 ++++
 sysdeps/unix/sysv/linux/arm/le/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/csky/libc.abilist           |  4 ++++
 sysdeps/unix/sysv/linux/csky/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/hppa/libc.abilist           |  4 ++++
 sysdeps/unix/sysv/linux/hppa/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/i386/libc.abilist           |  4 ++++
 sysdeps/unix/sysv/linux/i386/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/ia64/libc.abilist           |  4 ++++
 sysdeps/unix/sysv/linux/ia64/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist  |  4 ++++
 .../sysv/linux/m68k/coldfire/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist    |  4 ++++
 .../unix/sysv/linux/m68k/m680x0/libpthread.abilist  |  2 --
 sysdeps/unix/sysv/linux/microblaze/be/libc.abilist  |  4 ++++
 .../sysv/linux/microblaze/be/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/microblaze/le/libc.abilist  |  4 ++++
 .../sysv/linux/microblaze/le/libpthread.abilist     |  2 --
 .../unix/sysv/linux/mips/mips32/fpu/libc.abilist    |  4 ++++
 .../unix/sysv/linux/mips/mips32/libpthread.abilist  |  2 --
 .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist  |  4 ++++
 .../unix/sysv/linux/mips/mips64/libpthread.abilist  |  2 --
 .../unix/sysv/linux/mips/mips64/n32/libc.abilist    |  4 ++++
 .../unix/sysv/linux/mips/mips64/n64/libc.abilist    |  4 ++++
 sysdeps/unix/sysv/linux/nios2/libc.abilist          |  4 ++++
 sysdeps/unix/sysv/linux/nios2/libpthread.abilist    |  2 --
 .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist   |  4 ++++
 .../sysv/linux/powerpc/powerpc32/libpthread.abilist |  2 --
 .../sysv/linux/powerpc/powerpc32/nofpu/libc.abilist |  4 ++++
 .../sysv/linux/powerpc/powerpc64/be/libc.abilist    |  4 ++++
 .../linux/powerpc/powerpc64/be/libpthread.abilist   |  2 --
 .../sysv/linux/powerpc/powerpc64/le/libc.abilist    |  4 ++++
 .../linux/powerpc/powerpc64/le/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist     |  4 ++++
 .../unix/sysv/linux/riscv/rv32/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist     |  4 ++++
 .../unix/sysv/linux/riscv/rv64/libpthread.abilist   |  2 --
 sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist   |  4 ++++
 .../unix/sysv/linux/s390/s390-32/libpthread.abilist |  2 --
 sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist   |  4 ++++
 .../unix/sysv/linux/s390/s390-64/libpthread.abilist |  2 --
 sysdeps/unix/sysv/linux/sh/be/libc.abilist          |  4 ++++
 sysdeps/unix/sysv/linux/sh/be/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/sh/le/libc.abilist          |  4 ++++
 sysdeps/unix/sysv/linux/sh/le/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist  |  4 ++++
 .../sysv/linux/sparc/sparc32/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist  |  4 ++++
 .../sysv/linux/sparc/sparc64/libpthread.abilist     |  2 --
 sysdeps/unix/sysv/linux/x86_64/64/libc.abilist      |  4 ++++
 .../unix/sysv/linux/x86_64/64/libpthread.abilist    |  2 --
 sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist     |  4 ++++
 .../unix/sysv/linux/x86_64/x32/libpthread.abilist   |  2 --
 sysdeps/x86_64/nptl/pthread_spin_unlock.S           | 16 +++++++++++-----
 73 files changed, 233 insertions(+), 89 deletions(-)

diff --git a/nptl/Makefile b/nptl/Makefile
index 7b36d85f6b..dd7fa95c2b 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -130,6 +130,8 @@ routines = \
   pthread_setspecific \
   pthread_sigmask \
   pthread_spin_destroy \
+  pthread_spin_init \
+  pthread_spin_unlock \
   tpp \
   unwind \
 
@@ -195,10 +197,8 @@ libpthread-routines = \
   pthread_setname \
   pthread_setschedprio \
   pthread_sigqueue \
-  pthread_spin_init \
   pthread_spin_lock \
   pthread_spin_trylock \
-  pthread_spin_unlock \
   pthread_testcancel \
   pthread_timedjoin \
   pthread_tryjoin \
diff --git a/nptl/Versions b/nptl/Versions
index 22fd51ef12..8ec1d4bbd2 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -80,6 +80,8 @@ libc {
     pthread_mutexattr_getpshared;
     pthread_mutexattr_setpshared;
     pthread_spin_destroy;
+    pthread_spin_init;
+    pthread_spin_unlock;
   }
   GLIBC_2.2.3 {
     pthread_getattr_np;
@@ -181,6 +183,8 @@ libc {
     pthread_rwlock_wrlock;
     pthread_setspecific;
     pthread_spin_destroy;
+    pthread_spin_init;
+    pthread_spin_unlock;
   }
   GLIBC_PRIVATE {
     __futex_abstimed_wait64;
@@ -312,10 +316,8 @@ libpthread {
     pthread_getcpuclockid;
     pthread_rwlock_timedrdlock;
     pthread_rwlock_timedwrlock;
-    pthread_spin_init;
     pthread_spin_lock;
     pthread_spin_trylock;
-    pthread_spin_unlock;
     pthread_yield;
     sem_timedwait;
   }
diff --git a/nptl/pthread_spin_init.c b/nptl/pthread_spin_init.c
index 470a6fab63..c6a51477bf 100644
--- a/nptl/pthread_spin_init.c
+++ b/nptl/pthread_spin_init.c
@@ -18,11 +18,17 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include "pthreadP.h"
+#include <shlib-compat.h>
 
 int
-pthread_spin_init (pthread_spinlock_t *lock, int pshared)
+__pthread_spin_init (pthread_spinlock_t *lock, int pshared)
 {
   /* Relaxed MO is fine because this is an initializing store.  */
   atomic_store_relaxed (lock, 0);
   return 0;
 }
+versioned_symbol (libc, __pthread_spin_init, pthread_spin_init, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_init, pthread_spin_init, GLIBC_2_2);
+#endif
diff --git a/nptl/pthread_spin_unlock.c b/nptl/pthread_spin_unlock.c
index 9de75cbdcb..15921f726a 100644
--- a/nptl/pthread_spin_unlock.c
+++ b/nptl/pthread_spin_unlock.c
@@ -19,9 +19,10 @@
 
 #include "pthreadP.h"
 #include <atomic.h>
+#include <shlib-compat.h>
 
 int
-pthread_spin_unlock (pthread_spinlock_t *lock)
+__pthread_spin_unlock (pthread_spinlock_t *lock)
 {
   /* The atomic_store_release synchronizes-with the atomic_exchange_acquire
      or atomic_compare_exchange_weak_acquire in pthread_spin_lock /
@@ -29,3 +30,10 @@ pthread_spin_unlock (pthread_spinlock_t *lock)
   atomic_store_release (lock, 0);
   return 0;
 }
+versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_unlock,
+                  GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_unlock, pthread_spin_unlock,
+               GLIBC_2_2);
+#endif
diff --git a/sysdeps/hppa/nptl/pthread_spin_init.c b/sysdeps/hppa/nptl/pthread_spin_init.c
index 6d63af586a..af7655519d 100644
--- a/sysdeps/hppa/nptl/pthread_spin_init.c
+++ b/sysdeps/hppa/nptl/pthread_spin_init.c
@@ -16,9 +16,10 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include "pthreadP.h"
+#include <shlib-compat.h>
 
 int
-pthread_spin_init (pthread_spinlock_t *lock, int pshared)
+__pthread_spin_init (pthread_spinlock_t *lock, int pshared)
 {
   /* CONCURRENCTY NOTES:
 
@@ -42,3 +43,10 @@ pthread_spin_init (pthread_spinlock_t *lock, int pshared)
   atomic_exchange_rel (lock, 0);
   return 0;
 }
+versioned_symbol (libc, __pthread_spin_init, pthread_spin_init,
+                  GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_init, pthread_spin_init,
+               GLIBC_2_2);
+#endif
diff --git a/sysdeps/hppa/nptl/pthread_spin_unlock.c b/sysdeps/hppa/nptl/pthread_spin_unlock.c
index 2a6ffe43dc..a087501337 100644
--- a/sysdeps/hppa/nptl/pthread_spin_unlock.c
+++ b/sysdeps/hppa/nptl/pthread_spin_unlock.c
@@ -16,9 +16,10 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include "pthreadP.h"
+#include <shlib-compat.h>
 
 int
-pthread_spin_unlock (pthread_spinlock_t *lock)
+__pthread_spin_unlock (pthread_spinlock_t *lock)
 {
   /* CONCURRENCTY NOTES:
 
@@ -42,3 +43,10 @@ pthread_spin_unlock (pthread_spinlock_t *lock)
   atomic_exchange_rel (lock, 0);
   return 0;
 }
+versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_unlock,
+                  GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_unlock, pthread_spin_unlock,
+               GLIBC_2_2);
+#endif
diff --git a/sysdeps/i386/nptl/pthread_spin_unlock.S b/sysdeps/i386/nptl/pthread_spin_unlock.S
index e572dd8cc1..bbce327f04 100644
--- a/sysdeps/i386/nptl/pthread_spin_unlock.S
+++ b/sysdeps/i386/nptl/pthread_spin_unlock.S
@@ -17,14 +17,20 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <shlib-compat.h>
 
-ENTRY (pthread_spin_unlock)
+ENTRY (__pthread_spin_unlock)
 	movl	4(%esp), %eax
 	movl	$1, (%eax)
 	xorl	%eax, %eax
 	ret
-END (pthread_spin_unlock)
+END (__pthread_spin_unlock)
+versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_unlock, GLIBC_2_34)
+/* The implementation of pthread_spin_init is identical.  */
+versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_init, GLIBC_2_34)
 
-	/* The implementation of pthread_spin_init is identical.  */
-	.globl	pthread_spin_init
-pthread_spin_init = pthread_spin_unlock
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_unlock, pthread_spin_unlock,
+	       GLIBC_2_2)
+compat_symbol (libpthread, __pthread_spin_unlock, pthread_spin_init, GLIBC_2_2)
+#endif
diff --git a/sysdeps/ia64/nptl/pthread_spin_unlock.c b/sysdeps/ia64/nptl/pthread_spin_unlock.c
index d869ef23a6..a4509c9d01 100644
--- a/sysdeps/ia64/nptl/pthread_spin_unlock.c
+++ b/sysdeps/ia64/nptl/pthread_spin_unlock.c
@@ -17,11 +17,18 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include "pthreadP.h"
-
+#include <shlib-compat.h>
 
 int
-pthread_spin_unlock (pthread_spinlock_t *lock)
+__pthread_spin_unlock (pthread_spinlock_t *lock)
 {
   __sync_lock_release ((int *) lock);
   return 0;
 }
+versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_unlock,
+                  GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_unlock, pthread_spin_unlock,
+               GLIBC_2_2);
+#endif
diff --git a/sysdeps/powerpc/nptl/pthread_spin_unlock.c b/sysdeps/powerpc/nptl/pthread_spin_unlock.c
index fcea37baf1..86bbe4d037 100644
--- a/sysdeps/powerpc/nptl/pthread_spin_unlock.c
+++ b/sysdeps/powerpc/nptl/pthread_spin_unlock.c
@@ -18,10 +18,18 @@
 
 #include "pthreadP.h"
 #include <lowlevellock.h>
+#include <shlib-compat.h>
 
 int
-pthread_spin_unlock (pthread_spinlock_t *lock)
+__pthread_spin_unlock (pthread_spinlock_t *lock)
 {
   atomic_store_release (lock, 0);
   return 0;
 }
+versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_unlock,
+                  GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_unlock, pthread_spin_unlock,
+               GLIBC_2_2);
+#endif
diff --git a/sysdeps/sh/nptl/pthread_spin_unlock.S b/sysdeps/sh/nptl/pthread_spin_unlock.S
index 08ed2ca251..c67f5040bc 100644
--- a/sysdeps/sh/nptl/pthread_spin_unlock.S
+++ b/sysdeps/sh/nptl/pthread_spin_unlock.S
@@ -15,15 +15,22 @@
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
-	.globl	pthread_spin_unlock
-	.type	pthread_spin_unlock,@function
+#include <shlib-compat.h>
+
+	.globl	__pthread_spin_unlock
+	.type	__pthread_spin_unlock,@function
 	.align	5
-pthread_spin_unlock:
+__pthread_spin_unlock:
 	mov	#0,r0
 	rts
 	 mov.l	r0,@r4
-	.size	pthread_spin_unlock,.-pthread_spin_unlock
+	.size	__pthread_spin_unlock,.-__pthread_spin_unlock
+versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_unlock, GLIBC_2_34)
+/* The implementation of pthread_spin_init is identical.  */
+versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_init, GLIBC_2_34)
 
-	/* The implementation of pthread_spin_init is identical.  */
-	.globl	pthread_spin_init
-pthread_spin_init = pthread_spin_unlock
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_unlock, pthread_spin_unlock,
+	       GLIBC_2_2)
+compat_symbol (libpthread, __pthread_spin_unlock, pthread_spin_init, GLIBC_2_2)
+#endif
diff --git a/sysdeps/sparc/sparc64/pthread_spin_unlock.S b/sysdeps/sparc/sparc64/pthread_spin_unlock.S
index 2133710124..71dac5433e 100644
--- a/sysdeps/sparc/sparc64/pthread_spin_unlock.S
+++ b/sysdeps/sparc/sparc64/pthread_spin_unlock.S
@@ -16,13 +16,21 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <shlib-compat.h>
 
 	.text
-ENTRY(pthread_spin_unlock)
+ENTRY(__pthread_spin_unlock)
 	membar		#StoreStore | #LoadStore
 	stb		%g0, [%o0]
 	retl
 	 clr		%o0
-END(pthread_spin_unlock)
+END(__pthread_spin_unlock)
+versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_unlock, GLIBC_2_34)
+/* The implementation of pthread_spin_init is identical.  */
+versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_init, GLIBC_2_34)
 
-strong_alias (pthread_spin_unlock, pthread_spin_init)
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_unlock, pthread_spin_unlock,
+	       GLIBC_2_2)
+compat_symbol (libpthread, __pthread_spin_unlock, pthread_spin_init, GLIBC_2_2)
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index f7b1547286..c23942fe12 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1510,6 +1510,8 @@ GLIBC_2.17 pthread_setschedparam F
 GLIBC_2.17 pthread_setspecific F
 GLIBC_2.17 pthread_sigmask F
 GLIBC_2.17 pthread_spin_destroy F
+GLIBC_2.17 pthread_spin_init F
+GLIBC_2.17 pthread_spin_unlock F
 GLIBC_2.17 ptrace F
 GLIBC_2.17 ptsname F
 GLIBC_2.17 ptsname_r F
@@ -2279,3 +2281,5 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 1404222bfb..bdda4d844d 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -55,10 +55,8 @@ GLIBC_2.17 pthread_setconcurrency F
 GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_sigqueue F
-GLIBC_2.17 pthread_spin_init F
 GLIBC_2.17 pthread_spin_lock F
 GLIBC_2.17 pthread_spin_trylock F
-GLIBC_2.17 pthread_spin_unlock F
 GLIBC_2.17 pthread_testcancel F
 GLIBC_2.17 pthread_timedjoin_np F
 GLIBC_2.17 pthread_tryjoin_np F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index a3e92ccb93..f2a1d60fae 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1984,6 +1984,8 @@ GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 putwc F
 GLIBC_2.2 putwc_unlocked F
 GLIBC_2.2 putwchar F
@@ -2360,6 +2362,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 464ab9d17f..53fb61f472 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -67,10 +67,8 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_rwlock_timedrdlock F
 GLIBC_2.2 pthread_rwlock_timedwrlock F
-GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait 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 72ff35a78c..883cd6a368 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1438,6 +1438,8 @@ GLIBC_2.32 pthread_setschedparam F
 GLIBC_2.32 pthread_setspecific F
 GLIBC_2.32 pthread_sigmask F
 GLIBC_2.32 pthread_spin_destroy F
+GLIBC_2.32 pthread_spin_init F
+GLIBC_2.32 pthread_spin_unlock F
 GLIBC_2.32 ptrace F
 GLIBC_2.32 ptsname F
 GLIBC_2.32 ptsname_r F
@@ -2038,3 +2040,5 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 76ffbf3f89..ce7d50bf0b 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -73,10 +73,8 @@ GLIBC_2.32 pthread_setconcurrency F
 GLIBC_2.32 pthread_setname_np F
 GLIBC_2.32 pthread_setschedprio F
 GLIBC_2.32 pthread_sigqueue F
-GLIBC_2.32 pthread_spin_init F
 GLIBC_2.32 pthread_spin_lock F
 GLIBC_2.32 pthread_spin_trylock F
-GLIBC_2.32 pthread_spin_unlock F
 GLIBC_2.32 pthread_testcancel F
 GLIBC_2.32 pthread_timedjoin_np F
 GLIBC_2.32 pthread_tryjoin_np F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index abc1d83b7b..e71ba4d7a2 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -207,6 +207,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
@@ -1650,6 +1652,8 @@ GLIBC_2.4 pthread_setschedparam F
 GLIBC_2.4 pthread_setspecific F
 GLIBC_2.4 pthread_sigmask F
 GLIBC_2.4 pthread_spin_destroy F
+GLIBC_2.4 pthread_spin_init F
+GLIBC_2.4 pthread_spin_unlock F
 GLIBC_2.4 ptrace F
 GLIBC_2.4 ptsname F
 GLIBC_2.4 ptsname_r F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 54f69c12a2..9442a09596 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -83,10 +83,8 @@ GLIBC_2.4 pthread_rwlockattr_setpshared F
 GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedprio F
-GLIBC_2.4 pthread_spin_init F
 GLIBC_2.4 pthread_spin_lock F
 GLIBC_2.4 pthread_spin_trylock F
-GLIBC_2.4 pthread_spin_unlock F
 GLIBC_2.4 pthread_testcancel F
 GLIBC_2.4 pthread_timedjoin_np F
 GLIBC_2.4 pthread_tryjoin_np F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index e4774ac2d3..7d9c6db3bf 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -204,6 +204,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
@@ -1647,6 +1649,8 @@ GLIBC_2.4 pthread_setschedparam F
 GLIBC_2.4 pthread_setspecific F
 GLIBC_2.4 pthread_sigmask F
 GLIBC_2.4 pthread_spin_destroy F
+GLIBC_2.4 pthread_spin_init F
+GLIBC_2.4 pthread_spin_unlock F
 GLIBC_2.4 ptrace F
 GLIBC_2.4 ptsname F
 GLIBC_2.4 ptsname_r F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 54f69c12a2..9442a09596 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -83,10 +83,8 @@ GLIBC_2.4 pthread_rwlockattr_setpshared F
 GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedprio F
-GLIBC_2.4 pthread_spin_init F
 GLIBC_2.4 pthread_spin_lock F
 GLIBC_2.4 pthread_spin_trylock F
-GLIBC_2.4 pthread_spin_unlock F
 GLIBC_2.4 pthread_testcancel F
 GLIBC_2.4 pthread_timedjoin_np F
 GLIBC_2.4 pthread_tryjoin_np F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index afef4f3d3d..f72ab8edcb 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1497,6 +1497,8 @@ GLIBC_2.29 pthread_setschedparam F
 GLIBC_2.29 pthread_setspecific F
 GLIBC_2.29 pthread_sigmask F
 GLIBC_2.29 pthread_spin_destroy F
+GLIBC_2.29 pthread_spin_init F
+GLIBC_2.29 pthread_spin_unlock F
 GLIBC_2.29 ptrace F
 GLIBC_2.29 ptsname F
 GLIBC_2.29 ptsname_r F
@@ -2222,3 +2224,5 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index ae339270d9..f892592c14 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -70,10 +70,8 @@ GLIBC_2.29 pthread_setconcurrency F
 GLIBC_2.29 pthread_setname_np F
 GLIBC_2.29 pthread_setschedprio F
 GLIBC_2.29 pthread_sigqueue F
-GLIBC_2.29 pthread_spin_init F
 GLIBC_2.29 pthread_spin_lock F
 GLIBC_2.29 pthread_spin_trylock F
-GLIBC_2.29 pthread_spin_unlock F
 GLIBC_2.29 pthread_testcancel F
 GLIBC_2.29 pthread_timedjoin_np F
 GLIBC_2.29 pthread_tryjoin_np F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index baec23b67d..4ba461a01d 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1321,6 +1321,8 @@ GLIBC_2.2 pthread_setschedparam F
 GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_sigmask F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
 GLIBC_2.2 ptsname_r F
@@ -2173,6 +2175,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 9125d8f5b1..01c743d61b 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -49,10 +49,8 @@ GLIBC_2.2 pthread_rwlockattr_init F
 GLIBC_2.2 pthread_rwlockattr_setkind_np F
 GLIBC_2.2 pthread_rwlockattr_setpshared F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_close F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 570b6456c5..3ce713173a 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1993,6 +1993,8 @@ GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 putwc F
 GLIBC_2.2 putwc_unlocked F
 GLIBC_2.2 putwchar F
@@ -2350,6 +2352,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index c80f14001a..c10cfed30b 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -67,10 +67,8 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_rwlock_timedrdlock F
 GLIBC_2.2 pthread_rwlock_timedwrlock F
-GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait 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 8157dd0102..dbebfaeb2e 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1342,6 +1342,8 @@ GLIBC_2.2 pthread_setschedparam F
 GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_sigmask F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
 GLIBC_2.2 ptsname_r F
@@ -2207,6 +2209,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 037ae18ecf..89ef8df42b 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -49,10 +49,8 @@ GLIBC_2.2 pthread_rwlockattr_init F
 GLIBC_2.2 pthread_rwlockattr_setkind_np F
 GLIBC_2.2 pthread_rwlockattr_setpshared F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_close F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index e4e35324f5..9e132006ef 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -208,6 +208,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0x98
 GLIBC_2.4 _IO_2_1_stdin_ D 0x98
@@ -1630,6 +1632,8 @@ GLIBC_2.4 pthread_setschedparam F
 GLIBC_2.4 pthread_setspecific F
 GLIBC_2.4 pthread_sigmask F
 GLIBC_2.4 pthread_spin_destroy F
+GLIBC_2.4 pthread_spin_init F
+GLIBC_2.4 pthread_spin_unlock F
 GLIBC_2.4 ptrace F
 GLIBC_2.4 ptsname F
 GLIBC_2.4 ptsname_r F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 54f69c12a2..9442a09596 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -83,10 +83,8 @@ GLIBC_2.4 pthread_rwlockattr_setpshared F
 GLIBC_2.4 pthread_setaffinity_np F
 GLIBC_2.4 pthread_setconcurrency F
 GLIBC_2.4 pthread_setschedprio F
-GLIBC_2.4 pthread_spin_init F
 GLIBC_2.4 pthread_spin_lock F
 GLIBC_2.4 pthread_spin_trylock F
-GLIBC_2.4 pthread_spin_unlock F
 GLIBC_2.4 pthread_testcancel F
 GLIBC_2.4 pthread_timedjoin_np F
 GLIBC_2.4 pthread_tryjoin_np F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 9b4dd16931..25369b5df5 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1949,6 +1949,8 @@ GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 putwc F
 GLIBC_2.2 putwc_unlocked F
 GLIBC_2.2 putwchar F
@@ -2293,6 +2295,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index c80f14001a..c10cfed30b 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -67,10 +67,8 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_rwlock_timedrdlock F
 GLIBC_2.2 pthread_rwlock_timedwrlock F
-GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait 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 1c4fff941b..19ca6acd5d 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1512,6 +1512,8 @@ GLIBC_2.18 pthread_setschedparam F
 GLIBC_2.18 pthread_setspecific F
 GLIBC_2.18 pthread_sigmask F
 GLIBC_2.18 pthread_spin_destroy F
+GLIBC_2.18 pthread_spin_init F
+GLIBC_2.18 pthread_spin_unlock F
 GLIBC_2.18 ptrace F
 GLIBC_2.18 ptsname F
 GLIBC_2.18 ptsname_r F
@@ -2273,3 +2275,5 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index f3e7eee93e..e6c2711c7e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -57,10 +57,8 @@ GLIBC_2.18 pthread_setconcurrency F
 GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_sigqueue F
-GLIBC_2.18 pthread_spin_init F
 GLIBC_2.18 pthread_spin_lock F
 GLIBC_2.18 pthread_spin_trylock F
-GLIBC_2.18 pthread_spin_unlock F
 GLIBC_2.18 pthread_testcancel F
 GLIBC_2.18 pthread_timedjoin_np F
 GLIBC_2.18 pthread_tryjoin_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index bd1a47b91a..eb89001725 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1512,6 +1512,8 @@ GLIBC_2.18 pthread_setschedparam F
 GLIBC_2.18 pthread_setspecific F
 GLIBC_2.18 pthread_sigmask F
 GLIBC_2.18 pthread_spin_destroy F
+GLIBC_2.18 pthread_spin_init F
+GLIBC_2.18 pthread_spin_unlock F
 GLIBC_2.18 ptrace F
 GLIBC_2.18 ptsname F
 GLIBC_2.18 ptsname_r F
@@ -2270,3 +2272,5 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index f3e7eee93e..e6c2711c7e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -57,10 +57,8 @@ GLIBC_2.18 pthread_setconcurrency F
 GLIBC_2.18 pthread_setname_np F
 GLIBC_2.18 pthread_setschedprio F
 GLIBC_2.18 pthread_sigqueue F
-GLIBC_2.18 pthread_spin_init F
 GLIBC_2.18 pthread_spin_lock F
 GLIBC_2.18 pthread_spin_trylock F
-GLIBC_2.18 pthread_spin_unlock F
 GLIBC_2.18 pthread_testcancel F
 GLIBC_2.18 pthread_timedjoin_np F
 GLIBC_2.18 pthread_tryjoin_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 0c5f35933b..c1bc72ffe2 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1845,6 +1845,8 @@ GLIBC_2.2 pthread_rwlock_rdlock F
 GLIBC_2.2 pthread_rwlock_unlock F
 GLIBC_2.2 pthread_rwlock_wrlock F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptsname F
 GLIBC_2.2 ptsname_r F
 GLIBC_2.2 putgrent F
@@ -2256,6 +2258,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index a307856da6..0e19334657 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -57,10 +57,8 @@ GLIBC_2.2 pthread_rwlockattr_init F
 GLIBC_2.2 pthread_rwlockattr_setkind_np F
 GLIBC_2.2 pthread_rwlockattr_setpshared F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 6f2bee5e4a..9a54b4850d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1843,6 +1843,8 @@ GLIBC_2.2 pthread_rwlock_rdlock F
 GLIBC_2.2 pthread_rwlock_unlock F
 GLIBC_2.2 pthread_rwlock_wrlock F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptsname F
 GLIBC_2.2 ptsname_r F
 GLIBC_2.2 putgrent F
@@ -2254,6 +2256,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index a307856da6..0e19334657 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -57,10 +57,8 @@ GLIBC_2.2 pthread_rwlockattr_init F
 GLIBC_2.2 pthread_rwlockattr_setkind_np F
 GLIBC_2.2 pthread_rwlockattr_setpshared F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_close F
 GLIBC_2.2 sem_destroy F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 63ddc05643..2d56f33c8a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1843,6 +1843,8 @@ GLIBC_2.2 pthread_rwlock_rdlock F
 GLIBC_2.2 pthread_rwlock_unlock F
 GLIBC_2.2 pthread_rwlock_wrlock F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptsname F
 GLIBC_2.2 ptsname_r F
 GLIBC_2.2 putgrent F
@@ -2262,6 +2264,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index b2d3902667..dbc12f7984 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1839,6 +1839,8 @@ GLIBC_2.2 pthread_rwlock_rdlock F
 GLIBC_2.2 pthread_rwlock_unlock F
 GLIBC_2.2 pthread_rwlock_wrlock F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptsname F
 GLIBC_2.2 ptsname_r F
 GLIBC_2.2 putgrent F
@@ -2256,6 +2258,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 12820a6ea5..04d1c518e6 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1555,6 +1555,8 @@ GLIBC_2.21 pthread_setschedparam F
 GLIBC_2.21 pthread_setspecific F
 GLIBC_2.21 pthread_sigmask F
 GLIBC_2.21 pthread_spin_destroy F
+GLIBC_2.21 pthread_spin_init F
+GLIBC_2.21 pthread_spin_unlock F
 GLIBC_2.21 ptrace F
 GLIBC_2.21 ptsname F
 GLIBC_2.21 ptsname_r F
@@ -2312,3 +2314,5 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 99da00cd2b..6b5d106264 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -57,10 +57,8 @@ GLIBC_2.21 pthread_setconcurrency F
 GLIBC_2.21 pthread_setname_np F
 GLIBC_2.21 pthread_setschedprio F
 GLIBC_2.21 pthread_sigqueue F
-GLIBC_2.21 pthread_spin_init F
 GLIBC_2.21 pthread_spin_lock F
 GLIBC_2.21 pthread_spin_trylock F
-GLIBC_2.21 pthread_spin_unlock F
 GLIBC_2.21 pthread_testcancel F
 GLIBC_2.21 pthread_timedjoin_np F
 GLIBC_2.21 pthread_tryjoin_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 90e1492766..34b30b3e51 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1954,6 +1954,8 @@ GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 putwc F
 GLIBC_2.2 putwc_unlocked F
 GLIBC_2.2 putwchar F
@@ -2320,6 +2322,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index fd0d143d9c..12f3c77bd7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -67,10 +67,8 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_rwlock_timedrdlock F
 GLIBC_2.2 pthread_rwlock_timedwrlock F
-GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait 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 e4f59356b8..a2c6486b07 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1958,6 +1958,8 @@ GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 putwc F
 GLIBC_2.2 putwc_unlocked F
 GLIBC_2.2 putwchar F
@@ -2353,6 +2355,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index f0fd3559df..3c0f698390 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1427,6 +1427,8 @@ GLIBC_2.3 pthread_setschedparam F
 GLIBC_2.3 pthread_setspecific F
 GLIBC_2.3 pthread_sigmask F
 GLIBC_2.3 pthread_spin_destroy F
+GLIBC_2.3 pthread_spin_init F
+GLIBC_2.3 pthread_spin_unlock F
 GLIBC_2.3 ptrace F
 GLIBC_2.3 ptsname F
 GLIBC_2.3 ptsname_r F
@@ -2174,6 +2176,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 40fe4ae7b8..fb7abc4507 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -70,10 +70,8 @@ GLIBC_2.3 pthread_rwlockattr_init F
 GLIBC_2.3 pthread_rwlockattr_setkind_np F
 GLIBC_2.3 pthread_rwlockattr_setpshared F
 GLIBC_2.3 pthread_setconcurrency F
-GLIBC_2.3 pthread_spin_init F
 GLIBC_2.3 pthread_spin_lock F
 GLIBC_2.3 pthread_spin_trylock F
-GLIBC_2.3 pthread_spin_unlock F
 GLIBC_2.3 pthread_testcancel F
 GLIBC_2.3 pthread_yield F
 GLIBC_2.3 sem_close F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 12d6fe4c68..ef0ba70cc2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1598,6 +1598,8 @@ GLIBC_2.17 pthread_setschedparam F
 GLIBC_2.17 pthread_setspecific F
 GLIBC_2.17 pthread_sigmask F
 GLIBC_2.17 pthread_spin_destroy F
+GLIBC_2.17 pthread_spin_init F
+GLIBC_2.17 pthread_spin_unlock F
 GLIBC_2.17 ptrace F
 GLIBC_2.17 ptsname F
 GLIBC_2.17 ptsname_r F
@@ -2475,3 +2477,5 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 1404222bfb..bdda4d844d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -55,10 +55,8 @@ GLIBC_2.17 pthread_setconcurrency F
 GLIBC_2.17 pthread_setname_np F
 GLIBC_2.17 pthread_setschedprio F
 GLIBC_2.17 pthread_sigqueue F
-GLIBC_2.17 pthread_spin_init F
 GLIBC_2.17 pthread_spin_lock F
 GLIBC_2.17 pthread_spin_trylock F
-GLIBC_2.17 pthread_spin_unlock F
 GLIBC_2.17 pthread_testcancel F
 GLIBC_2.17 pthread_timedjoin_np F
 GLIBC_2.17 pthread_tryjoin_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 97368e5e03..57142bf0dd 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1440,6 +1440,8 @@ GLIBC_2.33 pthread_setschedparam F
 GLIBC_2.33 pthread_setspecific F
 GLIBC_2.33 pthread_sigmask F
 GLIBC_2.33 pthread_spin_destroy F
+GLIBC_2.33 pthread_spin_init F
+GLIBC_2.33 pthread_spin_unlock F
 GLIBC_2.33 ptrace F
 GLIBC_2.33 ptsname F
 GLIBC_2.33 ptsname_r F
@@ -2040,3 +2042,5 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index 824effc34b..9cb663989f 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -73,10 +73,8 @@ GLIBC_2.33 pthread_setconcurrency F
 GLIBC_2.33 pthread_setname_np F
 GLIBC_2.33 pthread_setschedprio F
 GLIBC_2.33 pthread_sigqueue F
-GLIBC_2.33 pthread_spin_init F
 GLIBC_2.33 pthread_spin_lock F
 GLIBC_2.33 pthread_spin_trylock F
-GLIBC_2.33 pthread_spin_unlock F
 GLIBC_2.33 pthread_testcancel F
 GLIBC_2.33 pthread_timedjoin_np F
 GLIBC_2.33 pthread_tryjoin_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 24a4af7cff..57773cbfac 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1500,6 +1500,8 @@ GLIBC_2.27 pthread_setschedparam F
 GLIBC_2.27 pthread_setspecific F
 GLIBC_2.27 pthread_sigmask F
 GLIBC_2.27 pthread_spin_destroy F
+GLIBC_2.27 pthread_spin_init F
+GLIBC_2.27 pthread_spin_unlock F
 GLIBC_2.27 ptrace F
 GLIBC_2.27 ptsname F
 GLIBC_2.27 ptsname_r F
@@ -2240,3 +2242,5 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index ff6801b0c0..4b667c0a90 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -57,10 +57,8 @@ GLIBC_2.27 pthread_setconcurrency F
 GLIBC_2.27 pthread_setname_np F
 GLIBC_2.27 pthread_setschedprio F
 GLIBC_2.27 pthread_sigqueue F
-GLIBC_2.27 pthread_spin_init F
 GLIBC_2.27 pthread_spin_lock F
 GLIBC_2.27 pthread_spin_trylock F
-GLIBC_2.27 pthread_spin_unlock F
 GLIBC_2.27 pthread_testcancel F
 GLIBC_2.27 pthread_timedjoin_np F
 GLIBC_2.27 pthread_tryjoin_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 4c642bcf86..f7c88b48f6 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1952,6 +1952,8 @@ GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 putwc F
 GLIBC_2.2 putwc_unlocked F
 GLIBC_2.2 putwchar F
@@ -2318,6 +2320,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 064e0edc22..63c4ffb57e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -68,10 +68,8 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_rwlock_timedrdlock F
 GLIBC_2.2 pthread_rwlock_timedwrlock F
-GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait 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 dcdba97273..76279cd368 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1339,6 +1339,8 @@ GLIBC_2.2 pthread_setschedparam F
 GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_sigmask F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
 GLIBC_2.2 ptsname_r F
@@ -2211,6 +2213,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 599d0e6812..eabc387fdd 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -50,10 +50,8 @@ GLIBC_2.2 pthread_rwlockattr_init F
 GLIBC_2.2 pthread_rwlockattr_setkind_np F
 GLIBC_2.2 pthread_rwlockattr_setpshared F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_close F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 0b1acf6b78..03a06c6731 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1325,6 +1325,8 @@ GLIBC_2.2 pthread_setschedparam F
 GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_sigmask F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
 GLIBC_2.2 ptsname_r F
@@ -2180,6 +2182,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 9125d8f5b1..01c743d61b 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -49,10 +49,8 @@ GLIBC_2.2 pthread_rwlockattr_init F
 GLIBC_2.2 pthread_rwlockattr_setkind_np F
 GLIBC_2.2 pthread_rwlockattr_setpshared F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_close F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index b453e196b4..9786d78bf1 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1325,6 +1325,8 @@ GLIBC_2.2 pthread_setschedparam F
 GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_sigmask F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
 GLIBC_2.2 ptsname_r F
@@ -2177,6 +2179,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 9125d8f5b1..01c743d61b 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -49,10 +49,8 @@ GLIBC_2.2 pthread_rwlockattr_init F
 GLIBC_2.2 pthread_rwlockattr_setkind_np F
 GLIBC_2.2 pthread_rwlockattr_setpshared F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_close F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 1c75e8de70..aeea59222f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1948,6 +1948,8 @@ GLIBC_2.2 pthread_mutex_timedlock F
 GLIBC_2.2 pthread_mutexattr_getpshared F
 GLIBC_2.2 pthread_mutexattr_setpshared F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 putwc F
 GLIBC_2.2 putwc_unlocked F
 GLIBC_2.2 putwchar F
@@ -2309,6 +2311,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
 GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 464ab9d17f..53fb61f472 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -67,10 +67,8 @@ GLIBC_2.2 pthread_barrierattr_setpshared F
 GLIBC_2.2 pthread_getcpuclockid F
 GLIBC_2.2 pthread_rwlock_timedrdlock F
 GLIBC_2.2 pthread_rwlock_timedwrlock F
-GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait 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 f2c305882b..e2bb4c9eac 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1368,6 +1368,8 @@ GLIBC_2.2 pthread_setschedparam F
 GLIBC_2.2 pthread_setspecific F
 GLIBC_2.2 pthread_sigmask F
 GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
 GLIBC_2.2 ptsname_r F
@@ -2228,6 +2230,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 037ae18ecf..89ef8df42b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -49,10 +49,8 @@ GLIBC_2.2 pthread_rwlockattr_init F
 GLIBC_2.2 pthread_rwlockattr_setkind_np F
 GLIBC_2.2 pthread_rwlockattr_setpshared F
 GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_spin_init F
 GLIBC_2.2 pthread_spin_lock F
 GLIBC_2.2 pthread_spin_trylock F
-GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_close F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index e8fd1850d0..e8e8108b75 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1336,6 +1336,8 @@ GLIBC_2.2.5 pthread_setschedparam F
 GLIBC_2.2.5 pthread_setspecific F
 GLIBC_2.2.5 pthread_sigmask F
 GLIBC_2.2.5 pthread_spin_destroy F
+GLIBC_2.2.5 pthread_spin_init F
+GLIBC_2.2.5 pthread_spin_unlock F
 GLIBC_2.2.5 ptrace F
 GLIBC_2.2.5 ptsname F
 GLIBC_2.2.5 ptsname_r F
@@ -2189,6 +2191,8 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
 GLIBC_2.4 __fgets_unlocked_chk F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 604b06d832..d8450c27f6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -49,10 +49,8 @@ GLIBC_2.2.5 pthread_rwlockattr_init F
 GLIBC_2.2.5 pthread_rwlockattr_setkind_np F
 GLIBC_2.2.5 pthread_rwlockattr_setpshared F
 GLIBC_2.2.5 pthread_setconcurrency F
-GLIBC_2.2.5 pthread_spin_init F
 GLIBC_2.2.5 pthread_spin_lock F
 GLIBC_2.2.5 pthread_spin_trylock F
-GLIBC_2.2.5 pthread_spin_unlock F
 GLIBC_2.2.5 pthread_testcancel F
 GLIBC_2.2.5 pthread_yield F
 GLIBC_2.2.5 sem_close F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index e58863f56b..b25f343c52 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1517,6 +1517,8 @@ GLIBC_2.16 pthread_setschedparam F
 GLIBC_2.16 pthread_setspecific F
 GLIBC_2.16 pthread_sigmask F
 GLIBC_2.16 pthread_spin_destroy F
+GLIBC_2.16 pthread_spin_init F
+GLIBC_2.16 pthread_spin_unlock F
 GLIBC_2.16 ptrace F
 GLIBC_2.16 ptsname F
 GLIBC_2.16 ptsname_r F
@@ -2294,3 +2296,5 @@ GLIBC_2.34 pthread_rwlock_unlock F
 GLIBC_2.34 pthread_rwlock_wrlock F
 GLIBC_2.34 pthread_setspecific F
 GLIBC_2.34 pthread_spin_destroy F
+GLIBC_2.34 pthread_spin_init F
+GLIBC_2.34 pthread_spin_unlock F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 0eec2838ce..7387d79044 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -55,10 +55,8 @@ GLIBC_2.16 pthread_setconcurrency F
 GLIBC_2.16 pthread_setname_np F
 GLIBC_2.16 pthread_setschedprio F
 GLIBC_2.16 pthread_sigqueue F
-GLIBC_2.16 pthread_spin_init F
 GLIBC_2.16 pthread_spin_lock F
 GLIBC_2.16 pthread_spin_trylock F
-GLIBC_2.16 pthread_spin_unlock F
 GLIBC_2.16 pthread_testcancel F
 GLIBC_2.16 pthread_timedjoin_np F
 GLIBC_2.16 pthread_tryjoin_np F
diff --git a/sysdeps/x86_64/nptl/pthread_spin_unlock.S b/sysdeps/x86_64/nptl/pthread_spin_unlock.S
index ff197086ab..0dfa7f4229 100644
--- a/sysdeps/x86_64/nptl/pthread_spin_unlock.S
+++ b/sysdeps/x86_64/nptl/pthread_spin_unlock.S
@@ -17,13 +17,19 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <shlib-compat.h>
 
-ENTRY(pthread_spin_unlock)
+ENTRY(__pthread_spin_unlock)
 	movl	$1, (%rdi)
 	xorl	%eax, %eax
 	retq
-END(pthread_spin_unlock)
+END(__pthread_spin_unlock)
+versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_unlock, GLIBC_2_34)
+/* The implementation of pthread_spin_init is identical.  */
+versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_init, GLIBC_2_34)
 
-	/* The implementation of pthread_spin_init is identical.  */
-	.globl	pthread_spin_init
-pthread_spin_init = pthread_spin_unlock
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_unlock, pthread_spin_unlock,
+	       GLIBC_2_2)
+compat_symbol (libpthread, __pthread_spin_unlock, pthread_spin_init, GLIBC_2_2)
+#endif


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-04-23 16:08 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-23 16:08 [glibc] nptl: Move pthread_spin_init, Move pthread_spin_unlock into libc 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).