aboutsummaryrefslogtreecommitdiff
path: root/gold/object.h
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2014-07-07 10:14:45 -0700
committerCary Coutant <ccoutant@google.com>2014-07-08 10:44:09 -0700
commitf35c4853cc5b0e51d8a460be390f7a20cd44ba44 (patch)
tree5b082da36bcbf9b57c3064b2461229294e71ce69 /gold/object.h
parentb484180108158f427f3637987de02199416ed53a (diff)
downloadfsf-binutils-gdb-f35c4853cc5b0e51d8a460be390f7a20cd44ba44.zip
fsf-binutils-gdb-f35c4853cc5b0e51d8a460be390f7a20cd44ba44.tar.gz
fsf-binutils-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/object.h')
-rw-r--r--gold/object.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gold/object.h b/gold/object.h
index 38b06f0..92cdbdd 100644
--- a/gold/object.h
+++ b/gold/object.h
@@ -2214,6 +2214,11 @@ class Sized_relobj_file : public Sized_relobj<size, big_endian>
void
do_read_symbols(Read_symbols_data*);
+ // Read the symbols. This is common code for all target-specific
+ // overrides of do_read_symbols.
+ void
+ base_read_symbols(Read_symbols_data*);
+
// Return the value of a local symbol.
uint64_t
do_local_symbol_value(unsigned int symndx, uint64_t addend) const