diff options
author | Cary Coutant <ccoutant@google.com> | 2014-07-07 10:14:45 -0700 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2014-07-08 10:44:09 -0700 |
commit | f35c4853cc5b0e51d8a460be390f7a20cd44ba44 (patch) | |
tree | 5b082da36bcbf9b57c3064b2461229294e71ce69 /gold/powerpc.cc | |
parent | b484180108158f427f3637987de02199416ed53a (diff) | |
download | gdb-f35c4853cc5b0e51d8a460be390f7a20cd44ba44.zip gdb-f35c4853cc5b0e51d8a460be390f7a20cd44ba44.tar.gz gdb-f35c4853cc5b0e51d8a460be390f7a20cd44ba44.tar.bz2 |
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.
Diffstat (limited to 'gold/powerpc.cc')
-rw-r--r-- | gold/powerpc.cc | 6 |
1 files changed, 3 insertions, 3 deletions
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<int size, bool big_endian> void Powerpc_relobj<size, big_endian>::do_read_symbols(Read_symbols_data* sd) { - Sized_relobj_file<size, big_endian>::do_read_symbols(sd); + this->base_read_symbols(sd); if (size == 64) { const int shdr_size = elfcpp::Elf_sizes<size>::shdr_size; @@ -1896,14 +1896,14 @@ Powerpc_dynobj<size, big_endian>::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<int size, bool big_endian> void Powerpc_dynobj<size, big_endian>::do_read_symbols(Read_symbols_data* sd) { - Sized_dynobj<size, big_endian>::do_read_symbols(sd); + this->base_read_symbols(sd); if (size == 64) { const int shdr_size = elfcpp::Elf_sizes<size>::shdr_size; |