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 --- .../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S | 1 + libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S | 1 + .../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S | 1 + libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S | 1 + .../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S | 1 + .../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S | 1 + .../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S | 1 + libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S | 1 + 8 files changed, 8 insertions(+) (limited to 'libpthread/nptl/sysdeps/unix/sysv/linux/i386') diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S index 0413cc13b..37dd9daea 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S @@ -30,6 +30,7 @@ /* int pthread_cond_broadcast (pthread_cond_t *cond) */ .globl __pthread_cond_broadcast .type __pthread_cond_broadcast, @function + .hidden __pthread_cond_broadcast .align 16 __pthread_cond_broadcast: cfi_startproc diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S index 2f3c9bc35..64d309dd3 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S @@ -31,6 +31,7 @@ /* int pthread_cond_signal (pthread_cond_t *cond) */ .globl __pthread_cond_signal .type __pthread_cond_signal, @function + .hidden __pthread_cond_signal .align 16 __pthread_cond_signal: diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S index c56dd7716..6646c8a72 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S @@ -31,6 +31,7 @@ const struct timespec *abstime) */ .globl __pthread_cond_timedwait .type __pthread_cond_timedwait, @function + .hidden __pthread_cond_timedwait .align 16 __pthread_cond_timedwait: .LSTARTCODE: diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S index 6261805f1..137d576af 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S @@ -31,6 +31,7 @@ /* int pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex) */ .globl __pthread_cond_wait .type __pthread_cond_wait, @function + .hidden __pthread_cond_wait .align 16 __pthread_cond_wait: .LSTARTCODE: diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S index 6205a60ef..570771394 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S @@ -29,6 +29,7 @@ .globl __pthread_rwlock_rdlock .type __pthread_rwlock_rdlock,@function + .hidden __pthread_rwlock_rdlock .align 16 __pthread_rwlock_rdlock: cfi_startproc diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S index 426ffdcd7..72563018d 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S @@ -28,6 +28,7 @@ .globl __pthread_rwlock_unlock .type __pthread_rwlock_unlock,@function + .hidden __pthread_rwlock_unlock .align 16 __pthread_rwlock_unlock: cfi_startproc diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S index 0414ba060..8ff7dfa56 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S @@ -29,6 +29,7 @@ .globl __pthread_rwlock_wrlock .type __pthread_rwlock_wrlock,@function + .hidden __pthread_rwlock_wrlock .align 16 __pthread_rwlock_wrlock: cfi_startproc diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S index 409df15f8..a995709bf 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S @@ -31,6 +31,7 @@ .globl __pthread_once .type __pthread_once,@function + .hidden __pthread_once .align 16 cfi_startproc __pthread_once: -- cgit v1.2.3