aboutsummaryrefslogtreecommitdiff
path: root/gold
diff options
context:
space:
mode:
Diffstat (limited to 'gold')
-rw-r--r--gold/ChangeLog5
-rw-r--r--gold/gold.cc16
2 files changed, 13 insertions, 8 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 5f80c78..1e50690 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,8 @@
+2012-07-16 Sriraman Tallam <tmsriram@google.com>
+
+ * gold.cc (queue_middle_tasks): Update function order only after
+ deferred objects due to plugins are processed.
+
2012-07-11 Ian Lance Taylor <iant@google.com>
* arm.cc (Arm_relocate_functions::abs16): Remove unused typedef.
diff --git a/gold/gold.cc b/gold/gold.cc
index 013702f..dddf5ad 100644
--- a/gold/gold.cc
+++ b/gold/gold.cc
@@ -545,6 +545,14 @@ queue_middle_tasks(const General_options& options,
}
}
+ // Layout deferred objects due to plugins.
+ if (parameters->options().has_plugins())
+ {
+ Plugin_manager* plugins = parameters->options().plugins();
+ gold_assert(plugins != NULL);
+ plugins->layout_deferred_objects();
+ }
+
/* If plugins have specified a section order, re-arrange input sections
according to a specified section order. If --section-ordering-file is
also specified, do not do anything here. */
@@ -559,14 +567,6 @@ queue_middle_tasks(const General_options& options,
(*p)->update_section_layout(layout->get_section_order_map());
}
- // Layout deferred objects due to plugins.
- if (parameters->options().has_plugins())
- {
- Plugin_manager* plugins = parameters->options().plugins();
- gold_assert(plugins != NULL);
- plugins->layout_deferred_objects();
- }
-
if (parameters->options().gc_sections()
|| parameters->options().icf_enabled())
{