about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2021-07-13 21:33:39 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2021-07-13 23:36:58 +0200
commitc27bcc95880934481fc1a128486e93447de6a0dd (patch)
treea25d13f7db78f1fc07a14d65fa08f2ff6fd3d233
parent9ed752af8d6581efec4a4ca9e67b06fa7e7e763a (diff)
downloadglibc-c27bcc95880934481fc1a128486e93447de6a0dd.tar.gz
glibc-c27bcc95880934481fc1a128486e93447de6a0dd.tar.xz
glibc-c27bcc95880934481fc1a128486e93447de6a0dd.zip
htl: Let libc call __pthread_mutex_{,try,un}lock
Now that NPTL was moved to libc, libc makes internal __pthread calls, so
htl has to expose them internally.
-rw-r--r--htl/Versions1
-rw-r--r--sysdeps/htl/pthreadP.h3
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-lock.c1
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-trylock.c1
-rw-r--r--sysdeps/mach/hurd/htl/pt-mutex-unlock.c1
5 files changed, 7 insertions, 0 deletions
diff --git a/htl/Versions b/htl/Versions
index 9506043c62..4aea321016 100644
--- a/htl/Versions
+++ b/htl/Versions
@@ -187,6 +187,7 @@ libpthread {
     __pthread_enable_asynccancel;
     __pthread_disable_asynccancel;
 
+    __pthread_mutex_lock; __pthread_mutex_trylock; __pthread_mutex_unlock;
     _pthread_mutex_lock; _pthread_mutex_trylock; _pthread_mutex_unlock;
     _pthread_rwlock_destroy; _pthread_rwlock_init;
   }
diff --git a/sysdeps/htl/pthreadP.h b/sysdeps/htl/pthreadP.h
index 3b357b7bdc..7b3f969a3b 100644
--- a/sysdeps/htl/pthreadP.h
+++ b/sysdeps/htl/pthreadP.h
@@ -36,10 +36,13 @@ extern struct __pthread **__pthread_threads;
 extern int __pthread_mutex_init (pthread_mutex_t *__mutex, const pthread_mutexattr_t *__attr);
 extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
 extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
+hidden_proto (__pthread_mutex_lock)
 extern int __pthread_mutex_trylock (pthread_mutex_t *_mutex);
+hidden_proto (__pthread_mutex_trylock)
 extern int __pthread_mutex_timedlock (pthread_mutex_t *__mutex,
      const struct timespec *__abstime);
 extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
+hidden_proto (__pthread_mutex_unlock)
 extern int __pthread_mutexattr_init (pthread_mutexattr_t *attr);
 extern int __pthread_mutexattr_settype (pthread_mutexattr_t *attr, int kind);
 
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-lock.c b/sysdeps/mach/hurd/htl/pt-mutex-lock.c
index e32066b777..5214489533 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-lock.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-lock.c
@@ -76,5 +76,6 @@ __pthread_mutex_lock (pthread_mutex_t *mtxp)
   return ret;
 }
 
+hidden_def (__pthread_mutex_lock)
 strong_alias (__pthread_mutex_lock, _pthread_mutex_lock)
 weak_alias (__pthread_mutex_lock, pthread_mutex_lock)
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-trylock.c b/sysdeps/mach/hurd/htl/pt-mutex-trylock.c
index 5aa39ab00c..1be451ac96 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-trylock.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-trylock.c
@@ -80,5 +80,6 @@ __pthread_mutex_trylock (pthread_mutex_t *mtxp)
   return ret;
 }
 
+hidden_def (__pthread_mutex_trylock)
 strong_alias (__pthread_mutex_trylock, _pthread_mutex_trylock)
 weak_alias (__pthread_mutex_trylock, pthread_mutex_trylock)
diff --git a/sysdeps/mach/hurd/htl/pt-mutex-unlock.c b/sysdeps/mach/hurd/htl/pt-mutex-unlock.c
index 35fa77d42a..74ae51eb64 100644
--- a/sysdeps/mach/hurd/htl/pt-mutex-unlock.c
+++ b/sysdeps/mach/hurd/htl/pt-mutex-unlock.c
@@ -87,5 +87,6 @@ __pthread_mutex_unlock (pthread_mutex_t *mtxp)
   return ret;
 }
 
+hidden_def (__pthread_mutex_unlock)
 strong_alias (__pthread_mutex_unlock, _pthread_mutex_unlock)
 weak_alias (__pthread_mutex_unlock, pthread_mutex_unlock)