aboutsummaryrefslogtreecommitdiff
path: root/gold/output.cc
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/output.cc
parentbad7670a0e26d425d660376c6ac3ccc867783d32 (diff)
downloadgdb-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/output.cc')
-rw-r--r--gold/output.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/gold/output.cc b/gold/output.cc
index 99890eb..9556abf 100644
--- a/gold/output.cc
+++ b/gold/output.cc
@@ -1701,6 +1701,18 @@ Output_data_got<size, big_endian>::add_got_entry_pair(Got_entry got_entry_1,
}
}
+// Replace GOT entry I with a new value.
+
+template<int size, bool big_endian>
+void
+Output_data_got<size, big_endian>::replace_got_entry(
+ unsigned int i,
+ Got_entry got_entry)
+{
+ gold_assert(i < this->entries_.size());
+ this->entries_[i] = got_entry;
+}
+
// Output_data_dynamic::Dynamic_entry methods.
// Write out the entry.