[3/4] nptl: Move pthread_spin_lock into libc

Message ID 4e962d80cbf9dbe2b7875be956b74765137bf543.1619175406.git.fweimer@redhat.com
State Committed
Commit da8e3710d8791f4b7f164ba9eb45b823ada44634
Headers
Series nptl: Move spinlock symbols into libc |

Commit Message

Florian Weimer April 23, 2021, 12:03 p.m. UTC
  The symbol was moved using scripts/move-symbol-to-libc.py.
---
 nptl/Makefile                                      |  2 +-
 nptl/Versions                                      |  3 ++-
 nptl/pthread_spin_lock.c                           |  8 +++++++-
 sysdeps/alpha/nptl/pthread_spin_lock.S             | 14 ++++++++++----
 sysdeps/i386/nptl/pthread_spin_lock.S              | 10 ++++++++--
 sysdeps/ia64/nptl/pthread_spin_lock.c              | 10 +++++++++-
 sysdeps/powerpc/nptl/pthread_spin_lock.c           |  8 +++++++-
 sysdeps/sh/nptl/pthread_spin_lock.c                |  8 +++++++-
 sysdeps/sparc/sparc32/pthread_spin_lock.S          | 10 ++++++++--
 sysdeps/sparc/sparc64/pthread_spin_lock.S          | 10 ++++++++--
 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 -
 sysdeps/x86_64/nptl/pthread_spin_lock.S            | 10 ++++++++--
 72 files changed, 139 insertions(+), 47 deletions(-)
  

Patch

diff --git a/nptl/Makefile b/nptl/Makefile
index 54e6794272..69030e8c3c 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -127,6 +127,7 @@  routines = \
   pthread_sigmask \
   pthread_spin_destroy \
   pthread_spin_init \
+  pthread_spin_lock \
   pthread_spin_unlock \
   tpp \
   unwind \
@@ -197,7 +198,6 @@  libpthread-routines = \
   pthread_setname \
   pthread_setschedprio \
   pthread_sigqueue \
-  pthread_spin_lock \
   pthread_spin_trylock \
   pthread_testcancel \
   pthread_timedjoin \
