From 1610762362e651f86ca284ac59a1d7ec88034e4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Ter=C3=A4s?= Date: Wed, 14 Apr 2010 20:01:33 +0300 Subject: nptl: mark symbols with libc forwarder hidden MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add attribute_hidden to all symbols having libc forwarder. This prevents recursive self calls which would happen if libc is before libpthread in linking order: the forwarder functions would call itself via the function table, since the libpthread symbols would get overwritten with libc ones. This has not been a problem in glibc since there these symbols are marked hidden with linker version-script. Since we don't use one, we need to mark these explicitly. Signed-off-by: Timo Teräs Signed-off-by: Austin Foxley --- libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c | 1 + libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c | 1 + libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c | 1 + libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c | 1 + libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c | 1 + libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c | 1 + libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c | 1 + 7 files changed, 7 insertions(+) (limited to 'libpthread/nptl/sysdeps/pthread') diff --git a/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c b/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c index 5e7465774..04cfc3a72 100644 --- a/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c +++ b/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c @@ -28,6 +28,7 @@ int +attribute_hidden __pthread_cond_broadcast ( pthread_cond_t *cond) { diff --git a/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c b/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c index d66f3edbb..aa6d108ed 100644 --- a/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c +++ b/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c @@ -28,6 +28,7 @@ int +attribute_hidden __pthread_cond_signal ( pthread_cond_t *cond) { diff --git a/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c b/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c index 4aaf5df75..88aa0dbf1 100644 --- a/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c +++ b/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c @@ -39,6 +39,7 @@ struct _condvar_cleanup_buffer }; int +attribute_hidden __pthread_cond_timedwait ( pthread_cond_t *cond, pthread_mutex_t *mutex, diff --git a/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c b/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c index 2fac02d83..ad04f151d 100644 --- a/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c +++ b/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c @@ -89,6 +89,7 @@ __condvar_cleanup (void *arg) int +attribute_hidden __pthread_cond_wait ( pthread_cond_t *cond, pthread_mutex_t *mutex) diff --git a/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c b/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c index dc00f2a08..af2adb395 100644 --- a/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c +++ b/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c @@ -26,6 +26,7 @@ /* Acquire read lock for RWLOCK. */ int +attribute_hidden __pthread_rwlock_rdlock ( pthread_rwlock_t *rwlock) { diff --git a/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c b/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c index a7ef71a11..510395e18 100644 --- a/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c +++ b/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c @@ -25,6 +25,7 @@ /* Unlock RWLOCK. */ int +attribute_hidden __pthread_rwlock_unlock (pthread_rwlock_t *rwlock) { lll_lock (rwlock->__data.__lock, rwlock->__data.__shared); diff --git a/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c b/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c index 81e6daa56..63eed0bac 100644 --- a/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c +++ b/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c @@ -26,6 +26,7 @@ /* Acquire write lock for RWLOCK. */ int +attribute_hidden __pthread_rwlock_wrlock ( pthread_rwlock_t *rwlock) { -- cgit v1.2.3