about summary refs log tree commit diff
path: root/src/thread
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2018-09-11 14:56:09 -0400
committerRich Felker <dalias@aerifal.cx>2018-09-12 14:34:36 -0400
commita60d579f5edf3d2e6cc8b5e5f33cbf34bd8914c9 (patch)
treec334ca43afb1e9d88c47a896f6083e59f13f969b /src/thread
parenta2f0eb1a0704c608bb9e0b94b7420201a70ce233 (diff)
downloadmusl-a60d579f5edf3d2e6cc8b5e5f33cbf34bd8914c9.tar.gz
musl-a60d579f5edf3d2e6cc8b5e5f33cbf34bd8914c9.tar.xz
musl-a60d579f5edf3d2e6cc8b5e5f33cbf34bd8914c9.zip
hide __pthread_once_full symbol
this is a special case that does not need a declaration, because it's
not even a libc-internal interface between translation units. instead
it's a poor hack around compilers' inability to shrink-wrap critical
code paths. after vis.h was disabled, it became more of a
pessimization on many archs due to the extra layer of machinery to
support a call through the PLT, but now it should be efficient again.
Diffstat (limited to 'src/thread')
-rw-r--r--src/thread/pthread_once.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/thread/pthread_once.c b/src/thread/pthread_once.c
index a8f8aeb1..8e8d40ae 100644
--- a/src/thread/pthread_once.c
+++ b/src/thread/pthread_once.c
@@ -8,7 +8,7 @@ static void undo(void *control)
 		__wake(control, -1, 1);
 }
 
-int __pthread_once_full(pthread_once_t *control, void (*init)(void))
+hidden int __pthread_once_full(pthread_once_t *control, void (*init)(void))
 {
 	/* Try to enter initializing state. Four possibilities:
 	 *  0 - we're the first or the other cancelled; run init