* elf-m10300.c (_bfd_mn10300_elf_finish_dynamic_symbol): Use the
cached hgot entry to check for _GLOBAL_OFFSET_TABLE_. * elf32-arm.c (elf32_arm_finish_dynamic_symbol): Likewise. * elf32-bfin.c (bfin_finish_dynamic_symbol): Likewise. * elf32-cris.c (elf_cris_finish_dynamic_symbol): Likewise. * elf32-hppa.c (elf32_hppa_finish_dynamic_symbol): Likewise. * elf32-i386.c (elf_i386_finish_dynamic_symbol): Likewise. * elf32-m32r.c (m32r_elf_finish_dynamic_symbol): Likewise. * elf32-m68k.c (elf_m68k_finish_dynamic_symbol): Likewise. * elf32-sh.c (sh_elf_finish_dynamic_symbol): Likewise. * elf32-vax.c (elf_vax_finish_dynamic_symbol): Likewise. * elf32-xtensa.c (elf_xtensa_finish_dynamic_symbol): Likewise. * elf64-sh64.c (sh64_elf64_finish_dynamic_symbol): Likewise. * elf64-x86-64.c (elf64_x86_64_finish_dynamic_symbol): Likewise. * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Likewise. * elf32-s390.c (elf_s390_finish_dynamic_symbol): Likewise. Also use the cached hplt entry to check for _PROCEDURE_LINKAGE_TABLE_. * elf64-alpha.c (elf64_alpha_finish_dynamic_symbol): Likewise. * elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise. * elfxx-ia64.c (elfNN_ia64_finish_dynamic_symbol): Likewise. * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Likewise.
This commit is contained in:
parent
691342f948
commit
22edb2f164
20 changed files with 48 additions and 25 deletions
|
@ -1,3 +1,27 @@
|
|||
2006-02-27 Richard Sandiford <richard@codesourcery.com>
|
||||
|
||||
* elf-m10300.c (_bfd_mn10300_elf_finish_dynamic_symbol): Use the
|
||||
cached hgot entry to check for _GLOBAL_OFFSET_TABLE_.
|
||||
* elf32-arm.c (elf32_arm_finish_dynamic_symbol): Likewise.
|
||||
* elf32-bfin.c (bfin_finish_dynamic_symbol): Likewise.
|
||||
* elf32-cris.c (elf_cris_finish_dynamic_symbol): Likewise.
|
||||
* elf32-hppa.c (elf32_hppa_finish_dynamic_symbol): Likewise.
|
||||
* elf32-i386.c (elf_i386_finish_dynamic_symbol): Likewise.
|
||||
* elf32-m32r.c (m32r_elf_finish_dynamic_symbol): Likewise.
|
||||
* elf32-m68k.c (elf_m68k_finish_dynamic_symbol): Likewise.
|
||||
* elf32-sh.c (sh_elf_finish_dynamic_symbol): Likewise.
|
||||
* elf32-vax.c (elf_vax_finish_dynamic_symbol): Likewise.
|
||||
* elf32-xtensa.c (elf_xtensa_finish_dynamic_symbol): Likewise.
|
||||
* elf64-sh64.c (sh64_elf64_finish_dynamic_symbol): Likewise.
|
||||
* elf64-x86-64.c (elf64_x86_64_finish_dynamic_symbol): Likewise.
|
||||
* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Likewise.
|
||||
* elf32-s390.c (elf_s390_finish_dynamic_symbol): Likewise. Also use
|
||||
the cached hplt entry to check for _PROCEDURE_LINKAGE_TABLE_.
|
||||
* elf64-alpha.c (elf64_alpha_finish_dynamic_symbol): Likewise.
|
||||
* elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
|
||||
* elfxx-ia64.c (elfNN_ia64_finish_dynamic_symbol): Likewise.
|
||||
* elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Likewise.
|
||||
|
||||
2006-02-25 Richard Sandiford <richard@codesourcery.com>
|
||||
|
||||
* elf-bfd.h (elf_link_hash_table): Add hplt field.
|
||||
|
|
|
@ -4502,7 +4502,7 @@ _bfd_mn10300_elf_finish_dynamic_symbol (output_bfd, info, h, sym)
|
|||
|
||||
/* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
|
||||
|| h == elf_hash_table (info)->hgot)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -6866,7 +6866,7 @@ elf32_arm_finish_dynamic_symbol (bfd * output_bfd, struct bfd_link_info * info,
|
|||
|
||||
/* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
|
||||
|| h == htab->root.hgot)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -2337,7 +2337,7 @@ fprintf(stderr, "*** check this relocation %s\n", __FUNCTION__);
|
|||
}
|
||||
/* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
|
||||
|| h == elf_hash_table (info)->hgot)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -1769,7 +1769,7 @@ elf_cris_finish_dynamic_symbol (output_bfd, info, h, sym)
|
|||
|
||||
/* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
|
||||
|| h == elf_hash_table (info)->hgot)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -4057,7 +4057,7 @@ elf32_hppa_finish_dynamic_symbol (bfd *output_bfd,
|
|||
/* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */
|
||||
if (eh->root.root.string[0] == '_'
|
||||
&& (strcmp (eh->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (eh->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0))
|
||||
|| eh == htab->etab.hgot))
|
||||
{
|
||||
sym->st_shndx = SHN_ABS;
|
||||
}
|
||||
|
|
|
@ -3638,8 +3638,7 @@ elf_i386_finish_dynamic_symbol (bfd *output_bfd,
|
|||
On VxWorks, the _GLOBAL_OFFSET_TABLE_ symbol is not absolute: it
|
||||
is relative to the ".got" section. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| (strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0
|
||||
&& !htab->is_vxworks))
|
||||
|| (!htab->is_vxworks && h == htab->elf.hgot))
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -3358,7 +3358,7 @@ m32r_elf_finish_dynamic_symbol (bfd *output_bfd,
|
|||
|
||||
/* Mark some specially defined symbols as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
|
||||
|| h == htab->root.hgot)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -2140,7 +2140,7 @@ elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym)
|
|||
|
||||
/* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
|
||||
|| h == elf_hash_table (info)->hgot)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -3309,8 +3309,8 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
|
|||
|
||||
/* Mark some specially defined symbols as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0
|
||||
|| strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0)
|
||||
|| h == htab->elf.hgot
|
||||
|| h == htab->elf.hplt)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -7036,7 +7036,7 @@ sh_elf_finish_dynamic_symbol (bfd *output_bfd, struct bfd_link_info *info,
|
|||
|
||||
/* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
|
||||
|| h == htab->root.hgot)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -1954,7 +1954,7 @@ elf_vax_finish_dynamic_symbol (bfd *output_bfd, struct bfd_link_info *info,
|
|||
|
||||
/* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
|
||||
|| h == elf_hash_table (info)->hgot)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -2384,7 +2384,7 @@ elf_xtensa_finish_dynamic_symbol (bfd *output_bfd ATTRIBUTE_UNUSED,
|
|||
|
||||
/* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
|
||||
|| h == elf_hash_table (info)->hgot)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -4717,8 +4717,8 @@ elf64_alpha_finish_dynamic_symbol (bfd *output_bfd, struct bfd_link_info *info,
|
|||
|
||||
/* Mark some specially defined symbols as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0
|
||||
|| strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0)
|
||||
|| h == elf_hash_table (info)->hgot
|
||||
|| h == elf_hash_table (info)->hplt)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -3252,8 +3252,8 @@ elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym)
|
|||
|
||||
/* Mark some specially defined symbols as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0
|
||||
|| strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0)
|
||||
|| h == htab->elf.hgot
|
||||
|| h == htab->elf.hplt)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -3889,7 +3889,7 @@ sh64_elf64_finish_dynamic_symbol (bfd *output_bfd,
|
|||
|
||||
/* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
|
||||
|| h == elf_hash_table (info)->hgot)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -3131,7 +3131,7 @@ elf64_x86_64_finish_dynamic_symbol (bfd *output_bfd,
|
|||
|
||||
/* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
|
||||
|| h == htab->elf.hgot)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -4835,8 +4835,8 @@ elfNN_ia64_finish_dynamic_symbol (output_bfd, info, h, sym)
|
|||
|
||||
/* Mark some specially defined symbols as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0
|
||||
|| strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0)
|
||||
|| h == ia64_info->root.hgot
|
||||
|| h == ia64_info->root.hplt)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -7492,7 +7492,7 @@ _bfd_mips_elf_finish_dynamic_symbol (bfd *output_bfd,
|
|||
/* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */
|
||||
name = h->root.root.string;
|
||||
if (strcmp (name, "_DYNAMIC") == 0
|
||||
|| strcmp (name, "_GLOBAL_OFFSET_TABLE_") == 0)
|
||||
|| h == elf_hash_table (info)->hgot)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
else if (strcmp (name, "_DYNAMIC_LINK") == 0
|
||||
|| strcmp (name, "_DYNAMIC_LINKING") == 0)
|
||||
|
|
|
@ -3578,8 +3578,8 @@ _bfd_sparc_elf_finish_dynamic_symbol (bfd *output_bfd,
|
|||
|
||||
/* Mark some specially defined symbols as absolute. */
|
||||
if (strcmp (h->root.root.string, "_DYNAMIC") == 0
|
||||
|| strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0
|
||||
|| strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0)
|
||||
|| h == htab->elf.hgot
|
||||
|| h == htab->elf.hplt)
|
||||
sym->st_shndx = SHN_ABS;
|
||||
|
||||
return TRUE;
|
||||
|
|
Loading…
Reference in a new issue