* output.h (Output_data_got::add_global_tls, add_local_tls,
authorAlan Modra <amodra@gmail.com>
Mon, 10 Sep 2012 23:05:54 +0000 (23:05 +0000)
committerAlan Modra <amodra@gmail.com>
Mon, 10 Sep 2012 23:05:54 +0000 (23:05 +0000)
commitbd73a62d774b7c9a77be60ccfc4ff0dd7641970f
treede5cbaa01173d77d37b1ce0e650a98c6de79c086
parent00716ab17456adb467b1c9da399da5d0f8a74ae9
* output.h (Output_data_got::add_global_tls, add_local_tls,
add_local_tls_pair): New functions.
(Output_data_got::add_local_pair_with_rel): Remove second
reloc param.  Expand comment.
(Output_data_got::Got_entry): Rename use_plt_offset_ to
use_plt_or_tls_offset_, similarly for constructor param.
(Output_data_got::Got_entry::write): Add got_index param.
* output.cc (Output_data_got::add_global_tls, add_local_tls,
add_local_tls_pair): New functions.
(Output_data_got::Got_entry::write): Handle tls symbols
with use_plt_or_tls_offset_ set specially.
(Output_data_got::add_local_pair_with_rel): Only one reloc.
(Output_data_got::do_write): Replace iterator with index, pass
index to entry write function.
* target.h (Target::tls_offset_for_local, tls_offset_for_global,
do_tls_offset_for_local, do_tls_offset_for_global): New functions.
* arm.cc (Target_arm::Scan::local): Update add_local_pair_with_rel
call.
* i386.cc (Target_i386::Scan::local): Likewise.
* sparc.cc (Target_sparc::Scan::local): Likewise.
* x86_64.cc (Target_x86_64::Scan::local): Likewise.
* powerpc.cc (Target_powerpc::do_tls_offset_for_local,
do_tls_offset_for_global): New functions.
(Target_powerpc::Scan::local): Correct TLS relocations and got
entry values.
(Target_powerpc::Scan::global): Don't emit unnecessary
dynamic relocations on TLS GOT entries.
gold/ChangeLog
gold/arm.cc
gold/i386.cc
gold/output.cc
gold/output.h
gold/powerpc.cc
gold/sparc.cc
gold/target.h
gold/x86_64.cc