aboutsummaryrefslogtreecommitdiff
path: root/gold/object.h
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2011-04-25 20:28:48 +0000
committerCary Coutant <ccoutant@google.com>2011-04-25 20:28:48 +0000
commitf0f9babffe098a7419062b594894ac5c57b28e88 (patch)
treee677eab0152eeed2dfd1a570993294cdd1b6e295 /gold/object.h
parent3e03848b6ca5ca5a8e36d4a8be1682c0c220a6d5 (diff)
downloadfsf-binutils-gdb-f0f9babffe098a7419062b594894ac5c57b28e88.zip
fsf-binutils-gdb-f0f9babffe098a7419062b594894ac5c57b28e88.tar.gz
fsf-binutils-gdb-f0f9babffe098a7419062b594894ac5c57b28e88.tar.bz2
* incremental-dump.cc (dump_incremental_inputs): Print local
symbol info for each input file. * incremental.cc (Output_section_incremental_inputs::set_final_data_size): Add local symbol info to input file entries in incremental info. (Output_section_incremental_inputs::write_info_blocks): Likewise. (Sized_incr_relobj::Sized_incr_relobj): Initialize new data members. (Sized_incr_relobj::do_add_symbols): Cosmetic change. (Sized_incr_relobj::do_count_local_symbols): Replace stub with implementation. (Sized_incr_relobj::do_finalize_local_symbols): Likewise. (Sized_incr_relobj::do_relocate): Write the local symbols. (Sized_incr_dynobj::do_add_symbols): Cosmetic change. * incremental.h (Incremental_inputs_reader::get_symbol_offset): Adjust size of input file header. (Incremental_inputs_reader::get_local_symbol_offset): New function. (Incremental_inputs_reader::get_local_symbol_count): New function. (Incremental_inputs_reader::get_input_section): Adjust size of input file header. (Incremental_inputs_reader::get_global_symbol_reader): Likewise. (Sized_incr_relobj::This): New typedef. (Sized_incr_relobj::sym_size): New const data member. (Sized_incr_relobj::Local_symbol): New struct. (Sized_incr_relobj::do_output_local_symbol_count): New function. (Sized_incr_relobj::do_local_symbol_offset): New function. (Sized_incr_relobj::local_symbol_count_): New data member. (Sized_incr_relobj::output_local_dynsym_count_): New data member. (Sized_incr_relobj::local_symbol_index_): New data member. (Sized_incr_relobj::local_symbol_offset_): New data member. (Sized_incr_relobj::local_dynsym_offset_): New data member. (Sized_incr_relobj::local_symbols_): New data member. * object.h (Relobj::output_local_symbol_count): New function. (Relobj::local_symbol_offset): New function. (Relobj::do_output_local_symbol_count): New function. (Relobj::do_local_symbol_offset): New function. (Sized_relobj::do_output_local_symbol_count): New function. (Sized_relobj::do_local_symbol_offset): New function.
Diffstat (limited to 'gold/object.h')
-rw-r--r--gold/object.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/gold/object.h b/gold/object.h
index c814e76..dc56136 100644
--- a/gold/object.h
+++ b/gold/object.h
@@ -987,6 +987,16 @@ class Relobj : public Object
local_symbol_count() const
{ return this->do_local_symbol_count(); }
+ // The number of local symbols in the output symbol table.
+ virtual unsigned int
+ output_local_symbol_count() const
+ { return this->do_output_local_symbol_count(); }
+
+ // The file offset for local symbols in the output symbol table.
+ virtual off_t
+ local_symbol_offset() const
+ { return this->do_local_symbol_offset(); }
+
// Initial local symbol processing: count the number of local symbols
// in the output symbol table and dynamic symbol table; add local symbol
// names to *POOL and *DYNPOOL.
@@ -1115,6 +1125,14 @@ class Relobj : public Object
virtual unsigned int
do_local_symbol_count() const = 0;
+ // Return the number of output local symbols--implemented by child class.
+ virtual unsigned int
+ do_output_local_symbol_count() const = 0;
+
+ // Return the file offset for local symbols--implemented by child class.
+ virtual off_t
+ do_local_symbol_offset() const = 0;
+
// Count local symbols--implemented by child class.
virtual void
do_count_local_symbols(Stringpool_template<char>*,
@@ -1911,6 +1929,16 @@ class Sized_relobj : public Sized_relobj_base<size, big_endian>
do_local_symbol_count() const
{ return this->local_symbol_count_; }
+ // Return the number of local symbols in the output symbol table.
+ unsigned int
+ do_output_local_symbol_count() const
+ { return this->output_local_symbol_count_; }
+
+ // Return the number of local symbols in the output symbol table.
+ off_t
+ do_local_symbol_offset() const
+ { return this->local_symbol_offset_; }
+
// Lay out the input sections.
void
do_layout(Symbol_table*, Layout*, Read_symbols_data*);