forked from Imagelibrary/binutils-gdb
* 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.
This commit is contained in:
@@ -2429,8 +2429,7 @@ Target_sparc<size, big_endian>::Scan::local(
|
||||
target->rela_dyn_section(layout),
|
||||
(size == 64
|
||||
? elfcpp::R_SPARC_TLS_DTPMOD64
|
||||
: elfcpp::R_SPARC_TLS_DTPMOD32),
|
||||
0);
|
||||
: elfcpp::R_SPARC_TLS_DTPMOD32));
|
||||
if (r_type == elfcpp::R_SPARC_TLS_GD_CALL)
|
||||
generate_tls_call(symtab, layout, target);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user