Map ".text.hot" and ".text.unlikely" input section prefixes to separate output sections.
H.J. Lu
hjl.tools@gmail.com
Fri Dec 21 15:38:00 GMT 2012
More information about the Binutils mailing list
Fri Dec 21 15:38:00 GMT 2012
- Previous message (by thread): Map ".text.hot" and ".text.unlikely" input section prefixes to separate output sections.
- Next message (by thread): Map ".text.hot" and ".text.unlikely" input section prefixes to separate output sections.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Thu, Dec 20, 2012 at 10:26 PM, Ian Lance Taylor <iant@google.com> wrote: > 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. It doesn't fix regressions with x32 gold: `echo g++ -mx32 -W -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fmerge-constants -static-libstdc++ -static-libgcc -o incremental_test_2 | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9][0-9]*//'` -Wl,--incremental-update -Bgcctestdir/ two_file_test_tmp_2.o two_file_test_1b_ndebug.o two_file_test_2_ndebug.o two_file_test_main_ndebug.o gcctestdir/ld: internal error in convert_types, at /export/gnu/import/git/binutils/gold/gold.h:192 collect2: error: ld returned 1 exit status make[3]: *** [incremental_test_2] Error 1 -- H.J.
- Previous message (by thread): Map ".text.hot" and ".text.unlikely" input section prefixes to separate output sections.
- Next message (by thread): Map ".text.hot" and ".text.unlikely" input section prefixes to separate output sections.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list