PR ld/11088
commitea896d38863b5bf030121cc9db19577f903109a7
authorAlan Modra <amodra@bigpond.net.au>
Thu, 17 Dec 2009 05:45:25 +0000 (17 05:45 +0000)
committerAlan Modra <amodra@bigpond.net.au>
Thu, 17 Dec 2009 05:45:25 +0000 (17 05:45 +0000)
treed74e1305b45cf2118f4da1fe8303603e5bcbaa72
parent4f5fe1e72959f303b7988b500a7c0ffc44501720
PR ld/11088
include/elf/
* ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC, R_PPC_RELAX32_PLT,
R_PPC_RELAX32PC_PLT): Delete.
(R_PPC_RELAX, R_PPC_RELAX_PLT, R_PPC_RELAX_PLTREL24): Define.
bfd/
* elf32-ppc.c (update_plt_info): Clear sec here when addend is
less than 32768..
(ppc_elf_check_relocs): ..rather than doing so here.  Ignore new
relax relocs.
(ppc_elf_gc_sweep_hook): Don't segfault when symbol hiding has
removed plt_entry records.
(ppc_elf_tls_setup): Handle PIE calls to __tls_get_addr correctly.
(ppc_elf_tls_optimize): Likewise.  Also dec __tls_get_addr refcount
when optimizing code using new tlsgd and tlsld marker relocs.
(ppc_elf_relax_section): Differentiate relaxed PLTREL24 relocs
from ADDR24 relocs using plt or glink.  Don't clear the addend
for R_PPC_RELAX_PLTREL24.
(ppc_elf_relocate_section): Correctly handle addends on relaxed
PLTREL24 relocs.
bfd/ChangeLog
bfd/elf32-ppc.c
include/elf/ChangeLog
include/elf/ppc.h