mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 14:39:09 +08:00
2000-04-27 H.J. Lu <hjl@gnu.org>
* elf.c (_bfd_elf_link_hash_hide_symbol): Set dynindx to -1 only for ELF_LINK_FORCED_LOCAL. * elf32-hppa.c (elf32_hppa_hide_symbol): Likewise. * elf32-mips.c (_bfd_mips_elf_hide_symbol): Likewise. * elfxx-ia64.c (elfNN_ia64_hash_hide_symbol): Likewise. * elflink.h (elf_fix_symbol_flags): Set ELF_LINK_FORCED_LOCAL if the symbol has hidden or internal visibility.
This commit is contained in:
@ -1,3 +1,14 @@
|
|||||||
|
2001-04-30 H.J. Lu <hjl@gnu.org>
|
||||||
|
|
||||||
|
* elf.c (_bfd_elf_link_hash_hide_symbol): Set dynindx to -1
|
||||||
|
only for ELF_LINK_FORCED_LOCAL.
|
||||||
|
* elf32-hppa.c (elf32_hppa_hide_symbol): Likewise.
|
||||||
|
* elf32-mips.c (_bfd_mips_elf_hide_symbol): Likewise.
|
||||||
|
* elfxx-ia64.c (elfNN_ia64_hash_hide_symbol): Likewise.
|
||||||
|
|
||||||
|
* elflink.h (elf_fix_symbol_flags): Set ELF_LINK_FORCED_LOCAL
|
||||||
|
if the symbol has hidden or internal visibility.
|
||||||
|
|
||||||
2001-04-30 Alan Modra <amodra@one.net.au>
|
2001-04-30 Alan Modra <amodra@one.net.au>
|
||||||
|
|
||||||
* elf32-hppa.c (final_link_relocate): Branch to .+8 for
|
* elf32-hppa.c (final_link_relocate): Branch to .+8 for
|
||||||
|
@ -1014,8 +1014,9 @@ _bfd_elf_link_hash_hide_symbol (info, h)
|
|||||||
struct elf_link_hash_entry *h;
|
struct elf_link_hash_entry *h;
|
||||||
{
|
{
|
||||||
h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
|
h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
|
||||||
h->dynindx = -1;
|
|
||||||
h->plt.offset = (bfd_vma) -1;
|
h->plt.offset = (bfd_vma) -1;
|
||||||
|
if ((h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0)
|
||||||
|
h->dynindx = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize an ELF linker hash table. */
|
/* Initialize an ELF linker hash table. */
|
||||||
|
@ -1863,7 +1863,8 @@ elf32_hppa_hide_symbol (info, h)
|
|||||||
struct bfd_link_info *info ATTRIBUTE_UNUSED;
|
struct bfd_link_info *info ATTRIBUTE_UNUSED;
|
||||||
struct elf_link_hash_entry *h;
|
struct elf_link_hash_entry *h;
|
||||||
{
|
{
|
||||||
h->dynindx = -1;
|
if ((h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0)
|
||||||
|
h->dynindx = -1;
|
||||||
if (! ((struct elf32_hppa_link_hash_entry *) h)->plabel)
|
if (! ((struct elf32_hppa_link_hash_entry *) h)->plabel)
|
||||||
{
|
{
|
||||||
h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
|
h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
|
||||||
|
@ -4002,7 +4002,8 @@ _bfd_mips_elf_hide_symbol (info, h)
|
|||||||
|
|
||||||
h->root.elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
|
h->root.elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
|
||||||
h->root.plt.offset = (bfd_vma) -1;
|
h->root.plt.offset = (bfd_vma) -1;
|
||||||
h->root.dynindx = -1;
|
if ((h->root.elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0)
|
||||||
|
h->root.dynindx = -1;
|
||||||
|
|
||||||
/* FIXME: Do we allocate too much GOT space here? */
|
/* FIXME: Do we allocate too much GOT space here? */
|
||||||
g->local_gotno++;
|
g->local_gotno++;
|
||||||
|
@ -3541,6 +3541,9 @@ elf_fix_symbol_flags (h, eif)
|
|||||||
{
|
{
|
||||||
struct elf_backend_data *bed;
|
struct elf_backend_data *bed;
|
||||||
bed = get_elf_backend_data (elf_hash_table (eif->info)->dynobj);
|
bed = get_elf_backend_data (elf_hash_table (eif->info)->dynobj);
|
||||||
|
if (ELF_ST_VISIBILITY (h->other) == STV_INTERNAL
|
||||||
|
|| ELF_ST_VISIBILITY (h->other) == STV_HIDDEN)
|
||||||
|
h->elf_link_hash_flags |= ELF_LINK_FORCED_LOCAL;
|
||||||
(*bed->elf_backend_hide_symbol) (eif->info, h);
|
(*bed->elf_backend_hide_symbol) (eif->info, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1524,7 +1524,8 @@ elfNN_ia64_hash_hide_symbol (info, xh)
|
|||||||
h = (struct elfNN_ia64_link_hash_entry *)xh;
|
h = (struct elfNN_ia64_link_hash_entry *)xh;
|
||||||
|
|
||||||
h->root.elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
|
h->root.elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT;
|
||||||
h->root.dynindx = -1;
|
if ((h->root.elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0)
|
||||||
|
h->root.dynindx = -1;
|
||||||
|
|
||||||
for (dyn_i = h->info; dyn_i; dyn_i = dyn_i->next)
|
for (dyn_i = h->info; dyn_i; dyn_i = dyn_i->next)
|
||||||
dyn_i->want_plt2 = 0;
|
dyn_i->want_plt2 = 0;
|
||||||
|
Reference in New Issue
Block a user