From bfbf34de2f27672282d4fa4c0916cc41890dcc6c Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Mon, 12 Dec 2016 18:51:29 -0800 Subject: When using linker scripts, place linker-generated sections by the output section name. 2016-12-12 Igor Kudrin Cary Coutant gold/ PR gold/14676 * script-sections.cc (Output_section_definition::output_section_name): For linker-generated sections, compare with output section name. * testsuite/Makefile.am (script_test_13): New test. * testsuite/Makefile.in: Regenerate. * testsuite/script_test_13.c: New source file. * testsuite/script_test_13.sh: New script. * testsuite/script_test_13.t: New linker script. --- gold/script-sections.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'gold/script-sections.cc') diff --git a/gold/script-sections.cc b/gold/script-sections.cc index d970e57..90ec8d4 100644 --- a/gold/script-sections.cc +++ b/gold/script-sections.cc @@ -2291,6 +2291,17 @@ Output_section_definition::output_section_name( Script_sections::Section_type* psection_type, bool* keep) { + // If the input section is linker-created, just look for a match + // on the output section name. + if (file_name == NULL && this->name_ != "/DISCARD/") + { + if (this->name_ != section_name) + return NULL; + *slot = &this->output_section_; + *psection_type = this->section_type(); + return this->name_.c_str(); + } + // Ask each element whether it matches NAME. for (Output_section_elements::const_iterator p = this->elements_.begin(); p != this->elements_.end(); -- cgit v1.1