forked from Imagelibrary/binutils-gdb
Add cantunwind when unwind info does not match start of section.
bfd * elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind when
address in first unwind entry does not match start of section.
tests * ld-arm/arm-elf.exp: New test.
* ld-arm/unwind-mix.d: New file.
* ld-arm/unwind-mix1.s: New file.
* ld-arm/unwind-mix2.s: New file.
This commit is contained in:
committed by
Nick Clifton
parent
ce5e165eae
commit
ac06903dcf
@@ -1,3 +1,9 @@
|
||||
2016-01-12 Yury Usishchev <y.usishchev@samsung.com>
|
||||
|
||||
* elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind
|
||||
when address in first unwind entry does not match start of
|
||||
section.
|
||||
|
||||
2016-01-08 Richard Sandiford <richard.sandiford@arm.com>
|
||||
Jiong Wang <jiong.wang@arm.com>
|
||||
|
||||
|
||||
@@ -11740,6 +11740,18 @@ elf32_arm_fix_exidx_coverage (asection **text_section_order,
|
||||
/* An error? */
|
||||
continue;
|
||||
|
||||
if (last_unwind_type > 0)
|
||||
{
|
||||
unsigned int first_word = bfd_get_32 (ibfd, contents);
|
||||
/* Add cantunwind if first unwind item does not match section
|
||||
start. */
|
||||
if (first_word != sec->vma)
|
||||
{
|
||||
insert_cantunwind_after (last_text_sec, last_exidx_sec);
|
||||
last_unwind_type = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (j = 0; j < hdr->sh_size; j += 8)
|
||||
{
|
||||
unsigned int second_word = bfd_get_32 (ibfd, contents + j + 4);
|
||||
|
||||
Reference in New Issue
Block a user