In a previous patch for PR 14675, to fix a problem with
the .eh_frame section when static linking, I added a step to
finalize the .eh_frame section at the end of the first link
pass. This patch caused PR 18152, where a plugin-claimed
object caused a non-claimed object's layout to be deferred
until replacement files were read. The call to
finalize_eh_frame_section() is happening before the layout of
the deferred objects, leading to the internal error in
do_relocate_sections.
This patch moves the finalization of the .eh_frame section to
after deferred objects have been processed.
gold/
PR gold/14675
PR gold/18152
* gold.cc (queue_middle_tasks): Finalize .eh_frame after laying out
deferred objects.
+2015-03-21 Cary Coutant <ccoutant@google.com>
+
+ PR gold/18152
+ * gold.cc (queue_middle_tasks): Finalize .eh_frame after laying out
+ deferred objects.
+
2015-03-11 Cary Coutant <ccoutant@google.com>
* options.cc (General_options::finalize): Don't allow -z relro
if (timer != NULL)
timer->stamp(0);
- // Finalize the .eh_frame section.
- layout->finalize_eh_frame_section();
-
// Add any symbols named with -u options to the symbol table.
symtab->add_undefined_symbols_from_command_line(layout);
plugins->layout_deferred_objects();
}
+ // Finalize the .eh_frame section.
+ layout->finalize_eh_frame_section();
+
/* 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. */