diff options
author | Alan Modra <amodra@gmail.com> | 2012-08-11 04:41:28 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2012-08-11 04:41:28 +0000 |
commit | cf43a2fe99107aae4bfdf9bae8380729fb2c7b64 (patch) | |
tree | 8bc1af6d3b4dca7f1e671eea1fbe8b7bfb7bf236 /gold/object.h | |
parent | bad7670a0e26d425d660376c6ac3ccc867783d32 (diff) | |
download | gdb-cf43a2fe99107aae4bfdf9bae8380729fb2c7b64.zip gdb-cf43a2fe99107aae4bfdf9bae8380729fb2c7b64.tar.gz gdb-cf43a2fe99107aae4bfdf9bae8380729fb2c7b64.tar.bz2 |
* 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.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/gold/object.h b/gold/object.h index 5c70a0c..b4d2ffe 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, |