diff options
author | Thomas Preud'homme <thomas.preudhomme@arm.com> | 2016-09-14 16:02:17 +0100 |
---|---|---|
committer | Thomas Preud'homme <thomas.preudhomme@arm.com> | 2016-09-14 16:03:43 +0100 |
commit | 4f90d84b2f2995829d6af475077598d45ef1d127 (patch) | |
tree | e745bdc7c37b3878e45e4a333f22ab397570ea5a /ld/testsuite/ld-arm | |
parent | e6d042fe27102cb789407ccb2ec1663aa9c65129 (diff) | |
download | gdb-4f90d84b2f2995829d6af475077598d45ef1d127.zip gdb-4f90d84b2f2995829d6af475077598d45ef1d127.tar.gz gdb-4f90d84b2f2995829d6af475077598d45ef1d127.tar.bz2 |
Fix ld --gc-section segfault with ARMv8-M entry function in absolute section
bfd/
2016-09-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
* elf32-arm.c (elf32_arm_gc_mark_extra_sections): Only mark section
not already marked.
ld/
2016-09-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
* testsuite/ld-arm/cmse-veneers.s: Add a test for ARMv8-M Security
Extensions entry functions in absolute section.
* testsuite/ld-arm/cmse-veneers.rd: Adapt expected output accordingly.
Diffstat (limited to 'ld/testsuite/ld-arm')
-rw-r--r-- | ld/testsuite/ld-arm/cmse-veneers.rd | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/cmse-veneers.s | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/ld/testsuite/ld-arm/cmse-veneers.rd b/ld/testsuite/ld-arm/cmse-veneers.rd index 20fad96..2f0fa5f 100644 --- a/ld/testsuite/ld-arm/cmse-veneers.rd +++ b/ld/testsuite/ld-arm/cmse-veneers.rd @@ -1,4 +1,6 @@ #... +[0-9a-f]+ A abs_entry_fct +#... [0-9a-f]+ T glob_entry_fct #... [0-9a-f]+ T glob_entry_veneer1 diff --git a/ld/testsuite/ld-arm/cmse-veneers.s b/ld/testsuite/ld-arm/cmse-veneers.s index d5c57f6..8346888 100644 --- a/ld/testsuite/ld-arm/cmse-veneers.s +++ b/ld/testsuite/ld-arm/cmse-veneers.s @@ -53,6 +53,16 @@ __acle_se_\name: @ Valid setup for entry function without SG veneer entry glob_entry_fct, function, global, entry_fct=nop + @ Valid setup for entry function with absolute address + .align 2 + .global __acle_se_abs_entry_fct + .global abs_entry_fct + .type __acle_se_abs_entry_fct, %function + .type abs_entry_fct, %function +__acle_se_abs_entry_fct = 0x10000 +abs_entry_fct = 0x10004 + .size abs_entry_fct, 0 + .size __acle_se_abs_entry_fct, 0 .else @ Invalid setups for veneer generation (visibility) entry loc_entry_veneer1, function, local |