aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nptl/Makefile4
-rw-r--r--nptl/Versions6
-rw-r--r--nptl/pthread_spin_init.c8
-rw-r--r--nptl/pthread_spin_unlock.c10
-rw-r--r--sysdeps/hppa/nptl/pthread_spin_init.c10
-rw-r--r--sysdeps/hppa/nptl/pthread_spin_unlock.c10
-rw-r--r--sysdeps/i386/nptl/pthread_spin_unlock.S16
-rw-r--r--sysdeps/ia64/nptl/pthread_spin_unlock.c11
-rw-r--r--sysdeps/powerpc/nptl/pthread_spin_unlock.c10
-rw-r--r--sysdeps/sh/nptl/pthread_spin_unlock.S21
-rw-r--r--sysdeps/sparc/sparc64/pthread_spin_unlock.S14
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arc/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/arc/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/csky/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/csky/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/i386/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist2
-rw-r--r--sysdeps/x86_64/nptl/pthread_spin_unlock.S16
73 files changed, 233 insertions, 89 deletions
diff --git a/nptl/Makefile b/nptl/Makefile
index 7b36d85..dd7fa95 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 22fd51e..8ec1d4bb 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 470a6fa..c6a5147 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 9de75cb..15921f7 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 6d63af5..af76555 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 2a6ffe4..a087501 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 e572dd8..bbce327 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 d869ef2..a4509c9 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 fcea37b..86bbe4d 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 08ed2ca..c67f504 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 2133710..71dac54 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 f7b1547..c23942f 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 1404222..bdda4d8 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 a3e92cc..f2a1d60 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 464ab9d..53fb61f 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 72ff35a..883cd6a 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 76ffbf3..ce7d50b 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 abc1d83..e71ba4d 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 54f69c1..9442a09 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 e4774ac..7d9c6db 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 54f69c1..9442a09 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 afef4f3..f72ab8e 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 ae33927..f892592 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 baec23b..4ba461a 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 9125d8f..01c743d 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 570b645..3ce7131 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 c80f140..c10cfed 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 8157dd0..dbebfae 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 037ae18..89ef8df 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 e4e3532..9e13200 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 54f69c1..9442a09 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 9b4dd16..25369b5 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 c80f140..c10cfed 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 1c4fff9..19ca6ac 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 f3e7eee..e6c2711 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 bd1a47b..eb89001 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 f3e7eee..e6c2711 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 0c5f359..c1bc72f 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 a307856..0e19334 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 6f2bee5..9a54b48 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 a307856..0e19334 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 63ddc05..2d56f33 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 b2d3902..dbc12f7 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 12820a6..04d1c51 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 99da00c..6b5d106 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 90e1492..34b30b3 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 fd0d143..12f3c77 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 e4f5935..a2c6486 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 f0fd355..3c0f698 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 40fe4ae..fb7abc4 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 12d6fe4..ef0ba70 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 1404222..bdda4d8 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 97368e5..57142bf 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 824effc..9cb6639 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 24a4af7..57773cb 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 ff6801b..4b667c0 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 4c642bc..f7c88b4 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 064e0ed..63c4ffb 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 dcdba97..76279cd 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 599d0e6..eabc387 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 0b1acf6..03a06c6 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 9125d8f..01c743d 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 b453e19..9786d78 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 9125d8f..01c743d 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 1c75e8d..aeea592 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 464ab9d..53fb61f 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 f2c3058..e2bb4c9 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 037ae18..89ef8df 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 e8fd185..e8e8108 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 604b06d..d8450c2 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 e58863f..b25f343 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 0eec283..7387d79 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 ff19708..0dfa7f4 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