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]

Re: Map ".text.hot" and ".text.unlikely" input section prefixes to separate output sections.


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]