[PATCH v3] Support multiple .eh_frame sections
Fangrui Song
i@maskray.me
Thu Nov 3 19:34:18 GMT 2022
On Thu, Nov 3, 2022 at 3:26 AM Nick Clifton via Binutils
<binutils@sourceware.org> wrote:
>
> Hi Jojo,
>
> > This patch is based on MULTIPLE_FRAME_SECTIONS and EH_FRAME_LINKONCE,
> > it allows backend to enable this feature and use '--gc-sections' simply.
> >
> > * gas/dw2gencfi.h (TARGET_MULTIPLE_EH_FRAME_SECTIONS): New.
> > (MULTIPLE_FRAME_SECTIONS): Add TARGET_MULTIPLE_EH_FRAME_SECTIONS.
> > * gas/dw2gencfi.c (EH_FRAME_LINKONCE): Add TARGET_MULTIPLE_EH_FRAME_SECTIONS.
> > (is_now_linkonce_segment): Likewise.
> > (get_cfi_seg): Create relocation info between .eh_frame.* and .text.* section.
> >
> > * bfd/elf-bfd.h (elf_backend_can_make_multiple_eh_frame): New.
> > * bfd/elfxx-target.h (elf_backend_can_make_multiple_eh_frame): Likewise.
> > * bfd/elflink.c (_bfd_elf_default_action_discarded): Add checking for
> > elf_backend_can_make_multiple_eh_frame.
>
>
> Approved - please apply.
>
> Cheers
> Nick
>
Hi Jojo, is there a test demonstrating the handling of multiple
.eh_frame? Input .eh_frame or output .eh_frame?
.eh_frame handling is known to be weird with --gc-sections but linkers
have gained support:
https://maskray.me/blog/2020-11-08-stack-unwinding#linker-perspective
Since monolithic .eh_frame has been around for so long, some tools may
gain reliance on it and they will need to be fixed.
Also, it'd be nice to verify that .eh_frame_hdr and PT_GNU_EH_FRAME
creation is still correct.
More information about the Binutils
mailing list