aboutsummaryrefslogtreecommitdiff
path: root/gold/layout.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gold/layout.cc')
-rw-r--r--gold/layout.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/gold/layout.cc b/gold/layout.cc
index 95f1de7..bc6a053 100644
--- a/gold/layout.cc
+++ b/gold/layout.cc
@@ -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