diff options
author | Florian Weimer <fweimer@redhat.com> | 2021-04-21 19:49:51 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2021-04-21 19:49:51 +0200 |
commit | 27a448223cb2d3bab191c61303db48cee66f871c (patch) | |
tree | e9cb7ab65f5efb5d486c79ee58b4ccadfbe7896c /nptl/pthread_mutex_unlock.c | |
parent | 60d5e40ab200033a982a9fd7594a1f83dcdb94a0 (diff) | |
download | glibc-27a448223cb2d3bab191c61303db48cee66f871c.tar.gz glibc-27a448223cb2d3bab191c61303db48cee66f871c.tar.xz glibc-27a448223cb2d3bab191c61303db48cee66f871c.zip |
nptl: Move core mutex functions into libc
This is complicated because of a second compilation of nptl/pthread_mutex_lock.c via nptl/pthread_mutex_cond_lock.c. PTHREAD_MUTEX_VERSIONS is introduced to suppress symbol versions in that case. The symbols __pthread_mutex_lock, __pthread_mutex_unlock, __pthread_mutex_init, __pthread_mutex_destroy, pthread_mutex_lock, pthread_mutex_unlock, pthread_mutex_init, pthread_mutex_destroy have been moved using scripts/move-symbol-to-libc.py. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'nptl/pthread_mutex_unlock.c')
-rw-r--r-- | nptl/pthread_mutex_unlock.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c index 655093ee9a..ea88ba2986 100644 --- a/nptl/pthread_mutex_unlock.c +++ b/nptl/pthread_mutex_unlock.c @@ -23,6 +23,7 @@ #include <lowlevellock.h> #include <stap-probe.h> #include <futex-internal.h> +#include <shlib-compat.h> static int __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr) @@ -44,7 +45,6 @@ lll_mutex_unlock_optimized (pthread_mutex_t *mutex) } int -attribute_hidden __pthread_mutex_unlock_usercnt (pthread_mutex_t *mutex, int decr) { /* See concurrency notes regarding mutex type which is loaded from __kind @@ -103,6 +103,7 @@ __pthread_mutex_unlock_usercnt (pthread_mutex_t *mutex, int decr) goto normal; } } +libc_hidden_def (__pthread_mutex_unlock_usercnt) static int @@ -363,9 +364,17 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr) int -__pthread_mutex_unlock (pthread_mutex_t *mutex) +___pthread_mutex_unlock (pthread_mutex_t *mutex) { return __pthread_mutex_unlock_usercnt (mutex, 1); } -weak_alias (__pthread_mutex_unlock, pthread_mutex_unlock) -hidden_def (__pthread_mutex_unlock) +versioned_symbol (libpthread, ___pthread_mutex_unlock, __pthread_mutex_unlock, + GLIBC_2_34); +libc_hidden_ver (___pthread_mutex_unlock, __pthread_mutex_unlock) +versioned_symbol (libpthread, ___pthread_mutex_unlock, pthread_mutex_unlock, + GLIBC_2_0); + +#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_34) +compat_symbol (libpthread, ___pthread_mutex_unlock, __pthread_mutex_unlock, + GLIBC_2_0); +#endif |