mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 22:48:57 +08:00
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.
This commit is contained in:
@ -1,3 +1,11 @@
|
|||||||
|
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>
|
2013-01-15 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* powerpc.cc (Target_powerpc::do_relax): Default shared libs to
|
* powerpc.cc (Target_powerpc::do_relax): Default shared libs to
|
||||||
|
@ -1150,6 +1150,7 @@ Layout::layout(Sized_relobj_file<size, big_endian>* object, unsigned int shndx,
|
|||||||
// By default the GNU linker sorts some special text sections ahead
|
// By default the GNU linker sorts some special text sections ahead
|
||||||
// of others. We are compatible.
|
// of others. We are compatible.
|
||||||
if (!this->script_options_->saw_sections_clause()
|
if (!this->script_options_->saw_sections_clause()
|
||||||
|
&& !this->is_section_ordering_specified()
|
||||||
&& !parameters->options().relocatable()
|
&& !parameters->options().relocatable()
|
||||||
&& Layout::special_ordering_of_input_section(name) >= 0)
|
&& Layout::special_ordering_of_input_section(name) >= 0)
|
||||||
os->set_must_sort_attached_input_sections();
|
os->set_must_sort_attached_input_sections();
|
||||||
@ -1646,6 +1647,7 @@ Layout::make_output_section(const char* name, elfcpp::Elf_Word type,
|
|||||||
// need to know that this might happen before we attach any input
|
// need to know that this might happen before we attach any input
|
||||||
// sections.
|
// sections.
|
||||||
if (!this->script_options_->saw_sections_clause()
|
if (!this->script_options_->saw_sections_clause()
|
||||||
|
&& !this->is_section_ordering_specified()
|
||||||
&& !parameters->options().relocatable()
|
&& !parameters->options().relocatable()
|
||||||
&& strcmp(name, ".text") == 0)
|
&& strcmp(name, ".text") == 0)
|
||||||
os->set_may_sort_attached_input_sections();
|
os->set_may_sort_attached_input_sections();
|
||||||
|
@ -21,16 +21,22 @@
|
|||||||
// MA 02110-1301, USA.
|
// MA 02110-1301, USA.
|
||||||
|
|
||||||
// The goal of this program is to verify if section ordering
|
// 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 ()
|
void bar ()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__attribute__ ((section(".text.hot._Z3bazv")))
|
||||||
void baz ()
|
void baz ()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__attribute__ ((section(".text.hot._Z3foov")))
|
||||||
void foo ()
|
void foo ()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user