From: Rich Felker Date: Tue, 11 Sep 2018 18:56:09 +0000 (-0400) Subject: hide __pthread_once_full symbol X-Git-Tag: v1.1.21~112 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=a60d579f5edf3d2e6cc8b5e5f33cbf34bd8914c9;p=oweals%2Fmusl.git 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. --- 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