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:
Doug Kwan 2010-10-20 15:30:54 +00:00
parent e0ae9e28cc
commit c9484ea5b3
3 changed files with 16 additions and 1 deletions

View file

@ -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>
* output.h (Output_segment::set_section_addresses): Change function

View file

@ -6662,6 +6662,10 @@ Arm_relobj<big_endian>::do_read_symbols(Read_symbols_data* sd)
+ text_shndx * shdr_size);
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());
}
}

View file

@ -489,11 +489,15 @@ Layout::choose_output_section(const Relobj* relobj, const char* name,
// Some flags in the input section should not be automatically
// copied to the output section.
flags &= ~ (elfcpp::SHF_INFO_LINK
| elfcpp::SHF_LINK_ORDER
| elfcpp::SHF_GROUP
| elfcpp::SHF_MERGE
| 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())
{
// We are using a SECTIONS clause, so the output section is