Fix internal error with LTO on ARM.

This prevents the target-specific do_read_symbols methods from being called
twice when do_layout_deferred_sections needs to layout an .eh_frame section.

gold/
	PR gold/15639
	* dynobj.h (Sized_dynobj::base_read_symbols): New method.
	* dynobj.cc (Sized_dynobj::do_read_symbols): Move body to...
	(Sized_dynobj::base_read_symbols): ...new method.
	* object.h (Sized_relobj_file::base_read_symbols): New method.
	* object.cc (Sized_relobj_file::do_read_symbols): Move body to...
	(Sized_relobj_file::base_read_symbols): ...new method.
	* arm.cc (Arm_relobj::do_read_symbols): Call base_read_symbols.
	* mips.cc: (Mips_relobj::do_read_symbols): Likewise.
	* powerpc.cc (Powerpc_dynobj::do_read_symbols): Likewise.
This commit is contained in:
Cary Coutant
2014-07-07 10:14:45 -07:00
parent b484180108
commit f35c4853cc
8 changed files with 52 additions and 7 deletions

View File

@@ -270,6 +270,12 @@ class Sized_dynobj : public Dynobj
do_get_global_symbols() const
{ return this->symbols_; }
protected:
// Read the symbols. This is common code for all target-specific
// overrides of do_read_symbols().
void
base_read_symbols(Read_symbols_data*);
private:
// For convenience.
typedef Sized_dynobj<size, big_endian> This;