aboutsummaryrefslogtreecommitdiff
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.zip
glibc-c27bcc95880934481fc1a128486e93447de6a0dd.tar.gz
glibc-c27bcc95880934481fc1a128486e93447de6a0dd.tar.bz2
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 9506043..4aea321 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 3b357b7..7b3f969 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 e32066b..5214489 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 5aa39ab..1be451a 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 35fa77d..74ae51e 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)