PR ld/11375
* elf64-ppc.c (ppc_type_of_stub): Always set *hash to the function descriptor symbol if there is one, not just for plt stubs. (ppc64_elf_relocate_section): Use fdh on all ppc_get_stub_entry calls.
This commit is contained in:
parent
00ae8fef88
commit
7b8f66752f
|
@ -1,3 +1,10 @@
|
||||||
|
2010-03-13 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
PR ld/11375
|
||||||
|
* elf64-ppc.c (ppc_type_of_stub): Always set *hash to the
|
||||||
|
function descriptor symbol if there is one, not just for plt stubs.
|
||||||
|
(ppc64_elf_relocate_section): Use fdh on all ppc_get_stub_entry calls.
|
||||||
|
|
||||||
2010-03-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
2010-03-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||||
|
|
||||||
* elflink.c (bfd_elf_size_dynamic_sections): Don't emit base
|
* elflink.c (bfd_elf_size_dynamic_sections): Don't emit base
|
||||||
|
|
|
@ -8976,13 +8976,15 @@ ppc_type_of_stub (asection *input_sec,
|
||||||
struct ppc_link_hash_entry *fdh = h;
|
struct ppc_link_hash_entry *fdh = h;
|
||||||
if (h->oh != NULL
|
if (h->oh != NULL
|
||||||
&& h->oh->is_func_descriptor)
|
&& h->oh->is_func_descriptor)
|
||||||
fdh = ppc_follow_link (h->oh);
|
{
|
||||||
|
fdh = ppc_follow_link (h->oh);
|
||||||
|
*hash = fdh;
|
||||||
|
}
|
||||||
|
|
||||||
for (ent = fdh->elf.plt.plist; ent != NULL; ent = ent->next)
|
for (ent = fdh->elf.plt.plist; ent != NULL; ent = ent->next)
|
||||||
if (ent->addend == rel->r_addend
|
if (ent->addend == rel->r_addend
|
||||||
&& ent->plt.offset != (bfd_vma) -1)
|
&& ent->plt.offset != (bfd_vma) -1)
|
||||||
{
|
{
|
||||||
*hash = fdh;
|
|
||||||
*plt_ent = ent;
|
*plt_ent = ent;
|
||||||
return ppc_stub_plt_call;
|
return ppc_stub_plt_call;
|
||||||
}
|
}
|
||||||
|
@ -11933,7 +11935,7 @@ ppc64_elf_relocate_section (bfd *output_bfd,
|
||||||
>= 2 * max_br_offset)
|
>= 2 * max_br_offset)
|
||||||
&& r_type != R_PPC64_ADDR14_BRTAKEN
|
&& r_type != R_PPC64_ADDR14_BRTAKEN
|
||||||
&& r_type != R_PPC64_ADDR14_BRNTAKEN)
|
&& r_type != R_PPC64_ADDR14_BRNTAKEN)
|
||||||
stub_entry = ppc_get_stub_entry (input_section, sec, h, rel,
|
stub_entry = ppc_get_stub_entry (input_section, sec, fdh, rel,
|
||||||
htab);
|
htab);
|
||||||
|
|
||||||
if (stub_entry != NULL)
|
if (stub_entry != NULL)
|
||||||
|
|
Loading…
Reference in New Issue