aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandra Loosemore <sandra@codesourcery.com>2019-12-05 13:20:12 -0800
committerSandra Loosemore <sandra@codesourcery.com>2019-12-05 13:20:12 -0800
commitbce7c9d6fbba85c351ee343843dc9adc285e44a3 (patch)
tree04523c95a4a8546bbd9896dd64351b72ef79c792
parentb858499daf0a824a518bac8bc13495ad856ab10d (diff)
downloadgdb-bce7c9d6fbba85c351ee343843dc9adc285e44a3.zip
gdb-bce7c9d6fbba85c351ee343843dc9adc285e44a3.tar.gz
gdb-bce7c9d6fbba85c351ee343843dc9adc285e44a3.tar.bz2
Only give FDE encoding warnings if --eh-frame-hdr was specified.
This bug was observed on nios2-linux-gnu with some C++ programs linked with -pie or -shared. The nios2 ABI doesn't include appropriate relocations in this instance and GCC is also being patched not to pass --eh-frame-hdr to the linker in those cases. 2019-12-05 Sandra Loosemore <sandra@codesourcery.com> bfd/ * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Make FDE encoding warning conditional.
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elf-eh-frame.c28
2 files changed, 23 insertions, 12 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f814775..c1bba0c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2019-12-05 Sandra Loosemore <sandra@codesourcery.com>
+
+ Only give FDE encoding warnings if --eh-frame-hdr was specified.
+
+ * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Make
+ FDE encoding warning conditional.
+
2019-12-05 Nick Clifton <nickc@redhat.com>
PR 25029
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
index c2cb77b..b622ffc 100644
--- a/bfd/elf-eh-frame.c
+++ b/bfd/elf-eh-frame.c
@@ -1532,19 +1532,23 @@ _bfd_elf_discard_section_eh_frame
don't create the binary search table,
since it is affected by runtime relocations. */
hdr_info->u.dwarf.table = FALSE;
- if (num_warnings_issued < 10)
+ /* Only warn if --eh-frame-hdr was specified. */
+ if (info->eh_frame_hdr_type != 0)
{
- _bfd_error_handler
- /* xgettext:c-format */
- (_("FDE encoding in %pB(%pA) prevents .eh_frame_hdr"
- " table being created"), abfd, sec);
- num_warnings_issued ++;
- }
- else if (num_warnings_issued == 10)
- {
- _bfd_error_handler
- (_("further warnings about FDE encoding preventing .eh_frame_hdr generation dropped"));
- num_warnings_issued ++;
+ if (num_warnings_issued < 10)
+ {
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("FDE encoding in %pB(%pA) prevents .eh_frame_hdr"
+ " table being created"), abfd, sec);
+ num_warnings_issued ++;
+ }
+ else if (num_warnings_issued == 10)
+ {
+ _bfd_error_handler
+ (_("further warnings about FDE encoding preventing .eh_frame_hdr generation dropped"));
+ num_warnings_issued ++;
+ }
}
}
ent->removed = 0;