summaryrefslogtreecommitdiff
path: root/gold/object.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2012-08-11 04:41:28 +0000
committerAlan Modra <amodra@gmail.com>2012-08-11 04:41:28 +0000
commitcf43a2fe99107aae4bfdf9bae8380729fb2c7b64 (patch)
tree8bc1af6d3b4dca7f1e671eea1fbe8b7bfb7bf236 /gold/object.h
parentbad7670a0e26d425d660376c6ac3ccc867783d32 (diff)
downloadbinutils-gdb-cf43a2fe99107aae4bfdf9bae8380729fb2c7b64.tar.gz
* object.h (Sized_relobj_file::find_shdr): New function.
(Sized_relobj_file::find_special_sections): New function. * object.cc (Sized_relobj_file::find_shdr): New function. (Sized_relobj_file::find_eh_frame): Use find_shdr. (Sized_relobj_file::find_special_sections): New function, split out.. (Sized_relobj_file::do_read_symbols): ..from here. * output.h (Output_data_got::replace_constant): New function. (Output_data_got::num_entries): New function. (Output_data_got::last_got_offset,set_got_size): Use num_entries. (Output_data_got::got_offset): Protected rather than private. (Output_data_got::replace_got_entry): New function. * output.cc (Output_data_got::replace_got_entry): New function. * powerpc.cc (class Powerpc_relobj): New. (class Powerpc_relocate_functions): Delete all psymval variants or convert to value,addend type. Delete pcrela, pcrela_unaligned. Implement _ha functions using corresponding _hi function. (Powerpc_relobj::find_special_sections): New function. (Target_powerpc::do_make_elf_object): New function. (class Output_data_got_powerpc): New. (class Output_data_glink): New. (class Powerpc_scan_relocatable_reloc): New. Many more changes througout file.
Diffstat (limited to 'gold/object.h')
-rw-r--r--gold/object.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/gold/object.h b/gold/object.h
index 5c70a0c3fb2..b4d2ffe1680 100644
--- a/gold/object.h
+++ b/gold/object.h
@@ -349,7 +349,7 @@ class Object
this->input_file_->file().remove_object();
}
- // Return the name of the object as we would report it to the tuser.
+ // Return the name of the object as we would report it to the user.
const std::string&
name() const
{ return this->name_; }
@@ -2116,6 +2116,15 @@ class Sized_relobj_file : public Sized_relobj<size, big_endian>
Address
map_to_kept_section(unsigned int shndx, bool* found) const;
+ // Find the section header with the given NAME. If HDR is non-NULL
+ // then it is a section header returned from a previous call to this
+ // function and the next section header with the same name will be
+ // returned.
+ const unsigned char*
+ find_shdr(const unsigned char* pshdrs, const char* name,
+ const char* names, section_size_type names_size,
+ const unsigned char* hdr) const;
+
// Compute final local symbol value. R_SYM is the local symbol index.
// LV_IN points to a local symbol value containing the input value.
// LV_OUT points to a local symbol value storing the final output value,
@@ -2347,6 +2356,11 @@ class Sized_relobj_file : public Sized_relobj<size, big_endian>
typedef std::vector<View_size> Views;
+ // Stash away info for a number of special sections.
+ // Return true if any of the sections found require local symbols to be read.
+ virtual bool
+ do_find_special_sections(Read_symbols_data* sd);
+
// This may be overriden by a child class.
virtual void
do_relocate_sections(const Symbol_table* symtab, const Layout* layout,