Implement BE8 support for ARM.
[external/binutils.git] / gold / ChangeLog
index c886cc1..c12214b 100644 (file)
@@ -1,3 +1,159 @@
+2017-10-19  Umesh Kalappa  <ukalappa@cisco.com>
+
+       * arm.cc (Stub::do_fixed_endian_write):Far call stubs support for arm
+       in the be8 mode.
+       * testsuite/Makefile.am: New test cases.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/arm_farcall_arm_arm_be8.sh: New script for arm to arm far
+       call stubs.
+       * testsuite/arm_farcall_thumb_thumb_be8.sh: New script for thumb to
+       thumb far call stubs.
+
+2017-10-18  Kyle Butt  <iteratee@google.com>
+           Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::Scan::local): Correct dst_off
+       calculation for TOC16 relocs.
+       (Target_powerpc::Scan::global): Likewise.
+
+2017-09-26  Cary Coutant  <ccoutant@gmail.com>
+
+       PR gold/22213
+       * sparc.cc (Target_sparc): Fix incorrect register mask.
+
+2017-09-22  Jim Wilson  <jim.wilson@linaro.org>
+
+       * aarch64.cc (Target_aarch64::aarch64_info): Set
+       is_default_stack_executable to false.
+
+2017-09-22  Alan Modra  <amodra@gmail.com>
+
+       * resolve.cc (clone): Fix got_offset_list test.
+
+2017-09-22  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc<64,*>::powerpc_info): Set
+       is_default_stack_executable false.
+
+2017-09-20  Teresa Johnson  <tejohnson@google.com>
+
+       * plugin.cc (is_visible_from_outside): Check for export dynamic symbol
+        option and list.
+       * testsuite/Makefile.am (plugin_test_12): New test.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/export_dynamic_plugin.cc: New test source.
+       * testsuite/plugin_test_12.sh: New test script.
+
+2017-09-20  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::Branch_info::make_stub): Put
+       stubs for ppc32 non-branch relocs in first stub table.
+       (Target_powerpc::Relocate::relocate): Resolve similarly.
+
+2017-09-19  Alan Modra  <amodra@gmail.com>
+
+       * options.h (stub-group-multi): Default to true.  Add
+       --no-stub-group-multi.
+
+2017-08-30  Alan Modra  <amodra@gmail.com>
+
+       * 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  <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.
+       (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  <ikudrin@accesssoftek.com>
+
+       * 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  <amodra@gmail.com>
+
+       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  <romain.geissler@gmail.com>
+           Alan Modra  <amodra@gmail.com>
+
+       * 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  <jrtc27@jrtc27.com>
+
+       * options.h (General_options): Set a non-NULL second help string
+       argument for relax to allow --no-relax.
+
 2017-08-01  Alan Modra  <amodra@gmail.com>
 
        * ehframe.cc (Fde::operator==): New.
 
 2017-07-31  Alan Modra  <amodra@gmail.com>
 
+       PR 21847
        * powerpc.cc (Target_powerpc::scan_relocs): Warn on --plt-localentry
        without ld.so checks.