]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
PowerPC64 DT_RELR relative reloc addresses
authorAlan Modra <amodra@gmail.com>
Wed, 2 Mar 2022 13:34:57 +0000 (00:04 +1030)
committerAlan Modra <amodra@gmail.com>
Sun, 13 Mar 2022 12:18:26 +0000 (22:48 +1030)
commite4a35c7319628045302d4c597cb27f1b0a08c858
treebf23ad250b43f5c1dec413ad276f35237787fbbd
parent7183434818ec77ff8d81063c4cd2a5083f89f30a
PowerPC64 DT_RELR relative reloc addresses

Section addresses can change between ppc64_elf_size_stubs and
ppc64_elf_build_stubs due to .eh_frame editing.  The idea of stashing
r_offset final addresses calculated in ppc64_elf_size_stubs for use by
ppc64_elf_build_stubs was never a good idea.  Instead, we need to keep
section/offset pairs.

* elf64-ppc.c (struct ppc_link_hash_table): Delete relr_addr.
Add relr section/offset array.
(append_relr_off): Rewrite.  Update all callers.
(sort_relr): New function.
(ppc64_elf_size_stubs): Adjust to suit new relative reloc stash.
(ppc64_elf_build_stubs): Likewise.

(cherry picked from commit 0aac2413d39d9f6d9e6879a0daa6bd5dea3e0fe3)
(cherry picked from commit e26ff4b5a90a67fc440052f6101464939347b1f2)
bfd/elf64-ppc.c