From eb29dcde31e7b6f07e7acda161e85d2be69652e4 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Wed, 21 Apr 2021 19:49:51 +0200 Subject: 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. --- nptl/pthread_rwlock_wrlock.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'nptl/pthread_rwlock_wrlock.c') diff --git a/nptl/pthread_rwlock_wrlock.c b/nptl/pthread_rwlock_wrlock.c index 98882a87e4..be20618d52 100644 --- a/nptl/pthread_rwlock_wrlock.c +++ b/nptl/pthread_rwlock_wrlock.c @@ -20,7 +20,7 @@ /* See pthread_rwlock_common.c. */ int -__pthread_rwlock_wrlock (pthread_rwlock_t *rwlock) +___pthread_rwlock_wrlock (pthread_rwlock_t *rwlock) { LIBC_PROBE (wrlock_entry, 1, rwlock); @@ -28,6 +28,16 @@ __pthread_rwlock_wrlock (pthread_rwlock_t *rwlock) LIBC_PROBE (wrlock_acquire_write, 1, rwlock); return result; } +versioned_symbol (libc, ___pthread_rwlock_wrlock, pthread_rwlock_wrlock, + GLIBC_2_34); +strong_alias (___pthread_rwlock_wrlock, __pthread_rwlock_wrlock) +libc_hidden_ver (___pthread_rwlock_wrlock, __pthread_rwlock_wrlock) -weak_alias (__pthread_rwlock_wrlock, pthread_rwlock_wrlock) -hidden_def (__pthread_rwlock_wrlock) +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_1, GLIBC_2_34) +compat_symbol (libpthread, ___pthread_rwlock_wrlock, pthread_rwlock_wrlock, + GLIBC_2_1); +#endif +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34) +compat_symbol (libpthread, ___pthread_rwlock_wrlock, __pthread_rwlock_wrlock, + GLIBC_2_2); +#endif -- cgit 1.4.1