mirror of git://git.musl-libc.org/musl
fix inconsistent visibility for internal __tls_get_new function
at the point of call it was declared hidden, but the definition was not hidden. for some toolchains this inconsistency produced textrels without ld-time binding.
This commit is contained in:
parent
da7ccf822c
commit
bc081f628b
|
@ -1051,6 +1051,7 @@ void *__copy_tls(unsigned char *mem)
|
||||||
return td;
|
return td;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__attribute__((__visibility__("hidden")))
|
||||||
void *__tls_get_new(size_t *v)
|
void *__tls_get_new(size_t *v)
|
||||||
{
|
{
|
||||||
pthread_t self = __pthread_self();
|
pthread_t self = __pthread_self();
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include "pthread_impl.h"
|
#include "pthread_impl.h"
|
||||||
#include "libc.h"
|
|
||||||
|
|
||||||
void *__tls_get_new(size_t *) ATTR_LIBC_VISIBILITY;
|
|
||||||
|
|
||||||
void *__tls_get_addr(size_t *v)
|
void *__tls_get_addr(size_t *v)
|
||||||
{
|
{
|
||||||
pthread_t self = __pthread_self();
|
pthread_t self = __pthread_self();
|
||||||
#ifdef SHARED
|
#ifdef SHARED
|
||||||
|
__attribute__((__visibility__("hidden")))
|
||||||
|
void *__tls_get_new(size_t *);
|
||||||
if (v[0]<=(size_t)self->dtv[0])
|
if (v[0]<=(size_t)self->dtv[0])
|
||||||
return (char *)self->dtv[v[0]]+v[1];
|
return (char *)self->dtv[v[0]]+v[1];
|
||||||
return __tls_get_new(v);
|
return __tls_get_new(v);
|
||||||
|
|
Loading…
Reference in New Issue