mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-12-14 13:19:32 +08:00
Remove sframe relocs against discarded sections
Commit d7f343eaad3f testsuite change resulted in a regression for s390x-linux. This extends the x86_64 fix to other targets. PR ld/33156 * elf-bfd.h (RELOC_AGAINST_DISCARDED_SECTION): Remove .sframe relocs too. (cherry picked from commit fcf7470408aa0508fbe99abb99547757a348383d)
This commit is contained in:
@@ -3280,11 +3280,14 @@ extern asection _bfd_elf_large_com_section;
|
|||||||
_bfd_clear_contents (howto, input_bfd, input_section, \
|
_bfd_clear_contents (howto, input_bfd, input_section, \
|
||||||
contents, rel[index].r_offset); \
|
contents, rel[index].r_offset); \
|
||||||
\
|
\
|
||||||
|
/* For ld -r, remove relocations in debug and sframe sections \
|
||||||
|
against symbols defined in discarded sections. Not done for \
|
||||||
|
others. In particular the .eh_frame editing code expects \
|
||||||
|
such relocs to be present. */ \
|
||||||
if (bfd_link_relocatable (info) \
|
if (bfd_link_relocatable (info) \
|
||||||
&& (input_section->flags & SEC_DEBUGGING)) \
|
&& ((input_section->flags & SEC_DEBUGGING) != 0 \
|
||||||
|
|| elf_section_type (input_section) == SHT_GNU_SFRAME)) \
|
||||||
{ \
|
{ \
|
||||||
/* Only remove relocations in debug sections since other \
|
|
||||||
sections may require relocations. */ \
|
|
||||||
Elf_Internal_Shdr *rel_hdr; \
|
Elf_Internal_Shdr *rel_hdr; \
|
||||||
\
|
\
|
||||||
rel_hdr = _bfd_elf_single_rel_hdr (input_section->output_section); \
|
rel_hdr = _bfd_elf_single_rel_hdr (input_section->output_section); \
|
||||||
|
|||||||
Reference in New Issue
Block a user