about summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-04-22 15:18:12 +0200
committerFlorian Weimer <fweimer@redhat.com>2021-04-23 17:06:44 +0200
commitce4b3b7befc1010a4be0294d28984d0af47b7bc2 (patch)
tree3a098b52827d0ba5ae835bafe65485dfe2b702ec /nptl
parentc7b1cd4ad100d01f3202a44ec3b84b87bea5ef19 (diff)
downloadglibc-ce4b3b7befc1010a4be0294d28984d0af47b7bc2.tar.gz
glibc-ce4b3b7befc1010a4be0294d28984d0af47b7bc2.tar.xz
glibc-ce4b3b7befc1010a4be0294d28984d0af47b7bc2.zip
nptl: Move pthread_spin_init, Move pthread_spin_unlock into libc
For some architectures, the two functions are aliased, so these
symbols need to be moved at the same time.

The symbols were moved using scripts/move-symbol-to-libc.py.
Diffstat (limited to 'nptl')
-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
4 files changed, 22 insertions, 6 deletions
diff --git a/nptl/Makefile b/nptl/Makefile
index 7b36d85f6b..dd7fa95c2b 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -130,6 +130,8 @@ routines = \
   pthread_setspecific \
   pthread_sigmask \
   pthread_spin_destroy \
+  pthread_spin_init \
+  pthread_spin_unlock \
   tpp \
   unwind \
 
@@ -195,10 +197,8 @@ libpthread-routines = \
   pthread_setname \
   pthread_setschedprio \
   pthread_sigqueue \
-  pthread_spin_init \
   pthread_spin_lock \
   pthread_spin_trylock \
-  pthread_spin_unlock \
   pthread_testcancel \
   pthread_timedjoin \
   pthread_tryjoin \
diff --git a/nptl/Versions b/nptl/Versions
index 22fd51ef12..8ec1d4bbd2 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -80,6 +80,8 @@ libc {
     pthread_mutexattr_getpshared;
     pthread_mutexattr_setpshared;
     pthread_spin_destroy;
+    pthread_spin_init;
+    pthread_spin_unlock;
   }
   GLIBC_2.2.3 {
     pthread_getattr_np;
@@ -181,6 +183,8 @@ libc {
     pthread_rwlock_wrlock;
     pthread_setspecific;
     pthread_spin_destroy;
+    pthread_spin_init;
+    pthread_spin_unlock;
   }
   GLIBC_PRIVATE {
     __futex_abstimed_wait64;
@@ -312,10 +316,8 @@ libpthread {
     pthread_getcpuclockid;
     pthread_rwlock_timedrdlock;
     pthread_rwlock_timedwrlock;
-    pthread_spin_init;
     pthread_spin_lock;
     pthread_spin_trylock;
-    pthread_spin_unlock;
     pthread_yield;
     sem_timedwait;
   }
diff --git a/nptl/pthread_spin_init.c b/nptl/pthread_spin_init.c
index 470a6fab63..c6a51477bf 100644
--- a/nptl/pthread_spin_init.c
+++ b/nptl/pthread_spin_init.c
@@ -18,11 +18,17 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include "pthreadP.h"
+#include <shlib-compat.h>
 
 int
-pthread_spin_init (pthread_spinlock_t *lock, int pshared)
+__pthread_spin_init (pthread_spinlock_t *lock, int pshared)
 {
   /* Relaxed MO is fine because this is an initializing store.  */
   atomic_store_relaxed (lock, 0);
   return 0;
 }
+versioned_symbol (libc, __pthread_spin_init, pthread_spin_init, GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_init, pthread_spin_init, GLIBC_2_2);
+#endif
diff --git a/nptl/pthread_spin_unlock.c b/nptl/pthread_spin_unlock.c
index 9de75cbdcb..15921f726a 100644
--- a/nptl/pthread_spin_unlock.c
+++ b/nptl/pthread_spin_unlock.c
@@ -19,9 +19,10 @@
 
 #include "pthreadP.h"
 #include <atomic.h>
+#include <shlib-compat.h>
 
 int
-pthread_spin_unlock (pthread_spinlock_t *lock)
+__pthread_spin_unlock (pthread_spinlock_t *lock)
 {
   /* The atomic_store_release synchronizes-with the atomic_exchange_acquire
      or atomic_compare_exchange_weak_acquire in pthread_spin_lock /
@@ -29,3 +30,10 @@ pthread_spin_unlock (pthread_spinlock_t *lock)
   atomic_store_release (lock, 0);
   return 0;
 }
+versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_unlock,
+                  GLIBC_2_34);
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+compat_symbol (libpthread, __pthread_spin_unlock, pthread_spin_unlock,
+               GLIBC_2_2);
+#endif