(ppc64_elf_ha_reloc): New function.
(ppc64_elf_brtaken_reloc): New function.
(ppc64_elf_sectoff_reloc): New function.
(ppc64_elf_sectoff_ha_reloc): New function.
(ppc64_elf_toc_reloc): New function.
(ppc64_elf_toc_ha_reloc): New function.
(ppc64_elf_toc64_reloc): New function.
(ppc64_elf_unhandled_reloc): New function.
(ppc64_elf_howto_raw): Use the above.
<R_PPC64_RELATIVE>: Mark pc_relative, pcrel_offset.
<R_PPC64_SECTOFF>: Not pc_relative or pcrel_offset. Fix dst_mask.
<R_PPC64_SECTOFF_DS>: Likewise.
(IS_ABSOLUTE_RELOC): Update.
(struct ppc_link_hash_table): Add have_undefweak.
(ppc64_elf_link_hash_table_create): Init.
(func_desc_adjust): Set have_undefweak.
(ppc64_elf_func_desc_adjust): Call func_desc_adjust earlier. Only
add the .sfpr blr when have_undefweak.
(ppc64_elf_setup_section_lists): Check hash table flavour.
(ppc64_elf_next_input_section): Move output_section->owner test to
ppc64elf.em.
(ppc64_elf_set_toc): Rename to ppc64_elf_toc, remove info param
and relocatable test. Return TOCstart and don't set elf_gp.
(ppc64_elf_relocate_section): Correct BRTAKEN/BRNTAKEN branch
offset calculation. Add assert on weak sym branch tweaks.
* elf64-ppc.h (ppc64_elf_set_toc): Delete.
(ppc64_elf_toc): Declare.
(ppc64_elf_next_input_section): Update.
* emultempl/ppc64elf.em (gld${EMULATION_NAME}_after_allocation):
Adjust for ppc64_elf_set_toc change. #include libbfd.h.
(build_section_lists): Do output_section tests here.
|
||
|---|---|---|
| .. | ||
| aix.em | ||
| armcoff.em | ||
| armelf_oabi.em | ||
| armelf.em | ||
| astring.sed | ||
| beos.em | ||
| elf32.em | ||
| generic.em | ||
| gld960.em | ||
| gld960c.em | ||
| hppaelf.em | ||
| linux.em | ||
| lnk960.em | ||
| m68kcoff.em | ||
| m68kelf.em | ||
| mipsecoff.em | ||
| mipself.em | ||
| mmix-elfnmmo.em | ||
| mmixelf.em | ||
| mmo.em | ||
| needrelax.em | ||
| ostring.sed | ||
| pe.em | ||
| ppc64elf.em | ||
| README | ||
| sh64elf.em | ||
| sunos.em | ||
| ticoff.em | ||
| vanilla.em | ||
The files in this directory are sourced by genscripts.sh, after setting some variables to substitute in, to produce C source files that contain jump tables for each emulation.