diff --git a/nptl/Versions b/nptl/Versions
index 83df849f13..f77a426547 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -79,6 +79,7 @@  libc {
     pthread_mutexattr_setpshared;
     pthread_spin_destroy;
     pthread_spin_init;
+    pthread_spin_lock;
     pthread_spin_unlock;
   }
   GLIBC_2.2.3 {
@@ -176,6 +177,7 @@  libc {
     pthread_setspecific;
     pthread_spin_destroy;
     pthread_spin_init;
+    pthread_spin_lock;
     pthread_spin_unlock;
   }
   GLIBC_PRIVATE {
@@ -310,7 +312,6 @@  libpthread {
     pthread_getcpuclockid;
     pthread_rwlock_timedrdlock;
     pthread_rwlock_timedwrlock;
-    pthread_spin_lock;
     pthread_spin_trylock;
     pthread_yield;
     sem_timedwait;
diff --git a/nptl/pthread_spin_lock.c b/nptl/pthread_spin_lock.c
index c07591bf4c..b4eb4cd196 100644
--- a/nptl/pthread_spin_lock.c
+++ b/nptl/pthread_spin_lock.c
@@ -18,9 +18,10 @@ 
 
 #include <atomic.h>
 #include "pthreadP.h"
+#include <shlib-compat.h>
 
 int
-pthread_spin_lock (pthread_spinlock_t *lock)
+__pthread_spin_lock (pthread_spinlock_t *lock)
 {
   int val = 0;
 
@@ -78,3 +79,8 @@  pthread_spin_lock (pthread_spinlock_t *lock)
 
   return 0;
 }
+versioned_symbol (libc, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_2);
+#endif
diff --git a/sysdeps/alpha/nptl/pthread_spin_lock.S b/sysdeps/alpha/nptl/pthread_spin_lock.S
index 8f9d1805c9..6ffd68d79d 100644
--- a/sysdeps/alpha/nptl/pthread_spin_lock.S
+++ b/sysdeps/alpha/nptl/pthread_spin_lock.S
@@ -16,13 +16,14 @@ 
    License along with the GNU C Library.  If not, see
    <https://www.gnu.org/licenses/>.  */
 
+#include <shlib-compat.h>
 
 	.text
 	.align	4
 
-	.globl	pthread_spin_lock
-	.ent	pthread_spin_lock
-pthread_spin_lock:
+	.globl	__pthread_spin_lock
+	.ent	__pthread_spin_lock
+__pthread_spin_lock:
 	.frame	$sp, 0, $26, 0
 	.prologue 0
 
@@ -41,4 +42,9 @@  pthread_spin_lock:
 	unop
 	br	0b
 
-	.end	pthread_spin_lock
+	.end	__pthread_spin_lock
+versioned_symbol (libc, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_34)
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_2)
+#endif
diff --git a/sysdeps/i386/nptl/pthread_spin_lock.S b/sysdeps/i386/nptl/pthread_spin_lock.S
index 985b236aae..cd10fb4d93 100644
--- a/sysdeps/i386/nptl/pthread_spin_lock.S
+++ b/sysdeps/i386/nptl/pthread_spin_lock.S
@@ -16,8 +16,9 @@ 
    <https://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <shlib-compat.h>
 
-ENTRY (pthread_spin_lock)
+ENTRY (__pthread_spin_lock)
 	mov	4(%esp), %eax
 1:	LOCK
 	decl	0(%eax)
@@ -31,4 +32,9 @@  ENTRY (pthread_spin_lock)
 	cmpl	$0, 0(%eax)
 	jg	1b
 	jmp	2b
-END (pthread_spin_lock)
+END (__pthread_spin_lock)
+versioned_symbol (libc, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_34)
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_2)
+#endif
diff --git a/sysdeps/ia64/nptl/pthread_spin_lock.c b/sysdeps/ia64/nptl/pthread_spin_lock.c
index 87eebc7fe9..b80102187c 100644
--- a/sysdeps/ia64/nptl/pthread_spin_lock.c
+++ b/sysdeps/ia64/nptl/pthread_spin_lock.c
@@ -17,9 +17,10 @@ 
    <https://www.gnu.org/licenses/>.  */
 
 #include "pthreadP.h"
+#include <shlib-compat.h>
 
 int
-pthread_spin_lock (pthread_spinlock_t *lock)
+__pthread_spin_lock (pthread_spinlock_t *lock)
 {
   int *p = (int *) lock;
 
@@ -32,3 +33,10 @@  pthread_spin_lock (pthread_spinlock_t *lock)
     }
   return 0;
 }
+versioned_symbol (libc, __pthread_spin_lock, pthread_spin_lock,
+                  GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_lock, pthread_spin_lock,
+               GLIBC_2_2);
+#endif
diff --git a/sysdeps/powerpc/nptl/pthread_spin_lock.c b/sysdeps/powerpc/nptl/pthread_spin_lock.c
index 28bb538d46..a17dd41c10 100644
--- a/sysdeps/powerpc/nptl/pthread_spin_lock.c
+++ b/sysdeps/powerpc/nptl/pthread_spin_lock.c
@@ -17,9 +17,10 @@ 
    <https://www.gnu.org/licenses/>.  */
 
 #include "pthreadP.h"
+#include <shlib-compat.h>
 
 int
-pthread_spin_lock (pthread_spinlock_t *lock)
+__pthread_spin_lock (pthread_spinlock_t *lock)
 {
   unsigned int __tmp;
 
@@ -41,3 +42,8 @@  pthread_spin_lock (pthread_spinlock_t *lock)
        : "cr0", "memory");
   return 0;
 }
+versioned_symbol (libc, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_2);
+#endif
diff --git a/sysdeps/sh/nptl/pthread_spin_lock.c b/sysdeps/sh/nptl/pthread_spin_lock.c
index 5689f491c1..be6aa65d25 100644
--- a/sysdeps/sh/nptl/pthread_spin_lock.c
+++ b/sysdeps/sh/nptl/pthread_spin_lock.c
@@ -16,9 +16,10 @@ 
    <https://www.gnu.org/licenses/>.  */
 
 #include "pthreadP.h"
