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.
This commit is contained in:
parent
b858499daf
commit
bce7c9d6fb
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user