Browse Source

fix inconsistent visibility for internal syscall symbols

Rich Felker 10 years ago
parent
commit
7405cd1e2b

+ 1 - 0
src/internal/aarch64/syscall.s

@@ -1,4 +1,5 @@
 .global __syscall
+.hidden __syscall
 .type __syscall,%function
 __syscall:
 	uxtw x8,w0

+ 1 - 0
src/internal/arm/syscall.s

@@ -1,4 +1,5 @@
 .global __syscall
+.hidden __syscall
 .type __syscall,%function
 __syscall:
 	mov ip,sp

+ 1 - 0
src/internal/i386/syscall.s

@@ -59,6 +59,7 @@ __vsyscall6:
 	ret
 
 .global __syscall
+.hidden __syscall
 .type __syscall,@function
 __syscall:
 	lea 24(%esp),%eax

+ 1 - 0
src/internal/microblaze/syscall.s

@@ -1,4 +1,5 @@
 .global __syscall
+.hidden __syscall
 .type   __syscall,@function
 __syscall:
 	addi    r12, r5, 0              # Save the system call number

+ 1 - 0
src/internal/mips/syscall.s

@@ -1,6 +1,7 @@
 .set    noreorder
 
 .global __syscall
+.hidden __syscall
 .type   __syscall,@function
 __syscall:
 	move    $2, $4

+ 1 - 0
src/internal/or1k/syscall.s

@@ -1,4 +1,5 @@
 .global __syscall
+.hidden __syscall
 .type   __syscall,@function
 __syscall:
 	l.ori	r11, r3, 0

+ 1 - 0
src/internal/powerpc/syscall.s

@@ -1,4 +1,5 @@
 	.global __syscall
+	.hidden __syscall
 	.type   __syscall,@function
 __syscall:
 	mr      0, 3                  # Save the system call number

+ 1 - 0
src/internal/sh/syscall.s

@@ -1,4 +1,5 @@
 .global __syscall
+.hidden __syscall
 .type   __syscall, @function
 __syscall:
 	! The kernel syscall entry point documents that the trap number indicates

+ 1 - 1
src/internal/syscall.h

@@ -17,7 +17,7 @@
 typedef long syscall_arg_t;
 #endif
 
-#if defined(__PIC__) && (100*__GNUC__+__GNUC_MINOR__ >= 303)
+#ifdef SHARED
 __attribute__((visibility("hidden")))
 #endif
 long __syscall_ret(unsigned long), __syscall(syscall_arg_t, ...),

+ 1 - 0
src/internal/x32/syscall.s

@@ -1,4 +1,5 @@
 .global __syscall
+.hidden __syscall
 .type __syscall,@function
 __syscall:
 	movq %rdi,%rax

+ 1 - 0
src/internal/x86_64/syscall.s

@@ -1,4 +1,5 @@
 .global __syscall
+.hidden __syscall
 .type __syscall,@function
 __syscall:
 	movq %rdi,%rax

+ 5 - 0
src/thread/__syscall_cp.c

@@ -1,6 +1,11 @@
 #include "pthread_impl.h"
 #include "syscall.h"
 
+#ifdef SHARED
+__attribute__((__visibility__("hidden")))
+#endif
+long __syscall_cp_c();
+
 static long sccp(syscall_arg_t nr,
                  syscall_arg_t u, syscall_arg_t v, syscall_arg_t w,
                  syscall_arg_t x, syscall_arg_t y, syscall_arg_t z)