aboutsummaryrefslogtreecommitdiff
path: root/bfd/ChangeLog
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2009-07-29 14:56:38 +0000
committerAlan Modra <amodra@gmail.com>2009-07-29 14:56:38 +0000
commit25f231068e4cddb11c8129980dc40cba1d42e4c5 (patch)
treef5a4bb1509f59d2b57d85f7939111c3d47afdd10 /bfd/ChangeLog
parent28ec585feaa018f38c7c0fda2b833d91568d5745 (diff)
downloadgdb-25f231068e4cddb11c8129980dc40cba1d42e4c5.zip
gdb-25f231068e4cddb11c8129980dc40cba1d42e4c5.tar.gz
gdb-25f231068e4cddb11c8129980dc40cba1d42e4c5.tar.bz2
* elf32-ppc.c (ppc_elf_check_relocs): Always set up sections
used by indirect function support. Count dynamic relocs for ifunc syms. (ppc_elf_adjust_dynamic_symbol): Tweak for ifunc. (allocate_dynrelocs): Allocate all non-dynamic ifunc plt entries in iplt and their relocs in reliplt. Don't make ifunc syms dynamic. Allocate got entry relocs for non-dynamic ifunc in reliplt. Handle other dynamic relocs for ifunc. (ppc_elf_size_dynamic_sections): Alloc dyn relocs for static ifunc in reliplt, likewise relocs for got against local ifunc. Typo fix on reliplt size adjust. (ppc_elf_relocate_section): Don't use plt scheme of allocating relocs 1-1 with entries for iplt, instead just add using reloc_count. Write got relocs and dyn relocs for ifunc to reliplt. Error on invalid ifunc dyn relocs. (ppc_elf_finish_dynamic_symbol): Adjust for non-dynamic ifunc plt in iplt/reliplt. * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_JMP_IREL, R_PPC64_REL16, R_PPC64_REL16_LO, R_PPC64_REL16_HI, R_PPC64_REL16_HA. (ppc64_elf_reloc_type_lookup): Handle new relocs. (ppc64_elf_check_relocs): Likewise. Count dyn relocs for ifunc. (allocate_dynrelocs): As for elf32-ppc.c above. (ppc64_elf_size_dynamic_sections): Likewise. (ppc_build_one_stub): Put non-dynamic ifunc plt call stubs in iplt, and their relocs in reliplt. Use R_PPC64_JMP_IREL. (ppc_size_one_stub): Similarly. (ppc64_elf_relocate_section): As for elf32-ppc.c above. Handle new relocs too. (ppc64_elf_finish_dynamic_symbol): As for elf32-ppc.c above.
Diffstat (limited to 'bfd/ChangeLog')
-rw-r--r--bfd/ChangeLog32
1 files changed, 32 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 5d3be83..5a10493 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,35 @@
+2009-07-30 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-ppc.c (ppc_elf_check_relocs): Always set up sections
+ used by indirect function support. Count dynamic relocs for
+ ifunc syms.
+ (ppc_elf_adjust_dynamic_symbol): Tweak for ifunc.
+ (allocate_dynrelocs): Allocate all non-dynamic ifunc plt entries
+ in iplt and their relocs in reliplt. Don't make ifunc syms
+ dynamic. Allocate got entry relocs for non-dynamic ifunc in
+ reliplt. Handle other dynamic relocs for ifunc.
+ (ppc_elf_size_dynamic_sections): Alloc dyn relocs for static
+ ifunc in reliplt, likewise relocs for got against local ifunc.
+ Typo fix on reliplt size adjust.
+ (ppc_elf_relocate_section): Don't use plt scheme of allocating
+ relocs 1-1 with entries for iplt, instead just add using
+ reloc_count. Write got relocs and dyn relocs for ifunc to reliplt.
+ Error on invalid ifunc dyn relocs.
+ (ppc_elf_finish_dynamic_symbol): Adjust for non-dynamic ifunc plt
+ in iplt/reliplt.
+ * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_JMP_IREL,
+ R_PPC64_REL16, R_PPC64_REL16_LO, R_PPC64_REL16_HI, R_PPC64_REL16_HA.
+ (ppc64_elf_reloc_type_lookup): Handle new relocs.
+ (ppc64_elf_check_relocs): Likewise. Count dyn relocs for ifunc.
+ (allocate_dynrelocs): As for elf32-ppc.c above.
+ (ppc64_elf_size_dynamic_sections): Likewise.
+ (ppc_build_one_stub): Put non-dynamic ifunc plt call stubs in iplt,
+ and their relocs in reliplt. Use R_PPC64_JMP_IREL.
+ (ppc_size_one_stub): Similarly.
+ (ppc64_elf_relocate_section): As for elf32-ppc.c above. Handle new
+ relocs too.
+ (ppc64_elf_finish_dynamic_symbol): As for elf32-ppc.c above.
+
2009-07-29 Hans-Peter Nilsson <hp@bitrange.com>
* elf64-mmix.c (mmix_elf_relax_section): Revert 2009-05-27