+#include <shlib-compat.h>
 
 int
-pthread_spin_lock (pthread_spinlock_t *lock)
+__pthread_spin_lock (pthread_spinlock_t *lock)
 {
   unsigned int val;
 
@@ -31,3 +32,8 @@  pthread_spin_lock (pthread_spinlock_t *lock)
 
   return 0;
 }
+versioned_symbol (libc, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_2);
+#endif
diff --git a/sysdeps/sparc/sparc32/pthread_spin_lock.S b/sysdeps/sparc/sparc32/pthread_spin_lock.S
index e14f5ce864..1c5894137c 100644
--- a/sysdeps/sparc/sparc32/pthread_spin_lock.S
+++ b/sysdeps/sparc/sparc32/pthread_spin_lock.S
@@ -16,9 +16,10 @@ 
    <https://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <shlib-compat.h>
 
 	.text
-ENTRY(pthread_spin_lock)
+ENTRY(__pthread_spin_lock)
 1:	ldstub		[%o0], %g1
 	orcc		%g1, 0x0, %g0
 	bne,a		2f
@@ -29,4 +30,9 @@  ENTRY(pthread_spin_lock)
 	bne,a		2b
 	 ldub		[%o0], %g1
 	ba,a		1b
-END(pthread_spin_lock)
+END(__pthread_spin_lock)
+versioned_symbol (libc, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_34)
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_2)
+#endif
diff --git a/sysdeps/sparc/sparc64/pthread_spin_lock.S b/sysdeps/sparc/sparc64/pthread_spin_lock.S
index b8a2fc9fa7..d65bdc58fb 100644
--- a/sysdeps/sparc/sparc64/pthread_spin_lock.S
+++ b/sysdeps/sparc/sparc64/pthread_spin_lock.S
@@ -16,9 +16,10 @@ 
    <https://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <shlib-compat.h>
 
 	.text
-ENTRY(pthread_spin_lock)
+ENTRY(__pthread_spin_lock)
 1:	ldstub		[%o0], %g1
 	brnz,pn		%g1, 2f
 	 membar		#StoreLoad | #StoreStore
@@ -28,4 +29,9 @@  ENTRY(pthread_spin_lock)
 	brnz,pt		%g1, 2b
 	 membar		#LoadLoad
 	ba,a,pt		%xcc, 1b
-END(pthread_spin_lock)
+END(__pthread_spin_lock)
+versioned_symbol (libc, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_34)
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_2)
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 069077aa51..dc0d55e916 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1507,6 +1507,7 @@  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_lock F
 GLIBC_2.17 pthread_spin_unlock F
 GLIBC_2.17 ptrace F
 GLIBC_2.17 ptsname F
@@ -2274,4 +2275,5 @@  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_lock 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 30159b3fdb..eaaee3a14e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -59,7 +59,6 @@  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_lock F
 GLIBC_2.17 pthread_spin_trylock F
 GLIBC_2.17 pthread_testcancel F
 GLIBC_2.17 pthread_timedjoin_np F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 55b952da9b..3d7c37a2b7 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1983,6 +1983,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 putwc F
 GLIBC_2.2 putwc_unlocked F
@@ -2355,6 +2356,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index c5fc98db6b..909b71eed6 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.2 pthread_condattr_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_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 9fba5514fa..0652929dbb 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1435,6 +1435,7 @@  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_lock F
 GLIBC_2.32 pthread_spin_unlock F
 GLIBC_2.32 ptrace F
 GLIBC_2.32 ptsname F
@@ -2033,4 +2034,5 @@  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_lock 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 07e73aca70..f58e6517c1 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -77,7 +77,6 @@  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_lock F
 GLIBC_2.32 pthread_spin_trylock F
 GLIBC_2.32 pthread_testcancel F
 GLIBC_2.32 pthread_timedjoin_np F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index f1630f99e6..73055466d0 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -204,6 +204,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
