apply hidden visibility to tlsdesc accessor functions

these functions are never called directly; only their addresses are
used, so PLT indirections should never happen unless a broken
application tries to redefine them, but it's still best to make them
hidden.
This commit is contained in:
Rich Felker 2015-04-17 23:29:45 -04:00
parent ca7977b56f
commit 1b1cafa50c
5 changed files with 10 additions and 0 deletions

View File

@ -3,6 +3,7 @@
// return a[1];
// }
.global __tlsdesc_static
.hidden __tlsdesc_static
.type __tlsdesc_static,@function
__tlsdesc_static:
ldr x0,[x0,#8]
@ -19,6 +20,7 @@ __tlsdesc_static:
// return __tls_get_new(p) - tp;
// }
.global __tlsdesc_dynamic
.hidden __tlsdesc_dynamic
.type __tlsdesc_dynamic,@function
__tlsdesc_dynamic:
stp x1,x2,[sp,#-32]!

View File

@ -250,6 +250,7 @@ static struct symdef find_sym(struct dso *dso, const char *s, int need_def)
return def;
}
__attribute__((__visibility__("hidden")))
ptrdiff_t __tlsdesc_static(), __tlsdesc_dynamic();
static void do_relocs(struct dso *dso, size_t *rel, size_t rel_size, size_t stride)

View File

@ -1,5 +1,6 @@
.text
.global __tlsdesc_static
.hidden __tlsdesc_static
.type __tlsdesc_static,@function
__tlsdesc_static:
mov 4(%eax),%eax
@ -8,6 +9,7 @@ __tlsdesc_static:
.hidden __tls_get_new
.global __tlsdesc_dynamic
.hidden __tlsdesc_dynamic
.type __tlsdesc_dynamic,@function
__tlsdesc_dynamic:
mov 4(%eax),%eax

View File

@ -3,6 +3,9 @@
#include <stddef.h>
#include "libc.h"
__attribute__((__visibility__("hidden")))
ptrdiff_t __tlsdesc_static(), __tlsdesc_dynamic();
ptrdiff_t __tlsdesc_static()
{
return 0;

View File

@ -1,5 +1,6 @@
.text
.global __tlsdesc_static
.hidden __tlsdesc_static
.type __tlsdesc_static,@function
__tlsdesc_static:
mov 8(%rax),%rax
@ -8,6 +9,7 @@ __tlsdesc_static:
.hidden __tls_get_new
.global __tlsdesc_dynamic
.hidden __tlsdesc_dynamic
.type __tlsdesc_dynamic,@function
__tlsdesc_dynamic:
mov 8(%rax),%rax