You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
938 B
21 lines
938 B
7 years ago
|
diff -rup binutils-2.27.orig/bfd/elf-eh-frame.c binutils-2.27/bfd/elf-eh-frame.c
|
||
|
--- binutils-2.27.orig/bfd/elf-eh-frame.c 2017-01-16 17:27:46.411632857 +0000
|
||
|
+++ binutils-2.27/bfd/elf-eh-frame.c 2017-01-16 17:30:03.663437755 +0000
|
||
|
@@ -2296,7 +2296,15 @@ write_dwarf_eh_frame_hdr (bfd *abfd, str
|
||
|
!= sec->output_section->vma + val))
|
||
|
overflow = TRUE;
|
||
|
bfd_put_32 (abfd, val, contents + EH_FRAME_HDR_SIZE + i * 8 + 8);
|
||
|
- if (i != 0
|
||
|
+ if (i > 0
|
||
|
+ && hdr_info->u.dwarf.array[i].initial_loc
|
||
|
+ == hdr_info->u.dwarf.array[i - 1].initial_loc
|
||
|
+ && hdr_info->u.dwarf.array[i].range
|
||
|
+ == hdr_info->u.dwarf.array[i - 1].range)
|
||
|
+ /* Duplicate FDE entry. We should probably discard it
|
||
|
+ but for now just ignore it. */
|
||
|
+ ;
|
||
|
+ else if (i != 0
|
||
|
&& (hdr_info->u.dwarf.array[i].initial_loc
|
||
|
< (hdr_info->u.dwarf.array[i - 1].initial_loc
|
||
|
+ hdr_info->u.dwarf.array[i - 1].range)))
|