X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gold%2FChangeLog;h=23432155853c4aa1849bdbf81462496dd6fb0565;hb=9a23f96e919ba91587d077b1d399246dde4002dd;hp=51d6a0f1fcd852f90661f7d9f8861d0c8ab38af7;hpb=6bf56e7482e220ff98655b5285736a37dd602c17;p=deliverable%2Fbinutils-gdb.git diff --git a/gold/ChangeLog b/gold/ChangeLog index 51d6a0f1fc..2343215585 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,306 @@ +2017-08-30 Alan Modra + + * powerpc.cc (Target_powerpc::Relocate::relocate): Nop addis on + TPREL16_HA, and convert insn on TPREL16_LO and TPREL16_LO_DS + relocs to use r2/r13 when addis would add zero. + +2017-08-29 Alan Modra + + * 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 + + * 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. + (Symbol::init_base_output_data): Likewise. + (Symbol::init_base_output_segment): Likewise. + (Symbol::allocate_base_common): Likewise. + (Symbol::output_section): Likewise. + (Symbol::set_output_section): Likewise. + (Symbol::set_output_segment): Likewise. + * resolve.cc (Symbol::override_base): Likewise. + (Symbol::override_base_with_special): Likewise. + +2017-08-28 Igor Kudrin + + * aarch64.cc (Target_aarch64::Relocate::relocate_tls): + Make got_tlsdesc_offset signed and fix its calculation. + * testsuite/Makefile.am (aarch64_tlsdesc): New test. + * testsuite/Makefile.in: Regenerate. + * testsuite/aarch64_tlsdesc.s: New test source file. + * testsuite/aarch64_tlsdesc.sh: New test script. + * testsuite/aarch64_tlsdesc.t: New test linker script. + +2017-08-28 Alan Modra + + PR 21847 + * powerpc.cc (Target_powerpc::is_elfv2_localentry0): Test + non_zero_localentry. + (Target_powerpc::resolve): New function. + (powerpc_info): Set has_resolve for 64-bit. + * target.h (Sized_target::resolve): Return bool. + * resolve.cc (Symbol_table::resolve): Continue with normal + processing when target resolve returns false. + * symtab.h (Symbol::non_zero_localentry, set_non_zero_localentry): + New accessors. + (Symbol::non_zero_localentry_): New flag bit. + * symtab.cc (Symbol::init_fields): Init non_zero_localentry_. + +2017-08-08 Romain Geissler + Alan Modra + + * configure.ac: Add --enable-default-hash-style option. + * options.h (hash_style): Use DEFAULT_HASH_STYLE as default value. + * configure: Regenerate. + * config.in: Regenerate. + +2017-08-03 James Clarke + + * options.h (General_options): Set a non-NULL second help string + argument for relax to allow --no-relax. + +2017-08-01 Alan Modra + + * ehframe.cc (Fde::operator==): New. + (Cie::remove_fde, Eh_frame::remove_ehframe_for_plt): New. + * ehframe.h (Fde::operator==): Declare. + (Cie::remove_fde, Eh_frame::remove_ehframe_for_plt): Likewise. + * layout.cc (Layout::remove_eh_frame_for_plt): New. + * layout.h (Layout::remove_eh_frame_for_plt): Declare. + * powerpc.cc (Target_powerpc::do_relax): Remove old eh_frame FDEs. + (Stub_table::add_eh_frame): Delete eh_frame_added_ condition. + Don't add eh_frame for empty stub section. + (Stub_table::remove_eh_frame): New. + +2017-07-31 Alan Modra + + * options.h (no_tls_optimize): New powerpc option. + * powerpc.cc (Target_powerpc::abiversion, set_abiversion): Formatting. + (Target_powerpc::stk_toc): Formatting, fix comment. + (Target_powerpc::Track_tls::tls_get_addr_state): Rename from + tls_get_addr. + (Target_powerpc::optimize_tls_gd, optimize_tls_ld, optimize_tls_ie): + Return TLSOPT_NONE when !tls_optimize. + (Target_powerpc::add_global_pair_with_rel): Check + for existing reloc before reserving. + (Target_powerpc::add_local_tls_pair): Likewise. + +2017-07-31 Alan Modra + + PR 21847 + * powerpc.cc (Target_powerpc::scan_relocs): Warn on --plt-localentry + without ld.so checks. + +2017-07-29 Alan Modra + + PR 21847 + * powerpc.cc (Target_powerpc::scan_relocs): Default to + --no-plt-localentry. + +2017-07-28 H.J. Lu + + PR gold/21857 + * compressed_output.cc (Output_compressed_section::set_final_data_size): + Call put_ch_reserved to clear the reserved field for 64-bit ELF. + +2017-07-26 H.J. Lu + + * mips.cc (Mips_relocate_functions): Add "llu" suffix to + 0x800080008000. + +2017-07-23 Alan Modra + + * powerpc.cc (glink_eh_frame_fde_64v2): Correct advance to + restore of LR. + (glink_eh_frame_fde_64v1): Advance to restore of LR at latest + possible insn. + +2017-07-18 Nick Clifton + + PR 21775 + * aarch64.cc: Fix spelling typos. + * arm.cc: Likewise. + * layout.cc: Likewise. + * powerpc.cc: Likewise. + * x86_64.cc: Likewise. + +2017-07-12 Alan Modra + + * po/es.po: Update from translationproject.org/latest/gold/. + * po/fi.po: Likewise. + * po/fr.po: Likewise. + * po/id.po: Likewise. + * po/it.po: Likewise. + * po/vi.po: Likewise. + * po/zh_CN.po: Likewise. + * po/ja.po: New file from translationproject.org. + * po/sv.po: Likewise. + * po/uk.po: Likewise. + +2017-07-06 Han Shen + + PR gold/21491 + * aarch64.cc (Erratum_stub::invalidate_erratum_stub): New method. + (Erratum_stub::is_invalidated_erratum_stub): New method. + (Stub_table::relocate_reloc_stub): Renamed from "relocate_stub". + (Stub_table::relocate_reloc_stubs): Renamed from "relocate_stubs". + (Stub_table::relocate_erratum_stub): New method. + (AArch64_relobj::fix_errata_and_relocate_erratum_stubs): Renamed from + "fix_errata". + (Target_aarch64::relocate_reloc_stub): Renamed from "relocate_stub". + +2017-06-23 Alan Modra + + * options.h (General_options): Add plt_localentry. + * powerpc.cc (Target_powerpc::st_other): New function. + (Target_powerpc::plt_localentry0_, plt_localentry0_init_, + has_localentry0_): New vars. + (Target_powerpc::plt_localentry0, set_has_localentry0, + is_elfv2_localentry0): New functions. + (Target_powerpc::Branch_info::mark_pltcall): Don't set tocsave or + return true for localentry:0 calls. + (Stub_table::Plt_stub_ent::localentry0_): New var. + (Stub_table::add_plt_call_entry): Set localentry0_ and has_localentry0_. + Don't set r2save_ for localentry:0 calls. + (Output_data_glink::do_write): Save r2 in __glink_PLTresolve for elfv2. + (Target_powerpc::scan_relocs): Default plt_localentry0_. + (Target_powerpc::do_finalize_sections): Set DT_PPC64_OPT. + (Target_powerpc::Relocate::relocate): Don't require nop following + calls for localentry:0 plt calls, and don't change nop. + +2017-06-23 Alan Modra + + * powerpc.cc (Target_powerpc::tocsave_loc_): New var. + (Target_powerpc::mark_pltcall, add_tocsave, tocsave_loc): New functions. + (Target_powerpc::Branch_info::tocsave_): New var. + (Target_powerpc::Branch_info::mark_pltcall): New function. + (Target_powerpc::Branch_info::make_stub): Pass tocsave_ to + add_plt_call_entry. + (Stub_table::Plt_stub_ent): Make public. Add r2save_. + (Stub_table::add_plt_call_entry): Add bool tocsave_ param. Set + r2save_. + (Stub_table::find_plt_call_entry): Return Plt_stub_ent*. Adjust + use throughout. + (Stub_table::do_write): Conditionally output r2 save in plt stubs. + (Target_powerpc::Scan::local): Handle R_PPC64_TOCSAVE. + (Target_powerpc::Scan::global): Likewise. + (Target_powerpc::Relocate::relocate): Skip r2 save in plt call stub + with tocsave reloc. Replace header tocsave nop with r2 save. + * symtab.h (struct Symbol_location_hash): Make public. + +2017-06-21 Alan Modra + + * powerpc.cc (Plt_stub_key): Rename from Plt_stub_ent. Remove indx_. + (Plt_stub_key_hash): Rename from Plt_stub_ent_hash. + (struct Plt_stub_ent): New. + (Plt_stub_entries): Map from Plt_stub_key to Plt_stub_ent. Adjust + use throughout file. + +2017-06-20 Eric Christopher + + * aarch64.cc (scan_reloc_for_stub): Use plt_address_for_global to + calculate the symbol value. + (scan_reloc_section_for_stubs): Allow stubs to be created for + section symbols. + (maybe_apply_stub): Handle creating stubs for weak symbols to + match the code in scan_reloc_for_stub. + +2017-06-20 James Clarke + + * powerpc.cc (Stub_table::define_stub_syms): Always include object's + uniq_ value. + +2017-06-15 Eric Christopher + + * aarch64.cc: Fix a few typos and grammar-os. + +2017-06-15 Jiong Wang + + * aarch64.cc (Insn_utilities::is_mrs_tpidr_el0): New method. + (AArch64_relobj::try_fix_erratum_843419_optimized): + Return ture for some TLS relaxed sequences. + +2017-06-07 Eric Christopher + + * aarch64.cc (maybe_apply_stub): Add debug logging for looking + up stubs to undefined symbols and early return rather than + fail to look them up. + (scan_reloc_for_stub): Add debug logging for no stub creation + for undefined symbols. + +2017-05-23 Alan Modra + + PR 21503 + * options.h: Add --emit-stub-syms option. + * powerpc.cc (object_id): New. + (Powerpc_relobj): Add uniq_ and accessor. Sort variables for + better packing. + (Powerpc_dynobj): Sort variables for better packing. + (Target_powerpc::define_local): New function. + (Target_powerpc::group_sections): Pass stub table size to + Stub_table constructor. + (Target_powerpc::do_relax): Define stub and glink symbols. + (Stub_table): Add uniq_ variable, and id param to constructor. + (Stub_table::Plt_stub_ent): Add indx_ variable. + (Stub_table::Branch_stub_entries): Move typedef earlier. + (Stub_table::branch_stub_size): Replace "to" parameter with a + Branch_stub_entries iterator. + (Stub_table::add_long_branch_entry): Adjust to suit. + (Stub_table::add_plt_call_entry): Set indx_. + (Stub_table::define_stub_syms): New function. + +2017-05-15 Eric Christopher + + * layout.cc (Layout::segment_precedes): Add a case for testing + pointer equality when determining which segment precedes + another. + +2017-05-13 James Clarke + + PR gold/21444 + * gold.cc (Target_sparc::Relocate::relocate_tls): Local + variables are final for position-independent executables. This + has to be consistent with Target_sparc::Scan::local otherwise + they will disagree as to whether local-exec is used. + 2017-05-12 Igor Kudrin PR gold/21430