diff options
author | Sandra Loosemore <sandra@codesourcery.com> | 2019-12-05 13:20:12 -0800 |
---|---|---|
committer | Sandra Loosemore <sandra@codesourcery.com> | 2019-12-05 13:20:12 -0800 |
commit | bce7c9d6fbba85c351ee343843dc9adc285e44a3 (patch) | |
tree | 04523c95a4a8546bbd9896dd64351b72ef79c792 | |
parent | b858499daf0a824a518bac8bc13495ad856ab10d (diff) | |
download | gdb-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/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/elf-eh-frame.c | 28 |
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; |