+2013-01-16 Sriraman Tallam <tmsriram@google.com>
+
+ * layout.cc (Layout::layout): Do not do default sorting for
+ text sections when section ordering is specified.
+ (make_output_section): Ditto.
+ * testsuite/plugin_final_layout.cc: Name the function sections
+ to catch reordering issues.
+
2013-01-15 Alan Modra <amodra@gmail.com>
* powerpc.cc (Target_powerpc::do_relax): Default shared libs to
// By default the GNU linker sorts some special text sections ahead
// of others. We are compatible.
if (!this->script_options_->saw_sections_clause()
+ && !this->is_section_ordering_specified()
&& !parameters->options().relocatable()
&& Layout::special_ordering_of_input_section(name) >= 0)
os->set_must_sort_attached_input_sections();
// need to know that this might happen before we attach any input
// sections.
if (!this->script_options_->saw_sections_clause()
+ && !this->is_section_ordering_specified()
&& !parameters->options().relocatable()
&& strcmp(name, ".text") == 0)
os->set_may_sort_attached_input_sections();
// MA 02110-1301, USA.
// The goal of this program is to verify if section ordering
-// via plugins happens correctly.
+// via plugins happens correctly. Also, test is plugin based ordering
+// overrides default text section ordering where ".text.hot" sections
+// are grouped. The plugin does not want foo and baz next to each other.
+// Plugin section order is foo() followed by bar() and then baz().
+__attribute__ ((section(".text._Z3barv")))
void bar ()
{
}
+__attribute__ ((section(".text.hot._Z3bazv")))
void baz ()
{
}
+__attribute__ ((section(".text.hot._Z3foov")))
void foo ()
{
}