diff --git a/src/thread/__tls_get_addr.c b/src/thread/__tls_get_addr.c index 84a413d4..6945faa0 100644 --- a/src/thread/__tls_get_addr.c +++ b/src/thread/__tls_get_addr.c @@ -1,16 +1,16 @@ #include #include "pthread_impl.h" +#include "libc.h" + +__attribute__((__visibility__("hidden"))) +void *__tls_get_new(size_t *); void *__tls_get_addr(size_t *v) { pthread_t self = __pthread_self(); -#ifdef SHARED - __attribute__((__visibility__("hidden"))) - void *__tls_get_new(size_t *); if (v[0]<=(size_t)self->dtv[0]) return (char *)self->dtv[v[0]]+v[1]+DTP_OFFSET; return __tls_get_new(v); -#else - return (char *)self->dtv[1]+v[1]+DTP_OFFSET; -#endif } + +weak_alias(__tls_get_addr, __tls_get_new);