summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2015-11-11 19:43:56 -0500
committerRich Felker <dalias@aerifal.cx>2015-11-11 19:43:56 -0500
commit4aaf879eb08a22c501b43d8604e67614f7dbc55f (patch)
treec62e2d96feb6fbb5910a86b0eb963971e01edccf
parent8a8fdf6398b85c99dffb237e47fa577e2ddc9e77 (diff)
downloadmusl-4aaf879eb08a22c501b43d8604e67614f7dbc55f.tar.gz
musl-4aaf879eb08a22c501b43d8604e67614f7dbc55f.tar.bz2
musl-4aaf879eb08a22c501b43d8604e67614f7dbc55f.tar.xz
musl-4aaf879eb08a22c501b43d8604e67614f7dbc55f.zip
eliminate use of SHARED macro in __tls_get_addr
this was only a tiny optimization, and static-linked binaries should not be calling __tls_get_addr anyway since the linker is supposed to perform relaxation, resulting in use of the local-exec TLS model.
-rw-r--r--src/thread/__tls_get_addr.c12
1 files changed, 6 insertions, 6 deletions
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 <stddef.h>
#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);