2010-10-20 Doug Kwan <dougkwan@google.com>
* arm.cc (Arm_relobj::do_read_symbols): Warn about ARM EXIDX sections without SHF_LINK_ORDER flags. * layout.cc (Layout::choose_output_section): Do not filter SHF_LINK_ORDER flag in a relocatable link.
This commit is contained in:
parent
e0ae9e28cc
commit
c9484ea5b3
3 changed files with 16 additions and 1 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2010-10-20 Doug Kwan <dougkwan@google.com>
|
||||||
|
|
||||||
|
* arm.cc (Arm_relobj::do_read_symbols): Warn about ARM EXIDX sections
|
||||||
|
without SHF_LINK_ORDER flags.
|
||||||
|
* layout.cc (Layout::choose_output_section): Do not filter
|
||||||
|
SHF_LINK_ORDER flag in a relocatable link.
|
||||||
|
|
||||||
2010-10-17 Cary Coutant <ccoutant@google.com>
|
2010-10-17 Cary Coutant <ccoutant@google.com>
|
||||||
|
|
||||||
* output.h (Output_segment::set_section_addresses): Change function
|
* output.h (Output_segment::set_section_addresses): Change function
|
||||||
|
|
|
@ -6662,6 +6662,10 @@ Arm_relobj<big_endian>::do_read_symbols(Read_symbols_data* sd)
|
||||||
+ text_shndx * shdr_size);
|
+ text_shndx * shdr_size);
|
||||||
this->make_exidx_input_section(i, shdr, text_shndx, text_shdr);
|
this->make_exidx_input_section(i, shdr, text_shndx, text_shdr);
|
||||||
}
|
}
|
||||||
|
// EHABI 4.4.1 requires that SHF_LINK_ORDER flag to be set.
|
||||||
|
if ((shdr.get_sh_flags() & elfcpp::SHF_LINK_ORDER) == 0)
|
||||||
|
gold_warning(_("SHF_LINK_ORDER not set in EXIDX section %s of %s"),
|
||||||
|
this->section_name(i).c_str(), this->name().c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -489,11 +489,15 @@ Layout::choose_output_section(const Relobj* relobj, const char* name,
|
||||||
// Some flags in the input section should not be automatically
|
// Some flags in the input section should not be automatically
|
||||||
// copied to the output section.
|
// copied to the output section.
|
||||||
flags &= ~ (elfcpp::SHF_INFO_LINK
|
flags &= ~ (elfcpp::SHF_INFO_LINK
|
||||||
| elfcpp::SHF_LINK_ORDER
|
|
||||||
| elfcpp::SHF_GROUP
|
| elfcpp::SHF_GROUP
|
||||||
| elfcpp::SHF_MERGE
|
| elfcpp::SHF_MERGE
|
||||||
| elfcpp::SHF_STRINGS);
|
| elfcpp::SHF_STRINGS);
|
||||||
|
|
||||||
|
// We only clear the SHF_LINK_ORDER flag in for
|
||||||
|
// a non-relocatable link.
|
||||||
|
if (!parameters->options().relocatable())
|
||||||
|
flags &= ~elfcpp::SHF_LINK_ORDER;
|
||||||
|
|
||||||
if (this->script_options_->saw_sections_clause())
|
if (this->script_options_->saw_sections_clause())
|
||||||
{
|
{
|
||||||
// We are using a SECTIONS clause, so the output section is
|
// We are using a SECTIONS clause, so the output section is
|
||||||
|
|
Loading…
Reference in a new issue