diff options
Diffstat (limited to 'gold')
-rw-r--r-- | gold/ChangeLog | 838 | ||||
-rw-r--r-- | gold/ChangeLog-2017 | 848 |
2 files changed, 850 insertions, 836 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 108631e..8debaf0 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,840 +1,6 @@ -2017-12-15 Alan Modra <amodra@gmail.com> - - PR 22602 - * powerpc.cc (Target_powerpc::Branch_info::mark_pltcall): Resolve - forwards before replacing __tls_get_addr. - (Target_powerpc::Branch_info::make_stub): Likewise. - -2017-12-11 Stephen Crane <sjc@immunant.com> - - * plugin.cc (Plugin::load): Include hooks for register_new_input - in transfer vector. - (Plugin::new_input): New function. - (register_new_input): New function. - (Plugin_manager::claim_file): Call Plugin::new_input if in - replacement phase. - * plugin.h (Plugin::set_new_input_handler): New function. - * testsuite/plugin_new_section_layout.c: New plugin to test - new_input plugin API. - * testsuite/plugin_final_layout.sh: Add new input test. - * testsuite/Makefile.am (plugin_layout_new_file): New test case. - * testsuite/Makefile.in: Regenerate. - -2017-12-02 Vladimir Kondratyev <vladimir@kondratyev.su> - Cary Coutant <ccoutant@gmail.com> - - PR gold/22540 - * output.cc (gold_fallocate): Trivial return for len == 0. - Add fallback options when posix_fallocate and fallocate return - not-supported errors. - -2017-12-01 Cary Coutant <ccoutant@gmail.com> - - PR gold/21090 - * incremental.cc (Sized_relobj_incr::do_relocate): Fix comment. - * options.cc (General_options::finalize): Disallow -pie with - incremental linking. - * x86_64.cc (Target_x86_64::Scan::local): Don't do mov-to-lea - or callq-to-direct optimizations for incremental links. - (Target_x86_64::Scan::global): Likewise. - (Target_x86_64::Relocate::relocate): Likewise. - * testsuite/Makefile.am (incremental_test): Force -no-pie. - (incremental_test_2): Likewise. - (incremental_test_3): Likewise. - (incremental_test_4): Likewise. - (incremental_test_5): Likewise. - (incremental_test_6): Likewise. - (incremental_copy_test): Likewise. - (incremental_common_test_1): Likewise. - (incremental_comdat_test_1): Likewise. - * testsuite/Makefile.in: Regenerate. - -2017-12-01 Cary Coutant <ccoutant@gmail.com> - - PR gold/21841 - * testsuite/debug_msg.sh: Adjust expected line numbers. - * testsuite/odr_violation2.cc (DummyFunction): New function. - -2017-12-01 Cary Coutant <ccoutant@gmail.com> - - PR gold/22309 - * testsuite/Makefile.am (two_file_test_1_v1_ndebug.o): Compile with - no EH information. - (two_file_test_1_ndebug.o): Likewise. - * testsuite/Makefile.in: Regenerate. - * testsuite/two_file_test_1.cc: Touch to force recompilation with new - flags. - * testsuite/two_file_test_1_v1.cc: Likewise. - -2017-12-01 Cary Coutant <ccoutant@gmail.com> - - PR gold/22042 - * options.h (-fuse-ld): Use NULL instead of empty string. - -2017-12-01 Benjamin Peterson <bp@benjamin.pe> - - PR gold/22406 - * gold.cc (queue_initial_tasks) Check for number of real input files. - * options.cc (Command_line::process) Check for unterminated --start-lib - options. - * testsuite/Makefile.am: Add new test script. - * testsuite/Makefile.in: Regenerate. - * testsuite/check_empty_command_lines.sh: New test script. - -2017-11-17 Stephen Crane <sjc@immunant.com> - - PR gold/22448 - * symtab.cc (Symbol_table::add_from_object): Only rescan for - undefined symbols in regular, not dynamic, objects. - -2017-11-30 Peter Smith <peter.smith@linaro.org> - - PR gold/20765 - * aarch64.cc (Aarch64_relobj::update_erratum_address): New method. - (AArch64_relobj::scan_errata): Update addresses in stub table after - relaxation pass. - -2017-11-30 Peter Smith <peter.smith@linaro.org> - Cary Coutant <ccoutant@gmail.com> - - PR gold/20765 - * aarch64.cc (Erratum_stub::invalidate_erratum_stub): Use erratum_insn_ - instead of relobj_ to invalidate the stub. - (Erratum_stub::is_invalidated_erratum_stub): Likewise. - -2017-11-30 Peter Smith <peter.smith@linaro.org> - - PR gold/22233 - * aarch64.cc (AArch64_relobj::fix_errata_and_relocate_erratum_stubs): - Fix calculation of stub address. - -2017-11-29 Stefan Stroe <stroestefan@gmail.com> - - * po/Make-in (datadir): Define as @datadir@. - (localedir): Define as @localedir@. - (gnulocaledir, gettextsrcdir): Use @datarootdir@. - -2017-11-28 Cary Coutant <ccoutant@gmail.com> - - * resolve.cc (Symbol_table::resolve): Allow multiply-defined absolute - symbols when they have the same value. - -2017-11-28 Cary Coutant <ccoutant@gmail.com> - - * object.h (class Sized_relobj_file): Remove discarded_eh_frame_shndx_. - * object.cc (Sized_relobj_file::Sized_relobj_file): Likewise. - (Sized_relobj_file::layout_eh_frame_section): Likewise. - (Sized_relobj_file::do_count_local_symbols): Check for optimized - .eh_frame section by other means. - (Sized_relobj_file::compute_final_local_value_internal): Likewise. - -2017-11-28 H.J. Lu <hongjiu.lu@intel.com> - - * testsuite/pr22266_a.c: Add a newline at end of file. - -2017-11-27 Cary Coutant <ccoutant@gmail.com> - - PR gold/19291 - PR gold/22266 - * object.cc (Sized_relobj_file::compute_final_local_value_internal): - Revert changes from 2017-11-08 patch. Adjust symbol value in - relocatable links for non-section symbols. - (Sized_relobj_file::compute_final_local_value): Revert changes from - 2017-11-08 patch. - (Sized_relobj_file::do_finalize_local_symbols): Likewise. - (Sized_relobj_file::write_local_symbols): Revert changes from - 2015-11-25 patch. - * object.h (Sized_relobj_file::compute_final_local_value_internal): - Revert changes from 2017-11-08 patch. - * powerpc.cc (Target_powerpc::relocate_relocs): Adjust addend for - relocatable links. - * target-reloc.h (relocate_relocs): Adjust addend for relocatable links. - * testsuite/pr22266_a.c (hello): New function. - * testsuite/pr22266_main.c (main): Add test for merge sections. - * testsuite/pr22266_script.t: Add rule for .rodata. - -2017-11-19 Ian Lance Taylor <iant@google.com> - Cary Coutant <ccoutant@gmail.com> - - * dwarf_reader.h (class Dwarf_info_reader): Add ref_addr_size - method. - * dwarf_reader.cc (Dwarf_die::read_attributes): Use ref_addr_size - for DW_FORM_ref_addr_size. - (Dwarf_die::skip_attributes): Likewise. - -2017-11-08 H.J. Lu <hongjiu.lu@intel.com> - - PR gold/22291 - * layout.cc (Layout::define_section_symbols): Use STV_PROTECTED - for __start and __stop symbols. - * symtab.cc (Symbol_table::define_special_symbol): Add an - argument, visibility. Ignore definition and reference from - a dynamic object, depending on visibility. - (Symbol_table::do_define_in_output_data): Pass visibility to - define_special_symbol. - (Symbol_table::do_define_in_output_segment): Likewise. - (Symbol_table::do_define_as_constant): Likewise. - (Symbol_table::add_undefined_symbol_from_command_line): Pass - STV_DEFAULT to define_special_symbol. - * symtab.h (Symbol_table::define_special_symbol): Add an - argument, visibility. - -2017-11-08 James Clarke <jrtc27@jrtc27.com> - - PR gold/22266 - * object.cc (Sized_relobj_file::compute_final_local_value_internal): - Drop relocatable parameter and stop adjusting output value based on - it. - (Sized_relobj_file::compute_final_local_value): Stop passing - relocatable to compute_final_local_value_internal. - (Sized_relobj_file::do_finalize_local_symbols): Ditto. - * object.h (Sized_relobj_file::compute_final_local_value_internal): - Drop relocatable parameter. - -2017-11-08 Kyle Butt <iteratee@google.com> - - * object.cc (do_find_special_sections): Fix a thinko with memmem return - values and check for != NULL rather than == 0. - -2017-11-07 Alan Modra <amodra@gmail.com> - - * system.h (textdomain, bindtextdomain): Use safer "do nothing". - (ngettext, dngettext, dcngettext): Define when !ENABLE_NLS. - -2017-10-25 Alan Modra <amodra@gmail.com> - - * symtab.cc (Symbol_table::add_from_relobj): Match "__gnu_lto_slim" - optionally prefixed with "_". - -2017-10-20 Sriraman Tallam <tmsriram@google.com> - - * options.h (-z,text_unlikely_segment): New option. - * layout.cc (Layout::layout): Create new output section - for .text.unlikely sections with the new option. - (Layout::segment_precedes): Check for the new option - when segment flags match. - * testsuite/text_unlikely_segment.cc: New test source. - * testsuite/text_unlikely_segment.sh: New test script. - * testsuite/Makefile.am (text_unlikely_segment): New test. - * testsuite/Makefile.in: Regenerate. - -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. - (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 <amodra@gmail.com> - - * 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 <amodra@gmail.com> - - PR 21847 - * powerpc.cc (Target_powerpc::scan_relocs): Warn on --plt-localentry - without ld.so checks. - -2017-07-29 Alan Modra <amodra@gmail.com> - - PR 21847 - * powerpc.cc (Target_powerpc::scan_relocs): Default to - --no-plt-localentry. - -2017-07-28 H.J. Lu <hongjiu.lu@intel.com> - - 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 <hongjiu.lu@intel.com> - - * mips.cc (Mips_relocate_functions): Add "llu" suffix to - 0x800080008000. - -2017-07-23 Alan Modra <amodra@gmail.com> - - * 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 <nickc@redhat.com> - - 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 <amodra@gmail.com> - - * 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 <shenhan@google.com> - - 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 <amodra@gmail.com> - - * 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 <amodra@gmail.com> - - * 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 <amodra@gmail.com> - - * 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 <echristo@gmail.com> - - * 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 <jrtc27@jrtc27.com> - - * powerpc.cc (Stub_table::define_stub_syms): Always include object's - uniq_ value. - -2017-06-15 Eric Christopher <echristo@gmail.com> - - * aarch64.cc: Fix a few typos and grammar-os. - -2017-06-15 Jiong Wang <jiong.wang@arm.com> - - * aarch64.cc (Insn_utilities::is_mrs_tpidr_el0): New method. - (AArch64_relobj<size, big_endian>::try_fix_erratum_843419_optimized): - Return ture for some TLS relaxed sequences. - -2017-06-07 Eric Christopher <echristo@gmail.com> - - * 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 <amodra@gmail.com> - - 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 <echristo@gmail.com> - - * layout.cc (Layout::segment_precedes): Add a case for testing - pointer equality when determining which segment precedes - another. - -2017-05-13 James Clarke <jrtc27@jrtc27.com> - - 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 <ikudrin@accesssoftek.com> - - PR gold/21430 - * aarch64.cc - (AArch64_relobj::convert_input_section_to_relaxed_section): - Set the section offset to -1ULL. - (Target_aarch64::relocate_section): Adjust the view in case - of a relaxed input section. - * testsuite/Makefile.am (pr21430): New test. - * testsuite/Makefile.in: Regenerate - * testsuite/pr21430.s: New test source file. - * testsuite/pr21430.sh: New test script. - -2017-04-27 Alan Modra <amodra@gmail.com> - - * testsuite/plugin_section_order.c (onload): Add missing break. - -2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> - - * mips.cc (Mips_got_entry::hash()): Shift addend to reduce - possibility of collisions. - (Mips_got_entry::equals): Fix case for GOT_TLS_LDM - entries. - -2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> - - * mips.cc (Mips_relobj::merge_processor_specific_data_): New data - member. - (Mips_relobj::merge_processor_specific_data): New method. - (Mips_relobj::do_read_symbols): Set merge_processor_specific_data_ - to false, only if the input file is a binary or if object has no - contents except the section name string table and an empty symbol - table with the undefined symbol. - (Target_mips::do_finalize_sections): Refactor. Skip empty object files - for merging processor-specific data. - -2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> - - * mips.cc (Target_mips::Relocate::calculated_value_): New data - member. - (Target_mips::Relocate::calculate_only_): Likewise. - (Target_mips::Relocate::relocate): Handle multiple consecutive - relocations with the same offset. - -2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> - - * mips.cc (Target_mips::Relocate::relocate): Remove redundant - checks for relocatable link. - (Mips_relocate_functions::reljalr): Likewise. - -2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> - - * mips.cc (class Mips_output_section_options): New class. - (Target_mips::do_make_output_section): New method. - -2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> - - * mips.cc (Mips_relocate_functions::rel26): Don't print relocation - overflow error message. - (Target_mips::relocate_special_relocatable): Improve relocation - overflow error message. - (Target_mips::Relocate::relocate): Likewise. - -2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> - - * mips.cc (symbol_refs_local): Return false if a symbol - is from a dynamic object. - (Target_mips::got_section): Make _GLOBAL_OFFSET_TABLE_ STV_HIDDEN. - (Target_mips::set_gp): Refactor. Make _gp STT_NOTYPE and - STB_LOCAL. - (Target_mips::do_finalize_sections): Set _gp after all the checks - for creating .got are done. - (Target_mips::Scan::global): Remove unused code. - -2017-02-22 Alan Modra <amodra@gmail.com> - - * powerpc.cc (Target_powerpc::make_iplt_section): Check that - output_section exists before attempting add_output_section_data. - (Target_powerpc::make_brlt_section): Likewise. - -2017-02-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> - - * mips.cc (Target_mips::Scan::get_reference_flags): Remove - gold_unreachable from default case. - -2017-02-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> - - PR gold/21111 - * mips.cc (Mips_relocate_functions::relhigher): New method. - (Mips_relocate_functions::relhighest): Likewise. - (mips_get_size_for_reloc): Add support for relocs: R_MIPS_HIGHER and - R_MIPS_HIGHEST. - (Target_mips::Scan::local): Add support for relocs: R_MIPS_HIGHER, - R_MIPS_HIGHEST, R_MICROMIPS_HIGHER and R_MICROMIPS_HIGHEST. - (Target_mips::Scan::global): Likewise. - (Target_mips::Scan::get_reference_flags): Likewise. - (Target_mips::Relocate::relocate): Call static methods for resolving - HIGHER and HIGHEST relocations. - -2017-02-03 Rahul Chaudhry <rahulchaudhry@google.com> - - * x86_64.cc (Target_x86_64::do_can_check_for_function_pointers): - Return true even when building pie binaries. - (Target_x86_64::possible_function_pointer_reloc): Check opcode - for R_X86_64_PC32 relocations. - (Target_x86_64::local_reloc_may_be_function_pointer): Pass - extra arguments to local_reloc_may_be_function_pointer. - (Target_x86_64::global_reloc_may_be_function_pointer): Likewise. - * gc.h (gc_process_relocs): Add check for STT_FUNC. - * testsuite/Makefile.am (icf_safe_pie_test): New test case. - * testsuite/Makefile.in: Regenerate. - * testsuite/icf_safe_pie_test.sh: New shell script. - -2017-02-03 Alan Modra <amodra@gmail.com> - - * powerpc.cc (Powerpc_relobj::make_toc_relative): Don't crash - when no .toc section exists. - -2017-01-31 Cary Coutant <ccoutant@gmail.com> - - PR gold/21090 - * x86_64.cc (Target_x86_64::can_convert_mov_to_lea): Add check - for predefined symbol. - (Target_x86_64::Relocate::relocate): Fix formatting. - -2017-01-23 Rahul Chaudhry <rahulchaudhry@google.com> - - * testsuite/icf_safe_so_test.sh: Use "set -e". - * testsuite/icf_safe_test.sh: Likewise. - * testsuite/icf_test.sh: Likewise. - -2017-01-23 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> - - * mips.cc (Mips_output_data_plt::rel_plt): Remove const from return - type. - (Target_mips::make_plt_entry): Make the sh_info field of .rel.plt - point to .plt. - -2017-01-23 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> - - PR gold/21054 - * mips.cc (Mips_got_info::record_global_got_symbol): Don't add symbol - to the dynamic symbol table if it is forced to local visibility. - (Target_mips::do_finalize_sections): Don't add __RLD_MAP symbol to the - dynamic symbol table if it is forced to local visibility. - -2017-01-20 Nick Clifton <nickc@redhat.com> - - * aarch64.cc (Stub_template_repertoire): Change ST_E_835769_INSNS - from a pointer to an array. - -2017-01-13 H.J. Lu <hongjiu.lu@intel.com> - - PR gold/21040 - * powerpc.cc (Powerpc_relobj<size, big_endian>::make_toc_relative): - Cast 0x80008000 to uint64_t. - -2017-01-12 Cary Coutant <ccoutant@gmail.com> - - * object.cc (Sized_relobj_file): Fix byte counts for calls to memmem. - -2017-01-11 Cary Coutant <ccoutant@gmail.com> - - PR gold/21040 - * x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry): - Remove unnecessary 'typename' keyword. - (Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise. - (Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise. - (Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise. - (Output_data_plt_x86_64_bnd::do_write): Likewise. - -2017-01-11 Cary Coutant <ccoutant@gmail.com> - - PR gold/21040 - * x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry): - Remove unnecessary 'typename' keyword. - (Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise. - (Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise. - (Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise. - * testsuite/copy_test_relro_1.cc (p, b, c, q): Add separate extern - declarations. - -2017-01-11 Cary Coutant <ccoutant@gmail.com> - - PR gold/21039 - * testsuite/script_test_13.sh: Adjust patterns to work for i386. - * testsuite/script_test_15a.sh: Likewise. - * testsuite/script_test_15b.sh: Likewise. - * testsuite/script_test_15c.sh: Likewise. - -2017-01-11 Alan Modra <amodra@gmail.com> - - * powerpc.cc (class Powerpc_copy_relocs): New. - (Powerpc_copy_relocs::emit): New function. - (Powerpc_relobj::relatoc_, toc_, no_toc_opt_): New variables. - (Powerpc_relobj::toc_shndx, set_no_toc_opt, no_toc_opt): New inlines. - (Powerpc_relobj::do_relocate_sections): New function. - (Powerpc_relobj::make_toc_relative): Likewise. - (Powerpc_relobj::do_find_special_sections): Stash away .rela.toc - and .toc too. - (ok_lo_toc_insn): Move earlier, and handle more insns. - (Target_powerpc::Scan::local): If optimizing toc accesses, set - no_toc_opt for entries we can't edit. Check insn validity. - Emit "toc optimization is not supported" warning, downgraded - from error. - (Target_powerpc::Scan::global): Likewise. - (Target_powerpc::Relocate::relocate): Edit TOC indirect code - to TOC relative. Don't emit "toc optimization is not supported" - error here. - -2017-01-10 Cary Coutant <ccoutant@gmail.com> - - * aarch64.cc (AArch64_relobj::do_relocate_sections): Call - Sized_relobj_file::relocate_section_range(). - * arm.cc (Arm_relobj::do_relocate_sections): Likewise. - * object.h (Sized_relobj_file::relocate_section_range): New method. - * reloc.cc (Sized_relobj_file::do_relocate_sections): Move - implementation... - (Sized_relobj_file::relocate_section_range): ...to new method. - -2017-01-10 Alan Modra <amodra@gmail.com> - - * testsuite/ver_test_8.sh: Accept .TOC. in lieu of - _GLOBAL_OFFSET_TABLE_. Allow zero count. - * testsuite/copy_test_relro_1.cc (c, q): New vars. - * testsuite/copy_test_relro.cc: Rewrite to test read-only - status of variables directly. Reference new vars in - read-only data. - -2017-01-10 Alan Modra <amodra@gmail.com> - - * options.h: Add --secure-plt option. - * powerpc.cc (Target_powerpc::Scan::local): Detect and error - on -fPIC -mbss-plt code. - (Target_powerpc::Scan::global): Likewise. - -2017-01-09 Alan Modra <amodra@gmail.com> - - * powerpc.cc (Target_powerpc::make_plt_section): Point sh_info of - ".rela.plt" at ".plt". - -2017-01-07 Alan Modra <amodra@gmail.com> - - * powerpc.cc: Use shorter equivalent elfcpp typedef for - Reltype and reloc_size throughout. - (Target_powerpc::symval_for_branch): Exclude dynamic symbols. - (Target_powerpc::Scan::local): Use local var r_sym. - (Target_powerpc::Scan::global: Likewise. - (Target_powerpc::Relocate::relocate): Delete shadowing r_sym. - -2017-01-02 Alan Modra <amodra@gmail.com> - - Update year range in copyright notice of all files. - -For older changes see ChangeLog-2016 +For older changes see ChangeLog-2017 -Copyright (C) 2017 Free Software Foundation, Inc. +Copyright (C) 2018 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright diff --git a/gold/ChangeLog-2017 b/gold/ChangeLog-2017 new file mode 100644 index 0000000..b2a4771 --- /dev/null +++ b/gold/ChangeLog-2017 @@ -0,0 +1,848 @@ +2017-12-15 Alan Modra <amodra@gmail.com> + + PR 22602 + * powerpc.cc (Target_powerpc::Branch_info::mark_pltcall): Resolve + forwards before replacing __tls_get_addr. + (Target_powerpc::Branch_info::make_stub): Likewise. + +2017-12-11 Stephen Crane <sjc@immunant.com> + + * plugin.cc (Plugin::load): Include hooks for register_new_input + in transfer vector. + (Plugin::new_input): New function. + (register_new_input): New function. + (Plugin_manager::claim_file): Call Plugin::new_input if in + replacement phase. + * plugin.h (Plugin::set_new_input_handler): New function. + * testsuite/plugin_new_section_layout.c: New plugin to test + new_input plugin API. + * testsuite/plugin_final_layout.sh: Add new input test. + * testsuite/Makefile.am (plugin_layout_new_file): New test case. + * testsuite/Makefile.in: Regenerate. + +2017-12-02 Vladimir Kondratyev <vladimir@kondratyev.su> + Cary Coutant <ccoutant@gmail.com> + + PR gold/22540 + * output.cc (gold_fallocate): Trivial return for len == 0. + Add fallback options when posix_fallocate and fallocate return + not-supported errors. + +2017-12-01 Cary Coutant <ccoutant@gmail.com> + + PR gold/21090 + * incremental.cc (Sized_relobj_incr::do_relocate): Fix comment. + * options.cc (General_options::finalize): Disallow -pie with + incremental linking. + * x86_64.cc (Target_x86_64::Scan::local): Don't do mov-to-lea + or callq-to-direct optimizations for incremental links. + (Target_x86_64::Scan::global): Likewise. + (Target_x86_64::Relocate::relocate): Likewise. + * testsuite/Makefile.am (incremental_test): Force -no-pie. + (incremental_test_2): Likewise. + (incremental_test_3): Likewise. + (incremental_test_4): Likewise. + (incremental_test_5): Likewise. + (incremental_test_6): Likewise. + (incremental_copy_test): Likewise. + (incremental_common_test_1): Likewise. + (incremental_comdat_test_1): Likewise. + * testsuite/Makefile.in: Regenerate. + +2017-12-01 Cary Coutant <ccoutant@gmail.com> + + PR gold/21841 + * testsuite/debug_msg.sh: Adjust expected line numbers. + * testsuite/odr_violation2.cc (DummyFunction): New function. + +2017-12-01 Cary Coutant <ccoutant@gmail.com> + + PR gold/22309 + * testsuite/Makefile.am (two_file_test_1_v1_ndebug.o): Compile with + no EH information. + (two_file_test_1_ndebug.o): Likewise. + * testsuite/Makefile.in: Regenerate. + * testsuite/two_file_test_1.cc: Touch to force recompilation with new + flags. + * testsuite/two_file_test_1_v1.cc: Likewise. + +2017-12-01 Cary Coutant <ccoutant@gmail.com> + + PR gold/22042 + * options.h (-fuse-ld): Use NULL instead of empty string. + +2017-12-01 Benjamin Peterson <bp@benjamin.pe> + + PR gold/22406 + * gold.cc (queue_initial_tasks) Check for number of real input files. + * options.cc (Command_line::process) Check for unterminated --start-lib + options. + * testsuite/Makefile.am: Add new test script. + * testsuite/Makefile.in: Regenerate. + * testsuite/check_empty_command_lines.sh: New test script. + +2017-11-17 Stephen Crane <sjc@immunant.com> + + PR gold/22448 + * symtab.cc (Symbol_table::add_from_object): Only rescan for + undefined symbols in regular, not dynamic, objects. + +2017-11-30 Peter Smith <peter.smith@linaro.org> + + PR gold/20765 + * aarch64.cc (Aarch64_relobj::update_erratum_address): New method. + (AArch64_relobj::scan_errata): Update addresses in stub table after + relaxation pass. + +2017-11-30 Peter Smith <peter.smith@linaro.org> + Cary Coutant <ccoutant@gmail.com> + + PR gold/20765 + * aarch64.cc (Erratum_stub::invalidate_erratum_stub): Use erratum_insn_ + instead of relobj_ to invalidate the stub. + (Erratum_stub::is_invalidated_erratum_stub): Likewise. + +2017-11-30 Peter Smith <peter.smith@linaro.org> + + PR gold/22233 + * aarch64.cc (AArch64_relobj::fix_errata_and_relocate_erratum_stubs): + Fix calculation of stub address. + +2017-11-29 Stefan Stroe <stroestefan@gmail.com> + + * po/Make-in (datadir): Define as @datadir@. + (localedir): Define as @localedir@. + (gnulocaledir, gettextsrcdir): Use @datarootdir@. + +2017-11-28 Cary Coutant <ccoutant@gmail.com> + + * resolve.cc (Symbol_table::resolve): Allow multiply-defined absolute + symbols when they have the same value. + +2017-11-28 Cary Coutant <ccoutant@gmail.com> + + * object.h (class Sized_relobj_file): Remove discarded_eh_frame_shndx_. + * object.cc (Sized_relobj_file::Sized_relobj_file): Likewise. + (Sized_relobj_file::layout_eh_frame_section): Likewise. + (Sized_relobj_file::do_count_local_symbols): Check for optimized + .eh_frame section by other means. + (Sized_relobj_file::compute_final_local_value_internal): Likewise. + +2017-11-28 H.J. Lu <hongjiu.lu@intel.com> + + * testsuite/pr22266_a.c: Add a newline at end of file. + +2017-11-27 Cary Coutant <ccoutant@gmail.com> + + PR gold/19291 + PR gold/22266 + * object.cc (Sized_relobj_file::compute_final_local_value_internal): + Revert changes from 2017-11-08 patch. Adjust symbol value in + relocatable links for non-section symbols. + (Sized_relobj_file::compute_final_local_value): Revert changes from + 2017-11-08 patch. + (Sized_relobj_file::do_finalize_local_symbols): Likewise. + (Sized_relobj_file::write_local_symbols): Revert changes from + 2015-11-25 patch. + * object.h (Sized_relobj_file::compute_final_local_value_internal): + Revert changes from 2017-11-08 patch. + * powerpc.cc (Target_powerpc::relocate_relocs): Adjust addend for + relocatable links. + * target-reloc.h (relocate_relocs): Adjust addend for relocatable links. + * testsuite/pr22266_a.c (hello): New function. + * testsuite/pr22266_main.c (main): Add test for merge sections. + * testsuite/pr22266_script.t: Add rule for .rodata. + +2017-11-19 Ian Lance Taylor <iant@google.com> + Cary Coutant <ccoutant@gmail.com> + + * dwarf_reader.h (class Dwarf_info_reader): Add ref_addr_size + method. + * dwarf_reader.cc (Dwarf_die::read_attributes): Use ref_addr_size + for DW_FORM_ref_addr_size. + (Dwarf_die::skip_attributes): Likewise. + +2017-11-08 H.J. Lu <hongjiu.lu@intel.com> + + PR gold/22291 + * layout.cc (Layout::define_section_symbols): Use STV_PROTECTED + for __start and __stop symbols. + * symtab.cc (Symbol_table::define_special_symbol): Add an + argument, visibility. Ignore definition and reference from + a dynamic object, depending on visibility. + (Symbol_table::do_define_in_output_data): Pass visibility to + define_special_symbol. + (Symbol_table::do_define_in_output_segment): Likewise. + (Symbol_table::do_define_as_constant): Likewise. + (Symbol_table::add_undefined_symbol_from_command_line): Pass + STV_DEFAULT to define_special_symbol. + * symtab.h (Symbol_table::define_special_symbol): Add an + argument, visibility. + +2017-11-08 James Clarke <jrtc27@jrtc27.com> + + PR gold/22266 + * object.cc (Sized_relobj_file::compute_final_local_value_internal): + Drop relocatable parameter and stop adjusting output value based on + it. + (Sized_relobj_file::compute_final_local_value): Stop passing + relocatable to compute_final_local_value_internal. + (Sized_relobj_file::do_finalize_local_symbols): Ditto. + * object.h (Sized_relobj_file::compute_final_local_value_internal): + Drop relocatable parameter. + +2017-11-08 Kyle Butt <iteratee@google.com> + + * object.cc (do_find_special_sections): Fix a thinko with memmem return + values and check for != NULL rather than == 0. + +2017-11-07 Alan Modra <amodra@gmail.com> + + * system.h (textdomain, bindtextdomain): Use safer "do nothing". + (ngettext, dngettext, dcngettext): Define when !ENABLE_NLS. + +2017-10-25 Alan Modra <amodra@gmail.com> + + * symtab.cc (Symbol_table::add_from_relobj): Match "__gnu_lto_slim" + optionally prefixed with "_". + +2017-10-20 Sriraman Tallam <tmsriram@google.com> + + * options.h (-z,text_unlikely_segment): New option. + * layout.cc (Layout::layout): Create new output section + for .text.unlikely sections with the new option. + (Layout::segment_precedes): Check for the new option + when segment flags match. + * testsuite/text_unlikely_segment.cc: New test source. + * testsuite/text_unlikely_segment.sh: New test script. + * testsuite/Makefile.am (text_unlikely_segment): New test. + * testsuite/Makefile.in: Regenerate. + +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. + (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 <amodra@gmail.com> + + * 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 <amodra@gmail.com> + + PR 21847 + * powerpc.cc (Target_powerpc::scan_relocs): Warn on --plt-localentry + without ld.so checks. + +2017-07-29 Alan Modra <amodra@gmail.com> + + PR 21847 + * powerpc.cc (Target_powerpc::scan_relocs): Default to + --no-plt-localentry. + +2017-07-28 H.J. Lu <hongjiu.lu@intel.com> + + 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 <hongjiu.lu@intel.com> + + * mips.cc (Mips_relocate_functions): Add "llu" suffix to + 0x800080008000. + +2017-07-23 Alan Modra <amodra@gmail.com> + + * 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 <nickc@redhat.com> + + 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 <amodra@gmail.com> + + * 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 <shenhan@google.com> + + 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 <amodra@gmail.com> + + * 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 <amodra@gmail.com> + + * 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 <amodra@gmail.com> + + * 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 <echristo@gmail.com> + + * 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 <jrtc27@jrtc27.com> + + * powerpc.cc (Stub_table::define_stub_syms): Always include object's + uniq_ value. + +2017-06-15 Eric Christopher <echristo@gmail.com> + + * aarch64.cc: Fix a few typos and grammar-os. + +2017-06-15 Jiong Wang <jiong.wang@arm.com> + + * aarch64.cc (Insn_utilities::is_mrs_tpidr_el0): New method. + (AArch64_relobj<size, big_endian>::try_fix_erratum_843419_optimized): + Return ture for some TLS relaxed sequences. + +2017-06-07 Eric Christopher <echristo@gmail.com> + + * 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 <amodra@gmail.com> + + 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 <echristo@gmail.com> + + * layout.cc (Layout::segment_precedes): Add a case for testing + pointer equality when determining which segment precedes + another. + +2017-05-13 James Clarke <jrtc27@jrtc27.com> + + 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 <ikudrin@accesssoftek.com> + + PR gold/21430 + * aarch64.cc + (AArch64_relobj::convert_input_section_to_relaxed_section): + Set the section offset to -1ULL. + (Target_aarch64::relocate_section): Adjust the view in case + of a relaxed input section. + * testsuite/Makefile.am (pr21430): New test. + * testsuite/Makefile.in: Regenerate + * testsuite/pr21430.s: New test source file. + * testsuite/pr21430.sh: New test script. + +2017-04-27 Alan Modra <amodra@gmail.com> + + * testsuite/plugin_section_order.c (onload): Add missing break. + +2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> + + * mips.cc (Mips_got_entry::hash()): Shift addend to reduce + possibility of collisions. + (Mips_got_entry::equals): Fix case for GOT_TLS_LDM + entries. + +2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> + + * mips.cc (Mips_relobj::merge_processor_specific_data_): New data + member. + (Mips_relobj::merge_processor_specific_data): New method. + (Mips_relobj::do_read_symbols): Set merge_processor_specific_data_ + to false, only if the input file is a binary or if object has no + contents except the section name string table and an empty symbol + table with the undefined symbol. + (Target_mips::do_finalize_sections): Refactor. Skip empty object files + for merging processor-specific data. + +2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> + + * mips.cc (Target_mips::Relocate::calculated_value_): New data + member. + (Target_mips::Relocate::calculate_only_): Likewise. + (Target_mips::Relocate::relocate): Handle multiple consecutive + relocations with the same offset. + +2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> + + * mips.cc (Target_mips::Relocate::relocate): Remove redundant + checks for relocatable link. + (Mips_relocate_functions::reljalr): Likewise. + +2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> + + * mips.cc (class Mips_output_section_options): New class. + (Target_mips::do_make_output_section): New method. + +2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> + + * mips.cc (Mips_relocate_functions::rel26): Don't print relocation + overflow error message. + (Target_mips::relocate_special_relocatable): Improve relocation + overflow error message. + (Target_mips::Relocate::relocate): Likewise. + +2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> + + * mips.cc (symbol_refs_local): Return false if a symbol + is from a dynamic object. + (Target_mips::got_section): Make _GLOBAL_OFFSET_TABLE_ STV_HIDDEN. + (Target_mips::set_gp): Refactor. Make _gp STT_NOTYPE and + STB_LOCAL. + (Target_mips::do_finalize_sections): Set _gp after all the checks + for creating .got are done. + (Target_mips::Scan::global): Remove unused code. + +2017-02-22 Alan Modra <amodra@gmail.com> + + * powerpc.cc (Target_powerpc::make_iplt_section): Check that + output_section exists before attempting add_output_section_data. + (Target_powerpc::make_brlt_section): Likewise. + +2017-02-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> + + * mips.cc (Target_mips::Scan::get_reference_flags): Remove + gold_unreachable from default case. + +2017-02-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> + + PR gold/21111 + * mips.cc (Mips_relocate_functions::relhigher): New method. + (Mips_relocate_functions::relhighest): Likewise. + (mips_get_size_for_reloc): Add support for relocs: R_MIPS_HIGHER and + R_MIPS_HIGHEST. + (Target_mips::Scan::local): Add support for relocs: R_MIPS_HIGHER, + R_MIPS_HIGHEST, R_MICROMIPS_HIGHER and R_MICROMIPS_HIGHEST. + (Target_mips::Scan::global): Likewise. + (Target_mips::Scan::get_reference_flags): Likewise. + (Target_mips::Relocate::relocate): Call static methods for resolving + HIGHER and HIGHEST relocations. + +2017-02-03 Rahul Chaudhry <rahulchaudhry@google.com> + + * x86_64.cc (Target_x86_64::do_can_check_for_function_pointers): + Return true even when building pie binaries. + (Target_x86_64::possible_function_pointer_reloc): Check opcode + for R_X86_64_PC32 relocations. + (Target_x86_64::local_reloc_may_be_function_pointer): Pass + extra arguments to local_reloc_may_be_function_pointer. + (Target_x86_64::global_reloc_may_be_function_pointer): Likewise. + * gc.h (gc_process_relocs): Add check for STT_FUNC. + * testsuite/Makefile.am (icf_safe_pie_test): New test case. + * testsuite/Makefile.in: Regenerate. + * testsuite/icf_safe_pie_test.sh: New shell script. + +2017-02-03 Alan Modra <amodra@gmail.com> + + * powerpc.cc (Powerpc_relobj::make_toc_relative): Don't crash + when no .toc section exists. + +2017-01-31 Cary Coutant <ccoutant@gmail.com> + + PR gold/21090 + * x86_64.cc (Target_x86_64::can_convert_mov_to_lea): Add check + for predefined symbol. + (Target_x86_64::Relocate::relocate): Fix formatting. + +2017-01-23 Rahul Chaudhry <rahulchaudhry@google.com> + + * testsuite/icf_safe_so_test.sh: Use "set -e". + * testsuite/icf_safe_test.sh: Likewise. + * testsuite/icf_test.sh: Likewise. + +2017-01-23 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> + + * mips.cc (Mips_output_data_plt::rel_plt): Remove const from return + type. + (Target_mips::make_plt_entry): Make the sh_info field of .rel.plt + point to .plt. + +2017-01-23 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> + + PR gold/21054 + * mips.cc (Mips_got_info::record_global_got_symbol): Don't add symbol + to the dynamic symbol table if it is forced to local visibility. + (Target_mips::do_finalize_sections): Don't add __RLD_MAP symbol to the + dynamic symbol table if it is forced to local visibility. + +2017-01-20 Nick Clifton <nickc@redhat.com> + + * aarch64.cc (Stub_template_repertoire): Change ST_E_835769_INSNS + from a pointer to an array. + +2017-01-13 H.J. Lu <hongjiu.lu@intel.com> + + PR gold/21040 + * powerpc.cc (Powerpc_relobj<size, big_endian>::make_toc_relative): + Cast 0x80008000 to uint64_t. + +2017-01-12 Cary Coutant <ccoutant@gmail.com> + + * object.cc (Sized_relobj_file): Fix byte counts for calls to memmem. + +2017-01-11 Cary Coutant <ccoutant@gmail.com> + + PR gold/21040 + * x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry): + Remove unnecessary 'typename' keyword. + (Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise. + (Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise. + (Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise. + (Output_data_plt_x86_64_bnd::do_write): Likewise. + +2017-01-11 Cary Coutant <ccoutant@gmail.com> + + PR gold/21040 + * x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry): + Remove unnecessary 'typename' keyword. + (Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise. + (Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise. + (Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise. + * testsuite/copy_test_relro_1.cc (p, b, c, q): Add separate extern + declarations. + +2017-01-11 Cary Coutant <ccoutant@gmail.com> + + PR gold/21039 + * testsuite/script_test_13.sh: Adjust patterns to work for i386. + * testsuite/script_test_15a.sh: Likewise. + * testsuite/script_test_15b.sh: Likewise. + * testsuite/script_test_15c.sh: Likewise. + +2017-01-11 Alan Modra <amodra@gmail.com> + + * powerpc.cc (class Powerpc_copy_relocs): New. + (Powerpc_copy_relocs::emit): New function. + (Powerpc_relobj::relatoc_, toc_, no_toc_opt_): New variables. + (Powerpc_relobj::toc_shndx, set_no_toc_opt, no_toc_opt): New inlines. + (Powerpc_relobj::do_relocate_sections): New function. + (Powerpc_relobj::make_toc_relative): Likewise. + (Powerpc_relobj::do_find_special_sections): Stash away .rela.toc + and .toc too. + (ok_lo_toc_insn): Move earlier, and handle more insns. + (Target_powerpc::Scan::local): If optimizing toc accesses, set + no_toc_opt for entries we can't edit. Check insn validity. + Emit "toc optimization is not supported" warning, downgraded + from error. + (Target_powerpc::Scan::global): Likewise. + (Target_powerpc::Relocate::relocate): Edit TOC indirect code + to TOC relative. Don't emit "toc optimization is not supported" + error here. + +2017-01-10 Cary Coutant <ccoutant@gmail.com> + + * aarch64.cc (AArch64_relobj::do_relocate_sections): Call + Sized_relobj_file::relocate_section_range(). + * arm.cc (Arm_relobj::do_relocate_sections): Likewise. + * object.h (Sized_relobj_file::relocate_section_range): New method. + * reloc.cc (Sized_relobj_file::do_relocate_sections): Move + implementation... + (Sized_relobj_file::relocate_section_range): ...to new method. + +2017-01-10 Alan Modra <amodra@gmail.com> + + * testsuite/ver_test_8.sh: Accept .TOC. in lieu of + _GLOBAL_OFFSET_TABLE_. Allow zero count. + * testsuite/copy_test_relro_1.cc (c, q): New vars. + * testsuite/copy_test_relro.cc: Rewrite to test read-only + status of variables directly. Reference new vars in + read-only data. + +2017-01-10 Alan Modra <amodra@gmail.com> + + * options.h: Add --secure-plt option. + * powerpc.cc (Target_powerpc::Scan::local): Detect and error + on -fPIC -mbss-plt code. + (Target_powerpc::Scan::global): Likewise. + +2017-01-09 Alan Modra <amodra@gmail.com> + + * powerpc.cc (Target_powerpc::make_plt_section): Point sh_info of + ".rela.plt" at ".plt". + +2017-01-07 Alan Modra <amodra@gmail.com> + + * powerpc.cc: Use shorter equivalent elfcpp typedef for + Reltype and reloc_size throughout. + (Target_powerpc::symval_for_branch): Exclude dynamic symbols. + (Target_powerpc::Scan::local): Use local var r_sym. + (Target_powerpc::Scan::global: Likewise. + (Target_powerpc::Relocate::relocate): Delete shadowing r_sym. + +2017-01-02 Alan Modra <amodra@gmail.com> + + Update year range in copyright notice of all files. + +For older changes see ChangeLog-2016 + +Copyright (C) 2017 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + +Local Variables: +mode: change-log +left-margin: 8 +fill-column: 74 +version-control: never +End: |