瀏覽代碼

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.
Rich Felker 10 年之前
父節點
當前提交
1b1cafa50c
共有 5 個文件被更改,包括 10 次插入0 次删除
  1. 2 0
      src/ldso/aarch64/tlsdesc.s
  2. 1 0
      src/ldso/dynlink.c
  3. 2 0
      src/ldso/i386/tlsdesc.s
  4. 3 0
      src/ldso/tlsdesc.c
  5. 2 0
      src/ldso/x86_64/tlsdesc.s

+ 2 - 0
src/ldso/aarch64/tlsdesc.s

@@ -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]!

+ 1 - 0
src/ldso/dynlink.c

@@ -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)

+ 2 - 0
src/ldso/i386/tlsdesc.s

@@ -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

+ 3 - 0
src/ldso/tlsdesc.c

@@ -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;

+ 2 - 0
src/ldso/x86_64/tlsdesc.s

@@ -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