@@ -1645,6 +1646,7 @@  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_lock F
 GLIBC_2.4 pthread_spin_unlock F
 GLIBC_2.4 ptrace F
 GLIBC_2.4 ptsname F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index f613d8e75b..4b7b41f396 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -87,7 +87,6 @@  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_lock F
 GLIBC_2.4 pthread_spin_trylock F
 GLIBC_2.4 pthread_testcancel F
 GLIBC_2.4 pthread_timedjoin_np F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 48b0e356ba..7581d26446 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -201,6 +201,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
@@ -1642,6 +1643,7 @@  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_lock F
 GLIBC_2.4 pthread_spin_unlock F
 GLIBC_2.4 ptrace F
 GLIBC_2.4 ptsname F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index f613d8e75b..4b7b41f396 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -87,7 +87,6 @@  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_lock F
 GLIBC_2.4 pthread_spin_trylock F
 GLIBC_2.4 pthread_testcancel F
 GLIBC_2.4 pthread_timedjoin_np F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index cb866ef305..5386a4f962 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -1494,6 +1494,7 @@  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_lock F
 GLIBC_2.29 pthread_spin_unlock F
 GLIBC_2.29 ptrace F
 GLIBC_2.29 ptsname F
@@ -2217,4 +2218,5 @@  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_lock 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 658ee766d4..9ed68505f4 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -74,7 +74,6 @@  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_lock F
 GLIBC_2.29 pthread_spin_trylock F
 GLIBC_2.29 pthread_testcancel F
 GLIBC_2.29 pthread_timedjoin_np F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 147626b61f..c6868d75dc 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -1320,6 +1320,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2168,6 +2169,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 09e51d3779..15d5da49ca 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -51,7 +51,6 @@  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_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index c3e0d9503d..9a4c33e843 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -1992,6 +1992,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 putwc F
 GLIBC_2.2 putwc_unlocked F
@@ -2345,6 +2346,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index a5c30dcc6e..7ee6b7eba2 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.2 pthread_condattr_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_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index c30729a3a8..fa1ca8aa46 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1341,6 +1341,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2202,6 +2203,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index c55b4e7a53..dc814f5b9a 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -51,7 +51,6 @@  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_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 419dba5a99..d04b4528c9 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -205,6 +205,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _Exit F
 GLIBC_2.4 _IO_2_1_stderr_ D 0x98
@@ -1625,6 +1626,7 @@  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_lock F
 GLIBC_2.4 pthread_spin_unlock F
 GLIBC_2.4 ptrace F
 GLIBC_2.4 ptsname F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index f613d8e75b..4b7b41f396 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -87,7 +87,6 @@  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_lock F
 GLIBC_2.4 pthread_spin_trylock F
 GLIBC_2.4 pthread_testcancel F
 GLIBC_2.4 pthread_timedjoin_np F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 85170d3eac..1fdd44fac9 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -1948,6 +1948,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 putwc F
 GLIBC_2.2 putwc_unlocked F
@@ -2288,6 +2289,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index a5c30dcc6e..7ee6b7eba2 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.2 pthread_condattr_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_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 1bcbd639a1..5337b01f45 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -1509,6 +1509,7 @@  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_lock F
 GLIBC_2.18 pthread_spin_unlock F
 GLIBC_2.18 ptrace F
 GLIBC_2.18 ptsname F
@@ -2268,4 +2269,5 @@  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_lock 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 ad275eba98..3e5e13947a 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -61,7 +61,6 @@  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_lock F
 GLIBC_2.18 pthread_spin_trylock F
 GLIBC_2.18 pthread_testcancel F
 GLIBC_2.18 pthread_timedjoin_np F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index c3b7a23174..be383b01a9 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -1509,6 +1509,7 @@  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_lock F
 GLIBC_2.18 pthread_spin_unlock F
 GLIBC_2.18 ptrace F
 GLIBC_2.18 ptsname F
@@ -2265,4 +2266,5 @@  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_lock 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 ad275eba98..3e5e13947a 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -61,7 +61,6 @@  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_lock F
 GLIBC_2.18 pthread_spin_trylock F
 GLIBC_2.18 pthread_testcancel F
 GLIBC_2.18 pthread_timedjoin_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 212d57d5e1..b5d439d9e5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -1844,6 +1844,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptsname F
 GLIBC_2.2 ptsname_r F
