diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2003-05-15 14:54:47 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2003-05-15 14:54:47 +0000 |
commit | c1be741f92411606487a75e08b4fee9c57ec8f0e (patch) | |
tree | 45a81f10721be04ab05958ce25f200a1c3575a75 /bfd/elflink.c | |
parent | ae2f03ac167ef20ec3765edfb03bbe2fb7f32a8b (diff) | |
download | gdb-c1be741f92411606487a75e08b4fee9c57ec8f0e.zip gdb-c1be741f92411606487a75e08b4fee9c57ec8f0e.tar.gz gdb-c1be741f92411606487a75e08b4fee9c57ec8f0e.tar.bz2 |
2003-05-15 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (_bfd_elf_fix_symbol_flags): Also hide protected
symbol.
Diffstat (limited to 'bfd/elflink.c')
-rw-r--r-- | bfd/elflink.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/bfd/elflink.c b/bfd/elflink.c index 0519459..bb5361e 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -2427,17 +2427,14 @@ _bfd_elf_fix_symbol_flags (h, eif) /* If -Bsymbolic was used (which means to bind references to global symbols to the definition within the shared object), and this symbol was defined in a regular object, then it actually doesn't - need a PLT entry, and we can accomplish that by forcing it local. - Likewise, if the symbol has hidden or internal visibility. - FIXME: It might be that we also do not need a PLT for other - non-hidden visibilities, but we would have to tell that to the - backend specifically; we can't just clear PLT-related data here. */ + need a PLT entry. Likewise, if the symbol has non-default + visibility. If the symbol has hidden or internal visibility, we + will force it local. */ if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0 && eif->info->shared && is_elf_hash_table (eif->info) && (eif->info->symbolic - || ELF_ST_VISIBILITY (h->other) == STV_INTERNAL - || ELF_ST_VISIBILITY (h->other) == STV_HIDDEN) + || ELF_ST_VISIBILITY (h->other) != STV_DEFAULT) && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0) { struct elf_backend_data *bed; |