diff options
| author | Rich Felker <dalias@aerifal.cx> | 2015-04-14 10:42:44 -0400 | 
|---|---|---|
| committer | Rich Felker <dalias@aerifal.cx> | 2015-04-14 10:42:44 -0400 | 
| commit | bc081f628b51337b525ca2d53aeff1b971f092f5 (patch) | |
| tree | c09ccb284057973bb978adbdfecbfcd2d655a227 /src | |
| parent | da7ccf822c2a7f0413868b8d99029907f1d61a41 (diff) | |
| download | musl-bc081f628b51337b525ca2d53aeff1b971f092f5.tar.gz | |
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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ldso/dynlink.c | 1 | ||||
| -rw-r--r-- | src/thread/__tls_get_addr.c | 5 | 
2 files changed, 3 insertions, 3 deletions
diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c index 46183ce7..0151f74d 100644 --- a/src/ldso/dynlink.c +++ b/src/ldso/dynlink.c @@ -1051,6 +1051,7 @@ void *__copy_tls(unsigned char *mem)  	return td;  } +__attribute__((__visibility__("hidden")))  void *__tls_get_new(size_t *v)  {  	pthread_t self = __pthread_self(); diff --git a/src/thread/__tls_get_addr.c b/src/thread/__tls_get_addr.c index 28ec7f02..36333967 100644 --- a/src/thread/__tls_get_addr.c +++ b/src/thread/__tls_get_addr.c @@ -1,13 +1,12 @@  #include <stddef.h>  #include "pthread_impl.h" -#include "libc.h" - -void *__tls_get_new(size_t *) ATTR_LIBC_VISIBILITY;  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];  	return __tls_get_new(v);  | 
