aboutsummaryrefslogtreecommitdiff
path: root/ld/emultempl/armelf.em
diff options
context:
space:
mode:
authorThomas Preud'homme <thomas.preudhomme@arm.com>2016-05-23 09:38:32 +0100
committerThomas Preud'homme <thomas.preudhomme@arm.com>2016-05-23 09:38:32 +0100
commitdaa4adae63f91377fe9b3e8d7421a0ceb4a51e26 (patch)
tree28fe2fb299055c43a3cca79e0e1803a985b3bd13 /ld/emultempl/armelf.em
parent37773e7803b370802302719a48c9c46f64c602b4 (diff)
downloadgdb-daa4adae63f91377fe9b3e8d7421a0ceb4a51e26.zip
gdb-daa4adae63f91377fe9b3e8d7421a0ceb4a51e26.tar.gz
gdb-daa4adae63f91377fe9b3e8d7421a0ceb4a51e26.tar.bz2
Support for dedicated output section for some ARM veneer types
2016-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com> bfd/ * bfd-in.h (bfd_elf32_arm_keep_private_stub_output_sections): Declare bfd hook. * bfd-in2.h: Regenerate. * elf32-arm.c (arm_dedicated_stub_output_section_required): New function. (arm_dedicated_stub_output_section_required_alignment): Likewise. (arm_dedicated_stub_output_section_name): Likewise. (arm_dedicated_stub_input_section_ptr): Likewise. (elf32_arm_create_or_find_stub_sec): Add stub type parameter and function description comment. Add support for dedicated output stub section to given stub types. (elf32_arm_add_stub): Add a stub type parameter and pass it down to elf32_arm_create_or_find_stub_sec. (elf32_arm_create_stub): Pass stub type down to elf32_arm_add_stub. (elf32_arm_size_stubs): Pass stub type when calling elf32_arm_create_or_find_stub_sec for Cortex-A8 erratum veneers. (bfd_elf32_arm_keep_private_stub_output_sections): New function. ld/ * emultempl/armelf.em (arm_elf_before_allocation): Call bfd_elf32_arm_keep_private_stub_output_sections before generic before_allocation function.
Diffstat (limited to 'ld/emultempl/armelf.em')
-rw-r--r--ld/emultempl/armelf.em4
1 files changed, 4 insertions, 0 deletions
diff --git a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em
index caa2fbf..6074824 100644
--- a/ld/emultempl/armelf.em
+++ b/ld/emultempl/armelf.em
@@ -83,6 +83,10 @@ arm_elf_before_allocation (void)
/* Auto-select Cortex-A8 erratum fix if it wasn't explicitly specified. */
bfd_elf32_arm_set_cortex_a8_fix (link_info.output_bfd, &link_info);
+ /* Ensure the output sections of veneers needing a dedicated one is not
+ removed. */
+ bfd_elf32_arm_keep_private_stub_output_sections (&link_info);
+
/* We should be able to set the size of the interworking stub section. We
can't do it until later if we have dynamic sections, though. */
if (elf_hash_table (&link_info)->dynobj == NULL)