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]

[gold commit] Fix SIZEOF_HEADERS in gold


Gold undercounts the number of program headers it's going to add when
initially evaluating the SIZEOF_HEADERS expression. As a result, scripts
that use it end up skipping a page unnecessarily when the starting address
is too low. The undercounting is because it doesn't count the PT_INTERP
segment.

Then, when finalizing symbols, gold overcounts the program headers: all
segments have already been created, but we still count the headers we
expected to add from the script.

This patch fixes both problems.


2015-06-03  Cary Coutant  <cary@google.com>

gold/
        * script-sections.cc (Script_sections::Script_sections): Initialize
        segments_created_.
        (Script_sections::create_note_and_tls_segments): Set flag when
        segments are created.
        (Script_sections::expected_segment_count): Count PT_INTERP.
        (Script_sections::attach_sections_using_phdrs_clause): Set flag when
        segments are created.
        * script-sections.h (Script_sections::segments_created_): New data
        member.

Attachment: sizeof-headers.patch
Description: Binary data


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