summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2010-04-15 17:52:54 +0300
committerAustin Foxley <austinf@cetoncorp.com>2010-04-15 08:52:49 -0700
commit268cd8184f8daa106e4b20a8ee2c66410e6f9cbb (patch)
treed7e944a36b71f539fba0def7ff73a3b474ce0cb2
parent9c9652debbf3f21effb9a119220e747188d590b9 (diff)
nptl: fix libc sigtimedwait
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@iki.fi> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
-rw-r--r--libc/sysdeps/linux/common/__rt_sigtimedwait.c5
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 554c6b9cb..79b94adef 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)