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.
This commit is contained in:
Alan Modra 2009-12-17 05:45:25 +00:00
parent 377b190270
commit 6681dfdc8c
2 changed files with 9 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2009-12-17 Alan Modra <amodra@bigpond.net.au>
* 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.
2009-11-28 Joseph Myers <joseph@codesourcery.com>
* common.h (ELFOSABI_FENIXOS, EM_TI_C6000, EM_TI_C2000,

View File

@ -73,10 +73,9 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
#ifndef RELOC_MACROS_GEN_FUNC
/* Fake relocations for branch stubs, only used internally by ld. */
RELOC_NUMBER (R_PPC_RELAX32, 48)
RELOC_NUMBER (R_PPC_RELAX32PC, 49)
RELOC_NUMBER (R_PPC_RELAX32_PLT, 50)
RELOC_NUMBER (R_PPC_RELAX32PC_PLT, 51)
RELOC_NUMBER (R_PPC_RELAX, 48)
RELOC_NUMBER (R_PPC_RELAX_PLT, 49)
RELOC_NUMBER (R_PPC_RELAX_PLTREL24, 50)
#endif
/* Relocs added to support TLS. */