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:
		| @@ -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, | ||||
|   | ||||
| @@ -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.  */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user