@@ -2251,6 +2252,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 3606903dd7..8251bcafb8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -59,7 +59,6 @@  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_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_close F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 45d42d521f..ad6f2e0a60 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -1842,6 +1842,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptsname F
 GLIBC_2.2 ptsname_r F
@@ -2249,6 +2250,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 3606903dd7..8251bcafb8 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -59,7 +59,6 @@  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_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_close F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 16d5c2e7bf..b4176c0f09 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1842,6 +1842,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptsname F
 GLIBC_2.2 ptsname_r F
@@ -2257,6 +2258,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_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 6fba8a3d30..c158c9c3b7 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1838,6 +1838,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptsname F
 GLIBC_2.2 ptsname_r F
@@ -2251,6 +2252,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 4fa897e8a7..c8e72a5d61 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -1552,6 +1552,7 @@  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_lock F
 GLIBC_2.21 pthread_spin_unlock F
 GLIBC_2.21 ptrace F
 GLIBC_2.21 ptsname F
@@ -2307,4 +2308,5 @@  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_lock 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 47bf010394..210c184999 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -61,7 +61,6 @@  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_lock F
 GLIBC_2.21 pthread_spin_trylock F
 GLIBC_2.21 pthread_testcancel F
 GLIBC_2.21 pthread_timedjoin_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 3a8c5a26cd..e4b735c785 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -1953,6 +1953,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 putwc F
 GLIBC_2.2 putwc_unlocked F
@@ -2315,6 +2316,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 46c3bec1eb..198bba4f45 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.2 pthread_condattr_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_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 2f81ae8b4f..57fac47352 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -1957,6 +1957,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 putwc F
 GLIBC_2.2 putwc_unlocked F
@@ -2348,6 +2349,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 7c319b7b6a..4eb986a099 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -1426,6 +1426,7 @@  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_lock F
 GLIBC_2.3 pthread_spin_unlock F
 GLIBC_2.3 ptrace F
 GLIBC_2.3 ptsname F
@@ -2169,6 +2170,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index ce011ffe47..bdab2b7db9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -72,7 +72,6 @@  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_lock F
 GLIBC_2.3 pthread_spin_trylock F
 GLIBC_2.3 pthread_testcancel F
 GLIBC_2.3 pthread_yield F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 9d4d5ddb88..5302967953 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -1595,6 +1595,7 @@  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_lock F
 GLIBC_2.17 pthread_spin_unlock F
 GLIBC_2.17 ptrace F
 GLIBC_2.17 ptsname F
@@ -2470,4 +2471,5 @@  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_lock 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 30159b3fdb..eaaee3a14e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -59,7 +59,6 @@  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_lock F
 GLIBC_2.17 pthread_spin_trylock F
 GLIBC_2.17 pthread_testcancel F
 GLIBC_2.17 pthread_timedjoin_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index d90e5f8133..9b6990c97e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1437,6 +1437,7 @@  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_lock F
 GLIBC_2.33 pthread_spin_unlock F
 GLIBC_2.33 ptrace F
 GLIBC_2.33 ptsname F
@@ -2035,4 +2036,5 @@  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_lock 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 342e3a267a..4cce7d79ae 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -77,7 +77,6 @@  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_lock F
 GLIBC_2.33 pthread_spin_trylock F
 GLIBC_2.33 pthread_testcancel F
 GLIBC_2.33 pthread_timedjoin_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index f0b79e9a01..b4f223ce23 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -1497,6 +1497,7 @@  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_lock F
 GLIBC_2.27 pthread_spin_unlock F
 GLIBC_2.27 ptrace F
 GLIBC_2.27 ptsname F
@@ -2235,4 +2236,5 @@  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_lock 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 85d1949102..4d83202456 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -61,7 +61,6 @@  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_lock F
 GLIBC_2.27 pthread_spin_trylock F
 GLIBC_2.27 pthread_testcancel F
 GLIBC_2.27 pthread_timedjoin_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 6d53c44080..54892842e0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1951,6 +1951,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 putwc F
 GLIBC_2.2 putwc_unlocked F
