2009-08-03 H.J. Lu <hongjiu.lu@intel.com>
PR ld/10433 * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Set got to htab->init_got_offset and plt to htab->init_plt_offset when discarding space for dynamic relocations.
This commit is contained in:
parent
92fac5ecb0
commit
004fb7809c
@ -1,3 +1,10 @@
|
||||
2009-08-03 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/10433
|
||||
* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Set got
|
||||
to htab->init_got_offset and plt to htab->init_plt_offset
|
||||
when discarding space for dynamic relocations.
|
||||
|
||||
2009-08-03 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elf32-ppc.c (struct plt_entry): Revise comments.
|
||||
|
@ -185,6 +185,8 @@ _bfd_elf_allocate_ifunc_dyn_relocs (struct bfd_link_info *info,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
htab = elf_hash_table (info);
|
||||
|
||||
/* Return and discard space for dynamic relocations against it if
|
||||
it is never referenced in a non-shared object. */
|
||||
if (!h->ref_regular)
|
||||
@ -192,7 +194,8 @@ _bfd_elf_allocate_ifunc_dyn_relocs (struct bfd_link_info *info,
|
||||
if (h->plt.refcount > 0
|
||||
|| h->got.refcount > 0)
|
||||
abort ();
|
||||
h->got.offset = (bfd_vma) -1;
|
||||
h->got = htab->init_got_offset;
|
||||
h->plt = htab->init_plt_offset;
|
||||
*head = NULL;
|
||||
return TRUE;
|
||||
}
|
||||
@ -203,8 +206,6 @@ _bfd_elf_allocate_ifunc_dyn_relocs (struct bfd_link_info *info,
|
||||
else
|
||||
sizeof_reloc = bed->s->sizeof_rel;
|
||||
|
||||
htab = elf_hash_table (info);
|
||||
|
||||
/* When building a static executable, use .iplt, .igot.plt and
|
||||
.rel[a].iplt sections for STT_GNU_IFUNC symbols. */
|
||||
if (htab->splt != NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user