[ARM] Implement FDPIC relocations.
authorChristophe Lyon <christophe.lyon@st.com>
Tue, 20 Mar 2018 09:55:09 +0000 (10:55 +0100)
committerChristophe Lyon <christophe.lyon@linaro.org>
Wed, 25 Apr 2018 20:53:01 +0000 (20:53 +0000)
commite8b09b87102504a110f839e67a712094d63dcbab
treefa39cf95bc6c60f1d8410ff5eea24a4ca3e1b7d5
parent188fd7aea619d9f66a822bad881d8f56892b60aa
[ARM] Implement FDPIC relocations.

This is the main BFD patch, that enables the linker to actually handle
the FDPIC relocations.

2018-04-25  Christophe Lyon  <christophe.lyon@st.com>
Mickaël Guêné  <mickael.guene@st.com>

bfd/
* elf32-arm.c (struct fdpic_local): New.
(elf_arm_obj_tdata): Add local_fdpic_cnts field.
(elf32_arm_local_fdpic_cnts): New.
(struct fdpic_global): New.
(elf32_arm_link_hash_entry): Add fdpic_cnts field.
(elf32_arm_link_hash_table): Add srofixup field.
(arm_elf_add_rofixup): New.
(arm_elf_fill_funcdesc): New.
(elf32_arm_link_hash_newfunc): Handle fdpic_cnts.
(elf32_arm_allocate_local_sym_info): Likewise.
(create_got_section): Create .rofixup section.
(elf32_arm_copy_indirect_symbol): Handle fdpic_cnts.
(bfd_elf32_arm_set_target_params): Handle FDPIC.
(elf32_arm_final_link_relocate): Likewise.
(elf32_arm_check_relocs): Likewise.
(allocate_dynrelocs_for_symbol): Likewise.
(elf32_arm_size_dynamic_sections): Likewise.
(elf32_arm_finish_dynamic_sections): Likewise.
(elf32_arm_output_arch_local_syms): Likewise.
(elf32_arm_fdpic_omit_section_dynsym): New.

ld/
* emulparams/armelf_linux_fdpiceabi.sh: Add .rofixup section.
bfd/ChangeLog
bfd/elf32-arm.c
ld/ChangeLog
ld/emulparams/armelf_linux_fdpiceabi.sh