Take addend into account when making GOT entries for local symbols.
authorVladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
Thu, 3 Dec 2015 23:29:17 +0000 (15:29 -0800)
committerCary Coutant <ccoutant@gmail.com>
Thu, 3 Dec 2015 23:29:17 +0000 (15:29 -0800)
commit7ef8ae7c5f352bb1ef166af0fe6a09a3d3b39f67
tree26bf34449c9d504a4b6dfcf872eafa655ef80a92
parente58c48b4c81f25ec08174f324990d021aad0e96e
Take addend into account when making GOT entries for local symbols.

gold/
* object.cc (Sized_relobj::do_for_all_local_got_entries): Use
Local_got_entry_key for searching in local_got_offsets_.
* object.h (class Local_got_entry_key): New class.
(Relobj::local_has_got_offset): New overloaded method.
(Relobj::local_got_offset): Likewise.
(Relobj::set_local_got_offset): Likewise.
(Relobj::do_local_has_got_offset): Add addend argument.
(Relobj::do_local_got_offset): Likewise.
(Relobj::do_set_local_got_offset): Likewise.
(Sized_relobj::do_local_has_got_offset): Add addend argument, and use
Local_got_entry_key for searching through local_got_offsets_.
(Sized_relobj::do_local_got_offset): Likewise.
(Sized_relobj::do_set_local_got_offset): Likewise.
(Sized_relobj::Local_got_offsets): Change type of the key from
unsigned int to Local_got_entry_key, and add hash and equal_to.
* output.cc (Got_entry::write): Take addend into account for
calculating value of the local symbol for GOT.
(Output_data_got::add_local): New definition of overloaded method.
(Output_data_got::add_local_with_rel): Likewise.
(Output_data_got::add_local_pair_with_rel): Likewise.
* output.h (Output_data_got::add_local): New declaration of overloaded
method.
gold/ChangeLog
gold/object.cc
gold/object.h
gold/output.cc
gold/output.h