eliminate use of SHARED macro in __tls_get_addr
authorRich Felker <dalias@aerifal.cx>
Thu, 12 Nov 2015 00:43:56 +0000 (19:43 -0500)
committerRich Felker <dalias@aerifal.cx>
Thu, 12 Nov 2015 00:43:56 +0000 (19:43 -0500)
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.

src/thread/__tls_get_addr.c

index 84a413d4a8cd4be9bdd662b66d10c6fe877bc76b..6945faa060d75ca66a5a4d3b01d34f1178b2cc9f 100644 (file)
@@ -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);