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] |
On Thu, Dec 20, 2012 at 2:38 PM, Cary Coutant <ccoutant@google.com> wrote: > This patch fixes the problems I've been seeing. It sets the "may sort > attached input sections" flag for the .text section, which ensures > that we track all input sections for that output section. The problem > was that we can't start tracking input sections in mid-stream. We may > not want to do this unconditionally for .text, so maybe you'll want a > linker option to enable this reordering? Thanks for tracking this down. It would be nice to avoid doing it for .text, but I don't see how to do that while remaining compatible with GNU ld. I reimplemented this code in a different way that I think fits in better with the existing section ordering code. Committed to mainline. Ian 2012-12-20 Ian Lance Taylor <iant@google.com> * layout.cc (Layout::special_ordering_of_input_section): New function. (Layout::layout): If input section requires special ordering, must sort input sections. (Layout::make_output_section): May sort .text input sections. (Layout::is_section_name_prefix_grouped): Remove. * layout.h (class Layout): Declare special_ordering_of_input_section. Don't declare is_section_name_prefix_grouped. * output.cc (Output_section::add_input_section): Revert last change. (Output_section::Input_section_sort::match_file_name): Don't crash if called on output section data. (Output_section::Input_section_sort_compare): Sort based on special ordering. (Output_section::Input_section_sort_section_order_index_compare): Revert last patch. (Output_section::sort_attached_input_sections): Likewise.
Attachment:
foo.patch
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |