aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-04-21 19:49:51 +0200
committerFlorian Weimer <fweimer@redhat.com>2021-04-21 19:49:51 +0200
commiteb29dcde31e7b6f07e7acda161e85d2be69652e4 (patch)
tree763b41f1d40d74c8ae84d3c2622ef5709644b820
parent9ce44f46754cc529d54418615862e7e27cc82f09 (diff)
downloadglibc-eb29dcde31e7b6f07e7acda161e85d2be69652e4.tar.xz
glibc-eb29dcde31e7b6f07e7acda161e85d2be69652e4.zip
nptl: Move rwlock functions with forwarders into libc
The forwarders were only used internally, so new symbol versions are needed. All symbols are moved at once because the forwarders are no-ops if libpthread is not loaded, leading to inconsistencies in case of a partial migration. The symbols __pthread_rwlock_rdlock, __pthread_rwlock_unlock, __pthread_rwlock_wrlock, pthread_rwlock_rdlock, pthread_rwlock_unlock, pthread_rwlock_wrlock have been moved using scripts/move-symbol-to-libc.py. The __ symbol variants are turned into compat symbols, which is why they do not receive a GLIBC_2.34 version.
-rw-r--r--nptl/Makefile6
-rw-r--r--nptl/Versions17
-rw-r--r--nptl/nptl-init.c3
-rw-r--r--nptl/pthreadP.h4
-rw-r--r--nptl/pthread_rwlock_rdlock.c16
-rw-r--r--nptl/pthread_rwlock_unlock.c18
-rw-r--r--nptl/pthread_rwlock_wrlock.c16
-rw-r--r--sysdeps/nptl/libc-lockP.h21
-rw-r--r--sysdeps/nptl/pthread-functions.h3
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/arc/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/arc/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/csky/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/csky/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/i386/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist6
70 files changed, 350 insertions, 216 deletions
diff --git a/nptl/Makefile b/nptl/Makefile
index df3423f5bf..db1b2aad08 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -85,6 +85,9 @@ routines = \
pthread_kill \
pthread_mutex_consistent \
pthread_once \
+ pthread_rwlock_rdlock \
+ pthread_rwlock_unlock \
+ pthread_rwlock_wrlock \
pthread_self \
pthread_setcancelstate \
pthread_setcanceltype \
@@ -174,13 +177,10 @@ libpthread-routines = \
pthread_rwlock_clockwrlock \
pthread_rwlock_destroy \
pthread_rwlock_init \
- pthread_rwlock_rdlock \
pthread_rwlock_timedrdlock \
pthread_rwlock_timedwrlock \
pthread_rwlock_tryrdlock \
pthread_rwlock_trywrlock \
- pthread_rwlock_unlock \
- pthread_rwlock_wrlock \
pthread_rwlockattr_destroy \
pthread_rwlockattr_getkind_np \
pthread_rwlockattr_getpshared \
diff --git a/nptl/Versions b/nptl/Versions
index d32b554c05..b14f76aa41 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -49,6 +49,14 @@ libc {
}
GLIBC_2.1 {
pthread_attr_init;
+ pthread_rwlock_rdlock;
+ pthread_rwlock_unlock;
+ pthread_rwlock_wrlock;
+ }
+ GLIBC_2.2 {
+ __pthread_rwlock_rdlock;
+ __pthread_rwlock_unlock;
+ __pthread_rwlock_wrlock;
}
GLIBC_2.2.3 {
pthread_getattr_np;
@@ -104,6 +112,9 @@ libc {
pthread_kill;
pthread_mutex_consistent;
pthread_once;
+ pthread_rwlock_rdlock;
+ pthread_rwlock_unlock;
+ pthread_rwlock_wrlock;
pthread_setspecific;
}
GLIBC_PRIVATE {
@@ -205,11 +216,8 @@ libpthread {
pthread_mutexattr_settype;
pthread_rwlock_destroy;
pthread_rwlock_init;
- pthread_rwlock_rdlock;
pthread_rwlock_tryrdlock;
pthread_rwlock_trywrlock;
- pthread_rwlock_unlock;
- pthread_rwlock_wrlock;
pthread_rwlockattr_destroy;
pthread_rwlockattr_getkind_np;
pthread_rwlockattr_getpshared;
@@ -238,11 +246,8 @@ libpthread {
GLIBC_2.2 {
__pthread_rwlock_destroy;
__pthread_rwlock_init;
- __pthread_rwlock_rdlock;
__pthread_rwlock_tryrdlock;
__pthread_rwlock_trywrlock;
- __pthread_rwlock_unlock;
- __pthread_rwlock_wrlock;
__res_state;
pthread_attr_getstack;
pthread_attr_setstack;
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 1e57ff20d0..fae0db383c 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -66,9 +66,6 @@ static const struct pthread_functions pthread_functions =
.ptr_pthread_mutex_init = __pthread_mutex_init,
.ptr_pthread_mutex_lock = __pthread_mutex_lock,
.ptr_pthread_mutex_unlock = __pthread_mutex_unlock,
- .ptr___pthread_rwlock_rdlock = __pthread_rwlock_rdlock,
- .ptr___pthread_rwlock_wrlock = __pthread_rwlock_wrlock,
- .ptr___pthread_rwlock_unlock = __pthread_rwlock_unlock,
.ptr__nptl_setxid = __nptl_setxid,
};
# define ptr_pthread_functions &pthread_functions
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index f09757bb26..2c59a1dc84 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -447,8 +447,10 @@ extern int __pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
__attr);
extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock);
+libc_hidden_proto (__pthread_rwlock_rdlock)
extern int __pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock);
extern int __pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock);
+libc_hidden_proto (__pthread_rwlock_wrlock)
extern int __pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock);
extern int __pthread_rwlock_unlock (pthread_rwlock_t *__rwlock);
extern int __pthread_cond_broadcast (pthread_cond_t *cond);
@@ -559,8 +561,6 @@ hidden_proto (__pthread_mutex_destroy)
hidden_proto (__pthread_mutex_lock)
hidden_proto (__pthread_mutex_trylock)
hidden_proto (__pthread_mutex_unlock)
-hidden_proto (__pthread_rwlock_rdlock)
-hidden_proto (__pthread_rwlock_wrlock)
hidden_proto (__pthread_rwlock_unlock)
hidden_proto (__pthread_testcancel)
hidden_proto (__pthread_mutexattr_init)
diff --git a/nptl/pthread_rwlock_rdlock.c b/nptl/pthread_rwlock_rdlock.c
index 0eeee50834..366883ea3d 100644
--- a/nptl/pthread_rwlock_rdlock.c
+++ b/nptl/pthread_rwlock_rdlock.c
@@ -20,7 +20,7 @@