[git commit master] nptl: fix libc sigtimedwait

Timo Teräs timo.teras at iki.fi
Fri Apr 23 14:31:55 UTC 2010


commit: http://git.uclibc.org/uClibc/commit/?id=268cd8184f8daa106e4b20a8ee2c66410e6f9cbb
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/master

It seems that 57e8823548ad6e65d33b2153edeb18fb0edc20e6 removed completely
sigtimedwait symbol from libc which is wrong. I hope there is not too
many other things like this.

Apparently the libc_hidden_* macros actually make previously hidden
symbols visible globally (creates alias from __GI_* to *). This is
probably ancient confusion from times when gcc did not support
visibility attribute and hiding symbols was done using hacks like
this.

This also adds attribute_hidden to the internal __sigtimedwait for
nptl case.

Signed-off-by: Timo Teräs <timo.teras at iki.fi>
Signed-off-by: Austin Foxley <austinf at cetoncorp.com>
---
 libc/sysdeps/linux/common/__rt_sigtimedwait.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/libc/sysdeps/linux/common/__rt_sigtimedwait.c b/libc/sysdeps/linux/common/__rt_sigtimedwait.c
index 554c6b9..79b94ad 100644
--- a/libc/sysdeps/linux/common/__rt_sigtimedwait.c
+++ b/libc/sysdeps/linux/common/__rt_sigtimedwait.c
@@ -60,8 +60,8 @@ static int do_sigtimedwait(const sigset_t *set, siginfo_t *info,
 }
 
 /* Return any pending signal or wait for one for the given time.  */
-int __sigtimedwait(const sigset_t *set, siginfo_t *info,
-				   const struct timespec *timeout)
+int attribute_hidden __sigtimedwait(const sigset_t *set, siginfo_t *info,
+				    const struct timespec *timeout)
 {
 	if(SINGLE_THREAD_P)
 		return do_sigtimedwait(set, info, timeout);
@@ -102,3 +102,4 @@ int attribute_hidden __sigtimedwait(const sigset_t * set, siginfo_t * info,
 }
 #endif
 weak_alias(__sigtimedwait,sigtimedwait)
+libc_hidden_weak(sigtimedwait)
-- 
1.6.3.3



More information about the uClibc-cvs mailing list