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/unix/sysv/linux/sh | |
| parent | bd881300eb5380e4bd636b092b706b4b31def7fb (diff) | |
| download | uClibc-alpine-1610762362e651f86ca284ac59a1d7ec88034e4e.tar.bz2 uClibc-alpine-1610762362e651f86ca284ac59a1d7ec88034e4e.tar.xz  | |
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/unix/sysv/linux/sh')
8 files changed, 8 insertions, 0 deletions
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S index 1242fc2cc..0884c1381 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/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	5  __pthread_cond_broadcast:  	mov.l   r10, @-r15 diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S index 1c3bacbe6..d2d7c19dc 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S @@ -29,6 +29,7 @@  	/* int pthread_cond_signal (pthread_cond_t *cond) */  	.globl	__pthread_cond_signal  	.type	__pthread_cond_signal, @function +	.hidden	__pthread_cond_signal  	.align	5  __pthread_cond_signal:  	mov.l	r8, @-r15 diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S index 3e117564f..7db789f73 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S @@ -30,6 +30,7 @@  			       const struct timespec *abstime)  */  	.globl	__pthread_cond_timedwait  	.type	__pthread_cond_timedwait, @function +	.hidden	__pthread_cond_timedwait  	.align	5  __pthread_cond_timedwait:  .LSTARTCODE: diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S index 5a897f6fe..f4f22b645 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S @@ -28,6 +28,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	5  __pthread_cond_wait:  .LSTARTCODE: diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S index a1477b3ac..da6ecfb49 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S @@ -29,6 +29,7 @@  	.text  	.globl	__pthread_once  	.type	__pthread_once,@function +	.hidden	__pthread_once  	.align	5  	cfi_startproc  __pthread_once: diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S index 52fe5de10..5b100d8cd 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S @@ -29,6 +29,7 @@  	.globl	__pthread_rwlock_rdlock  	.type	__pthread_rwlock_rdlock,@function +	.hidden	__pthread_rwlock_rdlock  	.align	5  __pthread_rwlock_rdlock:  	mov.l	r12, @-r15 diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S index bc6c6c233..ca7a692f5 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S @@ -28,6 +28,7 @@  	.globl	__pthread_rwlock_unlock  	.type	__pthread_rwlock_unlock,@function +	.hidden	__pthread_rwlock_unlock  	.align	5  __pthread_rwlock_unlock:  	mov.l	r12, @-r15 diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S index 3d37fb486..fa051b1ec 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S @@ -29,6 +29,7 @@  	.globl	__pthread_rwlock_wrlock  	.type	__pthread_rwlock_wrlock,@function +	.hidden	__pthread_rwlock_wrlock  	.align	5  __pthread_rwlock_wrlock:  	mov.l	r12, @-r15  | 
