diff options
-rw-r--r-- | gold/ChangeLog | 5 | ||||
-rw-r--r-- | gold/gold.cc | 16 |
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()) { |