@@ -2313,6 +2314,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index db81d147b9..39d88fb0c0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -70,7 +70,6 @@  GLIBC_2.2 pthread_condattr_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_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 5714a15a0f..a2d887c2f9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1338,6 +1338,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2206,6 +2207,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 428f33df01..f562fb73be 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -52,7 +52,6 @@  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_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index f0810c157c..bd2cca9000 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -1324,6 +1324,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2175,6 +2176,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index 09e51d3779..15d5da49ca 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -51,7 +51,6 @@  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_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 928e283009..c7badaafe8 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -1324,6 +1324,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2172,6 +2173,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index 09e51d3779..15d5da49ca 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -51,7 +51,6 @@  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_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index da08bf3fb3..3f13bae020 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1947,6 +1947,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 putwc F
 GLIBC_2.2 putwc_unlocked F
@@ -2304,6 +2305,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 _IO_fprintf F
 GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index c5fc98db6b..909b71eed6 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.2 pthread_condattr_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_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_yield F
 GLIBC_2.2 sem_timedwait F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index faa59aca08..bb56b837a5 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1367,6 +1367,7 @@  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_lock F
 GLIBC_2.2 pthread_spin_unlock F
 GLIBC_2.2 ptrace F
 GLIBC_2.2 ptsname F
@@ -2223,6 +2224,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_chk F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index c55b4e7a53..dc814f5b9a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -51,7 +51,6 @@  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_lock F
 GLIBC_2.2 pthread_spin_trylock F
 GLIBC_2.2 pthread_testcancel F
 GLIBC_2.2 pthread_yield F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index f009b86fa7..302756eb5e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1335,6 +1335,7 @@  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_lock F
 GLIBC_2.2.5 pthread_spin_unlock F
 GLIBC_2.2.5 ptrace F
 GLIBC_2.2.5 ptsname F
@@ -2184,6 +2185,7 @@  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_lock F
 GLIBC_2.34 pthread_spin_unlock F
 GLIBC_2.4 __confstr_chk F
 GLIBC_2.4 __fgets_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 e1d4900d5a..1c381d40f1 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -51,7 +51,6 @@  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_lock F
 GLIBC_2.2.5 pthread_spin_trylock F
 GLIBC_2.2.5 pthread_testcancel F
 GLIBC_2.2.5 pthread_yield F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 51103eb404..f273953ef0 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -1514,6 +1514,7 @@  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_lock F
 GLIBC_2.16 pthread_spin_unlock F
 GLIBC_2.16 ptrace F
 GLIBC_2.16 ptsname F
@@ -2289,4 +2290,5 @@  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_lock 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 06cc8945e2..455ef57234 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -59,7 +59,6 @@  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_lock F
 GLIBC_2.16 pthread_spin_trylock F
 GLIBC_2.16 pthread_testcancel F
 GLIBC_2.16 pthread_timedjoin_np F
diff --git a/sysdeps/x86_64/nptl/pthread_spin_lock.S b/sysdeps/x86_64/nptl/pthread_spin_lock.S
index ff5e7525ca..bfc1b21aeb 100644
--- a/sysdeps/x86_64/nptl/pthread_spin_lock.S
+++ b/sysdeps/x86_64/nptl/pthread_spin_lock.S
@@ -16,8 +16,9 @@ 
    <https://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <shlib-compat.h>
 
-ENTRY(pthread_spin_lock)
+ENTRY(__pthread_spin_lock)
 1:	LOCK
 	decl	0(%rdi)
 	jne	2f
@@ -30,4 +31,9 @@  ENTRY(pthread_spin_lock)
 	cmpl	$0, 0(%rdi)
 	jg	1b
 	jmp	2b
-END(pthread_spin_lock)
+END(__pthread_spin_lock)
+versioned_symbol (libc, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_34)
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_lock, pthread_spin_lock, GLIBC_2_2)
+#endif