diff options
author | Timo Teräs <timo.teras@iki.fi> | 2010-04-14 20:01:33 +0300 |
---|---|---|
committer | Austin Foxley <austinf@cetoncorp.com> | 2010-04-14 10:53:08 -0700 |
commit | 1610762362e651f86ca284ac59a1d7ec88034e4e (patch) | |
tree | dd0950ba51eb7cd72d4f2ae67ee262d51394994b /libpthread/nptl/sysdeps/pthread | |
parent | bd881300eb5380e4bd636b092b706b4b31def7fb (diff) |
nptl: mark symbols with libc forwarder hidden
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 <timo.teras@iki.fi>
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
Diffstat (limited to 'libpthread/nptl/sysdeps/pthread')
7 files changed, 7 insertions, 0 deletions
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) { |