From 72b25ddb77ca0974b6f448a4290d21154a221474 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Tue, 14 Apr 2015 11:39:11 -0400 Subject: [PATCH] use hidden visibility for call from dlsym to internal __dlsym --- src/ldso/aarch64/dlsym.s | 1 + src/ldso/arm/dlsym.s | 1 + src/ldso/dynlink.c | 1 + src/ldso/i386/dlsym.s | 1 + src/ldso/microblaze/dlsym.s | 3 ++- src/ldso/mips/dlsym.s | 1 + src/ldso/or1k/dlsym.s | 3 ++- src/ldso/powerpc/dlsym.s | 1 + src/ldso/sh/dlsym.s | 3 ++- src/ldso/x32/dlsym.s | 1 + src/ldso/x86_64/dlsym.s | 1 + 11 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/ldso/aarch64/dlsym.s b/src/ldso/aarch64/dlsym.s index be2dce52..abaae4d5 100644 --- a/src/ldso/aarch64/dlsym.s +++ b/src/ldso/aarch64/dlsym.s @@ -1,4 +1,5 @@ .global dlsym +.hidden __dlsym .type dlsym,%function dlsym: mov x2,x30 diff --git a/src/ldso/arm/dlsym.s b/src/ldso/arm/dlsym.s index 17c89056..3b88d910 100644 --- a/src/ldso/arm/dlsym.s +++ b/src/ldso/arm/dlsym.s @@ -1,5 +1,6 @@ .text .global dlsym +.hidden __dlsym .type dlsym,%function dlsym: mov r2,lr diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c index 0151f74d..122fc49e 100644 --- a/src/ldso/dynlink.c +++ b/src/ldso/dynlink.c @@ -1598,6 +1598,7 @@ int __dladdr(const void *addr, Dl_info *info) return 1; } +__attribute__((__visibility__("hidden"))) void *__dlsym(void *restrict p, const char *restrict s, void *restrict ra) { void *res; diff --git a/src/ldso/i386/dlsym.s b/src/ldso/i386/dlsym.s index abd53a09..097e30ce 100644 --- a/src/ldso/i386/dlsym.s +++ b/src/ldso/i386/dlsym.s @@ -1,5 +1,6 @@ .text .global dlsym +.hidden __dlsym .type dlsym,@function dlsym: push (%esp) diff --git a/src/ldso/microblaze/dlsym.s b/src/ldso/microblaze/dlsym.s index 63cd638b..ea9d8be0 100644 --- a/src/ldso/microblaze/dlsym.s +++ b/src/ldso/microblaze/dlsym.s @@ -1,5 +1,6 @@ .global dlsym +.hidden __dlsym .type dlsym,@function dlsym: - brid __dlsym@PLT + brid __dlsym add r7, r15, r0 diff --git a/src/ldso/mips/dlsym.s b/src/ldso/mips/dlsym.s index c57b9729..1573e519 100644 --- a/src/ldso/mips/dlsym.s +++ b/src/ldso/mips/dlsym.s @@ -1,5 +1,6 @@ .set noreorder .global dlsym +.hidden __dlsym .type dlsym,@function dlsym: lui $gp, %hi(_gp_disp) diff --git a/src/ldso/or1k/dlsym.s b/src/ldso/or1k/dlsym.s index b2f4dfe3..122475c1 100644 --- a/src/ldso/or1k/dlsym.s +++ b/src/ldso/or1k/dlsym.s @@ -1,5 +1,6 @@ .global dlsym +.hidden __dlsym .type dlsym,@function dlsym: - l.j plt(__dlsym) + l.j __dlsym l.ori r5, r9, 0 diff --git a/src/ldso/powerpc/dlsym.s b/src/ldso/powerpc/dlsym.s index b9fae982..357d5771 100644 --- a/src/ldso/powerpc/dlsym.s +++ b/src/ldso/powerpc/dlsym.s @@ -1,5 +1,6 @@ .text .global dlsym + .hidden __dlsym .type dlsym,@function dlsym: mflr 5 # The return address is arg3. diff --git a/src/ldso/sh/dlsym.s b/src/ldso/sh/dlsym.s index 8258507f..15a8dce8 100644 --- a/src/ldso/sh/dlsym.s +++ b/src/ldso/sh/dlsym.s @@ -1,5 +1,6 @@ .text .global dlsym +.hidden __dlsym .type dlsym, @function dlsym: mov.l L1, r0 @@ -7,4 +8,4 @@ dlsym: 1: mov.l @r15, r6 .align 2 -L1: .long __dlsym@PLT-(1b-.) +L1: .long __dlsym-(1b-.) diff --git a/src/ldso/x32/dlsym.s b/src/ldso/x32/dlsym.s index 3c16616a..d840b955 100644 --- a/src/ldso/x32/dlsym.s +++ b/src/ldso/x32/dlsym.s @@ -1,5 +1,6 @@ .text .global dlsym +.hidden __dlsym .type dlsym,@function dlsym: mov (%rsp),%rdx diff --git a/src/ldso/x86_64/dlsym.s b/src/ldso/x86_64/dlsym.s index 3c16616a..d840b955 100644 --- a/src/ldso/x86_64/dlsym.s +++ b/src/ldso/x86_64/dlsym.s @@ -1,5 +1,6 @@ .text .global dlsym +.hidden __dlsym .type dlsym,@function dlsym: mov (%rsp),%rdx -- 2.25.1