diff options
Diffstat (limited to 'elf/dl-tls.c')
-rw-r--r-- | elf/dl-tls.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/elf/dl-tls.c b/elf/dl-tls.c index 76b8b36..0abb024 100644 --- a/elf/dl-tls.c +++ b/elf/dl-tls.c @@ -809,6 +809,16 @@ update_get_addr (GET_ADDR_ARGS) return (void *) p + GET_ADDR_OFFSET; } +/* For all machines that have a non-macro version of __tls_get_addr, we + want to use rtld_hidden_proto/rtld_hidden_def in order to call the + internal alias for __tls_get_addr from ld.so. This avoids a PLT entry + in ld.so for __tls_get_addr. */ + +#ifndef __tls_get_addr +extern void * __tls_get_addr (GET_ADDR_ARGS); +rtld_hidden_proto (__tls_get_addr) +rtld_hidden_def (__tls_get_addr) +#endif /* The generic dynamic and local dynamic model cannot be used in statically linked applications. */ |