From f35c4853cc5b0e51d8a460be390f7a20cd44ba44 Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Mon, 7 Jul 2014 10:14:45 -0700 Subject: 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. --- gold/powerpc.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gold/powerpc.cc') diff --git a/gold/powerpc.cc b/gold/powerpc.cc index 96432ed..0a9ab7d 100644 --- a/gold/powerpc.cc +++ b/gold/powerpc.cc @@ -1839,7 +1839,7 @@ template void Powerpc_relobj::do_read_symbols(Read_symbols_data* sd) { - Sized_relobj_file::do_read_symbols(sd); + this->base_read_symbols(sd); if (size == 64) { const int shdr_size = elfcpp::Elf_sizes::shdr_size; @@ -1896,14 +1896,14 @@ Powerpc_dynobj::set_abiversion(int ver) } } -// Call Sized_dynobj::do_read_symbols to read the symbols then +// Call Sized_dynobj::base_read_symbols to read the symbols then // read .opd from a dynamic object, filling in opd_ent_ vector, template void Powerpc_dynobj::do_read_symbols(Read_symbols_data* sd) { - Sized_dynobj::do_read_symbols(sd); + this->base_read_symbols(sd); if (size == 64) { const int shdr_size = elfcpp::Elf_sizes::shdr_size; -- cgit v1.1