This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH][GOLD] Add 2 classes to handling merged entires in EXIDX sections.


Hi,

    This patch adds two classes for merging entries EXIDX sections.
The Arm_exidx_merged_section is a relaxed section wrapping around an
EXIDX input section.  It contains an section offset map that maps
input section offsets to either output section offsets or
invalid_offset.  When some but not all entries in an EXIDX input
section are merged, it is converted into an Arm_exidx_merged_section.
If all entries are merged, the EXIDX input section is simply dropped
from the output section.  The other class Arm_exidx_cantunwind
represented an EXIDX_CANTUNWIND entry created by the linker.  Both of
these classes are sub-classes of Output_section_data and they are
inserted into an EXIDX output section in the first relaxation pass, in
whcih the output EXIDX section is fixed up.

-Doug

2010-01-21  Doug Kwan  <dougkwan@google.com>

elfcpp/ChangeLog:

        * arm.h (EXIDX_CANTUNWIND): New enum.

gold/ChangeLog:

        * arm.cc (Arm_exidx_cantunwind, Arm_exidx_merged_section): New
        classes.
        (Arm_exidx_section_offset_map): New type.

Attachment: patch-exidx-merged-section.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]