aboutsummaryrefslogtreecommitdiff
path: root/gold/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gold/ChangeLog')
-rw-r--r--gold/ChangeLog41
1 files changed, 41 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 04b68f8..9359493 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,5 +1,46 @@
2017-08-29 Alan Modra <amodra@gmail.com>
+ * options.h (tls_get_addr_optimize): New option.
+ * symtab.h (Symbol::clear_in_reg, clone): New functions.
+ (Sized_symbol::clone): New function.
+ (Symbol_table::clone): New function.
+ * resolve.cc (Symbol::clone, Sized_symbol::clone): New functions.
+ * powerpc.cc (Target_powerpc::has_tls_get_addr_opt_,
+ tls_get_addr_, tls_get_addr_opt_): New vars.
+ (Target_powerpc::tls_get_addr_opt, tls_get_addr,
+ is_tls_get_addr_opt, replace_tls_get_addr,
+ set_has_tls_get_addr_opt, stk_linker): New functions.
+ (Target_powerpc::Track_tls::maybe_skip_tls_get_addr_call): Add
+ target param. Update callers. Compare symbols rather than names.
+ (Target_powerpc::do_define_standard_symbols): Init tls_get_addr_
+ and tls_get_addr_opt_.
+ (Target_powerpc::Branch_info::mark_pltcall): Translate tls_get_addr
+ sym to tls_get_addr_opt.
+ (Target_powerpc::Branch_info::make_stub): Likewise.
+ (Stub_table::define_stub_syms): Likewise.
+ (Target_powerpc::Scan::global): Likewise.
+ (Target_powerpc::Relocate::relocate): Likewise.
+ (add_3_12_2, add_3_12_13, bctrl, beqlr, cmpdi_11_0, cmpwi_11_0,
+ ld_11_1, ld_11_3, ld_12_3, lwz_11_3, lwz_12_3, mr_0_3, mr_3_0,
+ mtlr_11, std_11_1): New constants.
+ (Stub_table::eh_frame_added_): Delete.
+ (Stub_table::tls_get_addr_opt_bctrl_, plt_fde_len_, plt_fde_): New vars.
+ (Stub_table::init_plt_fde): New functions.
+ (Stub_table::add_eh_frame, replace_eh_frame): Move definition out
+ of line. Init and use plt_fde_.
+ (Stub_table::plt_call_size): Return size for tls_get_addr stub.
+ Extract alignment code to..
+ (Stub_table::plt_call_align): ..this new function. Adjust all callers.
+ (Stub_table::add_plt_call_entry): Set has_tls_get_addr_opt and
+ tls_get_addr_opt_bctrl, and align after that.
+ (Stub_table::do_write): Write out tls_get_addr stub.
+ (Target_powerpc::do_finalize_sections): Emit DT_PPC_OPT
+ PPC_OPT_TLS/PPC64_OPT_TLS bit.
+ (Target_powerpc::Relocate::relocate): Don't check for or modify
+ nop following bl for tls_get_addr stub.
+
+2017-08-29 Alan Modra <amodra@gmail.com>
+
* symtab.h (Symbol): Split u_ into u1_ and u2_. Adjust accessors
to suit. Move plt_offset_ before got_offsets_.
* symtab.cc (Symbol::init_fields): Adjust for union change.