Support multiple .eh_frame sections
authorJojo R <rjiejie@linux.alibaba.com>
Wed, 13 Jul 2022 16:28:09 +0000 (00:28 +0800)
committerJojo R <rjiejie@linux.alibaba.com>
Fri, 4 Nov 2022 02:30:18 +0000 (10:30 +0800)
commit853ba67882805f415c9816ca13d738295cf54f48
treea6b9c55e2d4d7a40c4c904e395a84d3d4cbef98b
parenta494349e806417d4dc7d217500225e515a777811
Support multiple .eh_frame sections

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.
bfd/elf-bfd.h
bfd/elflink.c
bfd/elfxx-target.h
gas/doc/internals.texi
gas/dw2gencfi.c
gas/dw2gencfi.h