Fix typo in PR number.
[deliverable/binutils-gdb.git] / gold / ChangeLog
index 48f46ce9f6f4b143aae13aea429f322fb2fc92b0..7fdc7bf5c88790ef28293b73c1e78f25a8d3234c 100644 (file)
+2015-07-21  Cary Coutant  <ccoutant@gmail.com>
+
+       PR gold/18698
+       * archive.cc (Library_base::should_include_member): Don't use entry
+       point for relocatable links, or if target is not yet valid.
+       * parameters.cc (Parameters::entry): Check target_valid().
+
+2015-07-20  Han Shen  <shenhan@google.com>
+
+       Optimize erratum 843419 fix.
+
+       * aarch64.cc (AArch64_insn_utilities::is_adr): New method.
+       (AArch64_insn_utilities::aarch64_adr_encode_imm): New method.
+       (AArch64_insn_utilities::aarch64_adrp_decode_imm): New method.
+       (E843419_stub): New sub-class of Erratum_stub.
+       (AArch64_relobj::try_fix_erratum_843419_optimized): New method.
+       (AArch64_relobj::section_needs_reloc_stub_scanning): Try optimized fix.
+       (AArch64_relobj::create_erratum_stub): Add 1 argument.
+       (Target_aarch64::scan_erratum_843419_span): Pass in adrp insn offset.
+
+2015-07-20  Han Shen  <shenhan@google.com>
+
+       Fix arm elf header flags wrt hardfp bit.
+
+       * arm.cc (Target_arm::do_adjust_elf_header): Set flags into view.
+
+2015-07-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gold/18689
+       * layout.cc (Layout::layout): Clear the SHF_COMPRESSED flag bit
+       from input group section for relocatable link.
+       * testsuite/Makefile.am (check_SCRIPTS): Add pr18689.sh.
+       (check_DATA): Add pr18689.stdout.
+       (MOSTLYCLEANFILES): Add pr18689a.o pr18689b.o.
+       (pr18689.stdout): New rule.
+       (pr18689a.o): Likewise.
+       (pr18689b.o): Likewise.
+       (pr18689.o): Likewise.
+       * testsuite/pr18689.c: New file.
+       * testsuite/pr18689.sh: Likewise.
+       * testsuite/Makefile.in: Regenerated.
+
+2015-07-20  Yiran Wang  <yiran@google.com>
+       Cary Coutant  <ccoutant@gmail.com>
+
+       PR gold/15574
+       * resolve.cc (Symbol_table): Remove warning about references
+       from shared objects to hidden symbols.
+       * testsuite/Makefile.am (hidden_test): Add hidden_test.syms.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/hidden_test.sh: Check dynamic symbol table; update
+       expected error messages.
+
+2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * compressed_output.cc (Output_compressed_section::set_final_data_size):
+       Make --compress-debug-sections=zlib the same as
+       --compress-debug-sections=zlib-gabi.
+       * testsuite/Makefile.am (flagstest_compress_debug_sections.check):
+       Expect ".debug_.*" with the SHF_COMPRESSED bit, instead of
+       ".zdebug_".
+       * testsuite/Makefile.in: Regenerated.
+
+2015-07-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gold/18322
+       * compressed_output.cc (zlib_compress): Add argument for
+       compression header size.  Set header size to compression header
+       size if it isn't 0.  Don't write out the zlib header here.
+       (Output_compressed_section::set_final_data_size): Support
+       zlib-gnu and zlib-gabi compressions.  Pass compression header
+       size to zlib_compress and write out compression header.  Set
+       the SHF_COMPRESSED bit for zlib-gabi compression.  Otherwise
+       clear the SHF_COMPRESSED bit
+       * options.h (compress_debug_sections): Add zlib-gnu and
+       zlib-gabi.
+       * output.h (Output_section::set_flags): New.
+       * testsuite/Makefile.am (check_PROGRAMS): Add
+       flagstest_compress_debug_sections_none,
+       flagstest_compress_debug_sections_gnu and
+       flagstest_compress_debug_sections_gabi.
+       (check_DATA): Add flagstest_compress_debug_sections_none.stdout.
+       flagstest_compress_debug_sections.stdout,
+       flagstest_compress_debug_sections.cmp,
+       flagstest_compress_debug_sections.check,
+       flagstest_compress_debug_sections_gnu.stdout,
+       flagstest_compress_debug_sections_gnu.cmp,
+       flagstest_compress_debug_sections_gnu.check,
+       flagstest_compress_debug_sections_gabi.stdout,
+       flagstest_compress_debug_sections_gabi.cmp and
+       flagstest_compress_debug_sections_gabi.check.
+       (flagstest_compress_debug_sections_none): New.
+       (flagstest_compress_debug_sections_none.stdout): Likewise.
+       (flagstest_compress_debug_sections.stdout): Likewise.
+       (flagstest_compress_debug_sections.check): Likewise.
+       (flagstest_compress_debug_sections.cmp): Likewise.
+       (flagstest_compress_debug_sections_gnu): Likewise.
+       (flagstest_compress_debug_sections_gnu.stdout): Likewise.
+       (flagstest_compress_debug_sections_gnu.check): Likewise.
+       (flagstest_compress_debug_sections_gnu.cmp): Likewise.
+       (flagstest_compress_debug_sections_gabi): Likewise.
+       (flagstest_compress_debug_sections_gabi.stdout): Likewise.
+       (flagstest_compress_debug_sections_gnu.check): Likewise.
+       (flagstest_compress_debug_sections_gnu.cmp): Likewise.
+       * testsuite/Makefile.in: Regenerated.
+
+2015-07-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gold/18321
+       * compressed_output.h (decompress_input_section): Add arguments
+       for ELF class, big endian and sh_flags.
+       * compressed_output.cc (decompress_input_section): Likewise.
+       Support the SHF_COMPRESSED section.
+       * dynobj.h (Dynobj): Add elfsize and is_big_endian member
+       functions.
+       * plugin.h (Pluginobj): Likewise.
+       * layout.cc (Layout::get_output_section_flags): Also clear the
+       SHF_COMPRESSED bit.
+       * object.h (Compressed_section_info): Add flag to store sh_flags.
+       (Object): Add pure virtual elfsize and is_big_endian member
+       functions.
+       * object.cc (need_decompressed_section): Don't skip the ".zdebug"
+       prefix here.
+       (build_compressed_section_map): Check SHF_COMPRESSED for
+       uncompressed size.  Store sh_flags in Compressed_section_info.
+       Pass size, big_endian and sh_flags to decompress_input_section.
+       Skip the ".debug"/".zdebug" prefix when passing section name to
+       need_decompressed_section.
+       (Sized_relobj_file<size, big_endian>::do_find_special_section):
+       Don't check ".zdebug_*" sections.
+       (Object::decompressed_section_contents): Pass ELF class, big
+       endian and sh_flags to decompress_input_section.
+       * reloc.cc (Sized_relobj_file<size, big_endian>::write_sections):
+       Likewise.
+       * testsuite/Makefile.am (check_DATA): Add
+       debug_msg_cdebug_gabi.err and gdb_index_test_2_gabi.stdout.
+       (MOSTLYCLEANFILES): Add debug_msg_cdebug_gabi.err and
+       gdb_index_test_2_gabi.stdout.
+       (debug_msg_cdebug_gabi.o): New.
+       (odr_violation1_cdebug_gabi.o): Likewise.
+       (odr_violation2_cdebug_gabi.o): Likewise.
+       (debug_msg_cdebug_gabi.err): Likewise.
+       (check_SCRIPTS): Add gdb_index_test_2_gabi.sh.
+       (gdb_index_test_cdebug_gabi.o): Likewise.
+       (gdb_index_test_2_gabi): Likewise.
+       (gdb_index_test_2_gabi.stdout): Likewise.
+       * testsuite/gdb_index_test_2_gabi.sh: New file.
+       * testsuite/Makefile.in: Regenerated.
+
+2015-07-09  Han Shen  <shenhan@google.com>
+
+       Use "gold_info" instead of "gold_warning" for erratum fix.
+
+       * aarch64.cc (Target_aarch64::scan_erratum_843419_span): Use
+       'gold_info'.
+       (Target_aarch64::scan_erratum_835769_span): USe 'gold_info'.
+
+2015-07-09  Han Shen  <shenhan@google.com>
+
+       Drop missing symbol warning for arm/aarch64.
+
+       * aarch64.cc (AArch64_relobj::scan_errata): Drop missing symbol warning.
+       * arm.cc (Arm_relobj::scan_section_for_cortex_a8_erratum): Drop missing
+       symbol warning.
+
+2015-07-07  Han Shen  <shenhan@google.com>
+
+       Make gold aarch64 accept long form of mapping symbols.
+
+       * aarch64.cc (AArch64_relobj::do_count_local_symbols): Make legal
+       of mapping symbols.
+
+2015-06-29  Doug Kwan  <dougkwan@google.com>
+
+       * testsuite/arm_bl_out_of_range.s: Align stub table so that it appears
+         at address expected by test.
+       * testsuite/arm_cortex_a8_b.s: Ditto.
+       * testsuite/arm_cortex_a8_b_cond.s: Ditto.
+       * testsuite/arm_cortex_a8_bl.s: Ditto.
+       * testsuite/arm_cortex_a8_blx.s: Ditto.
+       * testsuite/arm_cortex_a8_local.s: Ditto.
+       * testsuite/arm_fix_v4bx.s: Ditto.
+       * testsuite/arm_unaligned_reloc.s: Ditto.
+       * testsuite/thumb_bl_out_of_range.s: Ditto.
+       * testsuite/thumb_bl_out_of_range_local.s: Ditto.
+       * testsuite/thumb_blx_out_of_range.s: Ditto.
+
+2015-06-29  Han Shen  <shenhan@google.com>
+
+       Patch for erratum 843419 internal error.
+
+        * aarch64.cc (Erratum_stub::Insn_utilities): New typedef.
+        (Erratum_stub::update_erratum_insn): New method.
+        (Stub_table::relocate_stubs): Modified to place relocated insn.
+        (AArch64_relobj::fix_errata): Modified gold_assert.
+
+2015-06-12  Han Shen  <shenhan@google.com>
+
+       Fix erratum 835769.
+
+        * aarch64.cc (AArch64_insn_utilities::BYTES_PER_INSN): Move
+        defintion outside class definition.
+        (AArch64_insn_utilities::AARCH64_ZR): New static constant.
+        (AArch64_insn_utilities::aarch64_op31): New member.
+        (AArch64_insn_utilities::aarch64_ra): New member.
+        (AArch64_insn_utilities::aarch64_mac): New member.
+        (AArch64_insn_utilities::aarch64_mlxl): New member.
+        (ST_E_835769): New global enum member.
+        (Stub_table::relocate_stubs): Add 835769 handler.
+        (Stub_template_repertoire::Stub_template_repertoire): Install new
+        stub type.
+        (AArch64_relobj::scan_errata): This func is renamed from
+        scan_erratum_843419.
+        (AArch64_relobj::do_count_local_symbols): Add 835769 handler.
+        (AArch64_relobj::do_relocate_sections): Add 835769 handler.
+        (AArch64_relobj::scan_sections_for_stubs): Add 835769 handler.
+        (Target_aarch64::scan_erratum_835769_span): New method.
+        (Target_aarch64::create_erratum_stub): New method.
+        (Target_aarch64::is_erratum_835769_sequence): New method.
+        (Target_aarch64::scan_erratum_843419_sequence): Move part of the
+        code into create_erratum_stub.
+        * options.h (fix_cortex_a53_835769): New option.
+
+2015-06-11  Cary Coutant  <ccoutant@gmail.com>
+
+       * aarch64.cc (Erratum_stub::STUB_ADDR_ALIGN): Move initialization
+       outside class body.
+       (Reloc_stub::STUB_ADDR_ALIGN): Likewise.
+
+2015-06-11  Cary Coutant  <ccoutant@gmail.com>
+
+       PR gold/17731
+       * layout.cc (corresponding_uncompressed_section_name): New function.
+       (Layout::choose_output_section): Call it.
+       * layout.h (corresponding_uncompressed_section_name): New function.
+       * script-sections.cc (Input_section_info::set_section_name): Check
+       for compressed debug section (.zdebug style).
+
+2015-06-11  Jing Yu  <jingyu@google.com>
+
+       * testsuite/Makefile.am: Add -O0 for script_test_12 test.
+       * testsuite/Makefile.in: Regenerate.
+
+2015-06-11  Davide Italiano  <dccitaliano@gmail.com>
+
+       * gold.h (is_cident): Correct typo.
+
+2015-06-10  Han Shen  <shenhan@google.com>
+       Patch for erratum-843419 (2 of 2 - fix erratum occurrences).
+
+       Now fixing for 843419 is fully functional.
+
+       The first part of the erratum fix CL is here -
+       https://sourceware.org/ml/binutils/2015-04/msg00229.html
+
+       * aarch64.cc(global enum): New constants representing stub types.
+       (Stub_template): New POD struct.
+       (Stub_template_repertoire): New class.
+       (Stub_base): New class.
+       (Erratum_stub): New class.
+       (Reloc_stub): Refactored to be a subclass of Stub_base.
+       (Reloc_stub::Stub_type): Removed.
+       (Reloc_stub::offset): Moved to Stub_base.
+       (Reloc_stub::set_offset): Moved to Stub_base.
+       (Reloc_stub::destination_address): Moved to Stub_base.
+       (Reloc_stub::set_destination_address): Moved to Stub_base.
+       (Reloc_stub::reset_destination_address): Moved to Stub_base.
+       (Reloc_stub::stub_type): Renamed and moved to Stub_base.
+       (Reloc_stub::stub_size): Renamed and moved to Stub_base.
+       (Reloc_stub::stub_insns): Renamed and moved to Stub_base.
+       (Reloc_stub::write): Moved to Stub_base.
+       (Reloc_stub::invalid_offset): Moved to Stub_base.
+       (Reloc_stub::invalid_address): Moved to Stub_base.
+       (Reloc_stub::stub_type_): Renamed and moved to Stub_base.
+       (Reloc_stub::stub_insns_): Moved to Stub_base.
+       (Reloc_stub::offset_): Moved to Stub_base.
+       (Reloc_stub::destination_address_): Moved to Stub_base.
+       (Stub_table::The_aarch64_relobj): New typedef.
+       (Stub_table::The_erratum_stub): New typedef.
+       (Stub_table::The_erratum_stub_less): New typedef.
+       (Stub_table::The_erratum_stub_set): New typedef.
+       (Stub_table::The_erratum_stub_set_iter): New typedef.
+       (Stub_table::empty): Added emptiness testing for erratum stubs.
+       (Stub_table::add_erratum_stub): New method to add an erratum stub.
+       (Stub_table::find_erratum_stub): New method.
+       (Stub_table::find_erratum_stubs_for_input_section): New method.
+       (Stub_table::erratum_stub_address): New method.
+       (Stub_table::update_date_size_changed_p): Modified to handle erratum stubs.
+       (Stub_table::do_addralign): Modified to handle erratum stubs.
+       (Stub_table::erratum_stubs_): New member.
+       (Stub_table::erratum_stub_size_): New member.
+       (Stub_table::relocate_stubs): Modified to handle erratum stubs.
+       (Stub_table::do_write): Modified to handle erratum stubs.
+       (AArch64_relobj::The_erratum_stub): New typedef.
+       (AArch64_relobj::Erratum_stub_set_iter): New typedef.
+       (AArch64_relobj::fix_errata): New method.
+       (Target_aarch64::The_reloc_stub_type): Removed.
+       (Target_aarch64::The_erratum_stub): New typede.
+       (AArch64_relocate_functions::construct_b): New method.
+
+2015-06-08  Nick Clifton  <nickc@redhat.com>
+
+       * po/fr.po: New French Translation.
+
+2015-06-07  Cary Coutant  <ccoutant@gmail.com>
+
+       PR gold/18288
+       * resolve.cc (symbol_to_bits): Remove type parameter; adjust all
+       callers. Don't use STT_COMMON to check for common symbols.
+       (Symbol_table::resolve): Warn if relocatable object has STT_COMMON
+       symbol that's not in a common section.
+       * symtab.h (Symbol::is_common): Don't use STT_COMMON to check for
+       common symbols.
+
+2015-06-04  Cary Coutant  <ccoutant@gmail.com>
+
+       PR gold/18200
+       * Makefile.am (diststuff): Add target.
+       * Makefile.in: Regenerate.
+
+2015-06-04  Cary Coutant  <ccoutant@gmail.com>
+
+       PR gold/17498
+       * object.cc (Sized_relobj_file::do_count_local_symbols): Discard
+       temporary locals in merge sections.
+       * options.cc (General_options::parse_discard_all): New method.
+       (General_options::parse_discard_locals): New method.
+       (General_options::parse_discard_none): New method.
+       (General_options::General_options): Initialize discard_locals_.
+       * options.h (--discard-all): Convert to special option.
+       (--discard-locals): Likewise.
+       (--discard-none): New option.
+       (General_options::discard_all): New method.
+       (General_options::discard_locals): New method.
+       (General_options::discard_sec_merge): New method.
+       (General_options::Discard_locals): New enum.
+       (General_options::discard_locals_): New data member.
+
+2015-06-03  Cary Coutant  <cary@google.com>
+
+       * script-sections.cc (Script_sections::Script_sections): Initialize
+       segments_created_.
+       (Script_sections::create_note_and_tls_segments): Set flag when
+       segments are created.
+       (Script_sections::expected_segment_count): Count PT_INTERP.
+       (Script_sections::attach_sections_using_phdrs_clause): Set flag when
+       segments are created.
+       * script-sections.h (Script_sections::segments_created_): New data
+       member.
+
+2015-06-03  Cary Coutant  <ccoutant@gmail.com>
+
+       PR gold/15370
+       * script-sections.cc
+       (Output_section_element_input::set_section_addresses): When there
+       are several patterns with no sort spec, put all sections in the same
+       bin.
+       * testsuite/Makefile.am (script_test_12): New testcase.
+       (script_test_12i): New testcase.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/script_test_12.t: New test linker script.
+       * testsuite/script_test_12i.t: New test linker script.
+       * testsuite/script_test_12a.c: New test source file.
+       * testsuite/script_test_12b.c: New test source file.
+
+2015-06-02  Cary Coutant  <ccoutant@gmail.com>
+
+       * nacl.h (Sniff_file): Switch parameters to get_view to get an
+       aligned view.
+
+2015-06-03  Cary Coutant  <ccoutant@gmail.com>
+
+        PR gold/17819
+        * gold.cc (queue_final_tasks): When --build-id=tree, queue a
+        separate task to schedule the build id computation.
+        * layout.cc (Hash_task::Hash_task): Remove build_id_blocker,
+        add Output_file and offset.
+        (Hash_task::run): Get and release the input views.
+        (Hash_task::is_runnable): Always return NULL (always runnable).
+        (Layout::queue_build_id_tasks): Remove.
+        (Layout::write_build_id): Add array_of_hashes and size_of_hashes
+        parameters; use them instead of class members.
+        (Build_id_task_runner::run): New function.
+        (Close_task_runner::run): Pass array_of_hashes and size_of_hashes
+        to write_build_id.
+        * layout.h (Layout::queue_build_id_tasks): Remove.
+        (Layout::write_build_id): Add array_of_hashes and size_of_hashes
+        parameters.
+        (Layout::array_of_hashes_): Remove.
+        (Layout::size_of_array_of_hashes_): Remove.
+        (Layout::input_view_): Remove.
+        (Build_id_task_runner): New class.
+        (Close_task_runner::Close_task_runner): Add array_of_hashes and
+        size_of_hashes parameters.
+        (Close_task_runner::array_of_hashes_): New data member.
+        (Close_task_runner::size_of_hashes_): New data member.
+        * testsuite/Makefile.am
+        (flagstest_compress_debug_sections_and_build_id_tree): New test.
+        * testsuite/Makefile.in: Regenerate.
+
+2015-06-01  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * merge.cc (get_input_merge_map): Update for data structure change.
+       (get_or_make_input_merge_map): Update for data structure change.
+       * merge.h (Object_merge_map): Use a std::vector<std::pair>> instead of
+       a std::map. Remove first_shnum_, first_map_, second_shnum_, second_map_.
+
+2015-05-16  Alan Modra  <amodra@gmail.com>
+
+       * reloc.cc (Sized_relobj_file::find_functions): Use function_location.
+       * powerpc.cc (Target_powerpc::do_calls_non_split): New function.
+       (addi_12_1, addis_2_12, addis_12_1, cmpld_7_12_0): New constants.
+       (lis_0): Rename from lis_0_0.
+
+2015-04-29  Cary Coutant  <cary@google.com>
+           Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * gc.h (Garbage_collection::is_section_garbage): Change Object*
+       to Relobj*.
+       (Garbage_collection::add_reference): Likewise.
+       (Garbage_collection::gc_process_relocs): Likewise. Don't push
+       object/shndx pair onto *secvec for dynamic objects. Don't follow
+       relocations pointing to dynamic objects for GC.
+       * icf.cc (Icf::find_identical_sections): Change Object* to Relobj*.
+       (Icf::unfold_section): Likewise.
+       (Icf::is_section_folded): Likewise.
+       (Icf::get_folded_section): Likewise.
+       * icf.h: (Icf::get_folded_section): Likewise.
+       (Icf::unfold_section): Likewise.
+       (Icf::is_section_folded): Likewise.
+       (Icf::section_has_function_pointers): Likewise.
+       (Icf::set_section_has_function_pointers): Likewise.
+       * object.h (Section_id): Likewise.
+       (Const_section_id): Likewise.
+       * output.cc (Output_section::update_section_layout): Likewise.
+       * output.h: (Output_section_lookup_maps::find_relaxed_input_section):
+       Likewise.
+       * plugin.cc (update_section_order): Likewise.
+       (unique_segment_for_sections): Likewise.
+       * powerpc.cc (Powerpc_relobj::add_reference): Likewise.
+       (Target_powerpc::do_gc_add_reference): Likewise.
+       (Target_powerpc::gc_process_relocs): Likewise.
+       (Target_powerpc::do_gc_add_reference): Likewise.
+       * symtab.cc (Symbol_table::is_section_folded): Likewise.
+       (Symbol_table::gc_mark_symbol): Likewise.
+       * symtab.h: (Symbol_table::is_section_folded): Likewise.
+       * target.h: (Sized_target::gc_add_reference): Likewise.
+       (Sized_target::do_gc_add_reference): Likewise.
+
+2015-04-29  Nick Clifton  <nickc@redhat.com>
+
+       * po/fi.po: Updated Finnish translation.
+
+2015-04-28  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::do_dynsym_value): Use Address rather
+       than unsigned int for find_global_entry result temp.  Compare
+       against invalid_address.
+       (Target_powerpc::do_plt_address_for_global): Likewise.
+       (Target_powerpc::Relocate::relocate): Likewise.  Don't assert
+       on plt call stub existence for debug info.  Do assert for plt
+       and global entry stub existence if an alloc section.
+
+2015-04-28  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::Relocate::relocate): Don't assert
+       on missing global entry stub due to bogus debug info.
+
+2015-04-27  Han Shen  <shenhan@google.com>
+
+       * options.h (--fix-cortex-a53-843419): Rename option.
+       * aarch64.cc (AArch64_relobj::do_count_local_symbols): Use renamed
+       option.
+       (AArch64_relobj::scan_sections_for_stubs): Use renamed option.
+
+2015-04-27  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       PR gold/18327
+       * output.cc (Output_section::is_input_address_mapped): Assume a missing
+       entry is mapped.
+       * testsuite/Makefile.am: Add the eh_test test.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/eh_test_a.cc: New test.
+       * testsuite/eh_test_b.cc: New test.
+
+2015-04-23  Sriraman Tallam  <tmsriram@google.com>
+
+       * options.h (--weak-unresolved-symbols): New option.
+       * symtab.cc (Symbol_table::sized_write_globals): Change symbol
+       binding to weak with new option.
+       * symtab.h (is_weak_undefined): Check for new option.
+       (is_strong_undefined): Check for new option.
+       * testsuite/Makefile.am (weak_unresolved_symbols_test): New test.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/weak_unresolved_symbols_test.cc: New file.
+
+2015-04-20  Ian Coolidge  <icoolidge@google.com>
+
+       * symtab.cc (Symbol::should_add_dynsym_entry): Return true for
+       GNU_UNIQUE.
+
+2015-04-17  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * gc.cc (Garbage_collection::do_transitive_closure): Use back and
+       push_back.
+       * gc.h (Garbage_collection): Use a std::vector instead of a std::queue.
+       * object.cc (Sized_relobj_file::do_layout): Use push_back.
+       * powerpc.cc (process_gc_mark): Use push_back.
+       (Target_powerpc::do_gc_mark_symbol): Use push_back.
+       * symtab.cc (Symbol_table::gc_mark_symbol): Use push_back.
+
+2015-04-16  Han Shen  <shenhan@google.com>
+
+       * aarch64.cc (AArch64_insn_utilities): New utility class.
+       (AArch64_relobj::Mapping_symbol_position): New struct.
+       (AArch64_relobj::Mapping_symbol_info): New typedef.
+       (AArch64_relobj::do_count_local_symbols): New function overriding
+       parent's implementation.
+       (AArch64_relobj::mapping_symbol_info_): New member
+       (AArch64_relobj::scan_erratum_843419): New method.
+       (Target_aarch64::scan_erratum_843419_span): New method.
+       (Target_aarch64::is_erratum_843419_sequence): New method.
+       * options.h (fix_cortex_a53): New option.
+
+2015-04-09  Cary Coutant  <ccoutant@google.com>
+
+       * symtab.cc (Symbol::final_value_is_known): Check for TLS symbol
+       in a PIE link.
+       * testsuite/Makefile.am (tls_pie_test.sh): New test.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/tls_pie_test.sh: New.
+
+2015-04-09  Cary Coutant  <ccoutant@google.com>
+
+       * debug.h (DEBUG_LOCATION): New.
+       (DEBUG_ALL): Include DEBUG_LOCATION.
+       (debug_string_to_enum): Add DEBUG_LOCATION.
+       * dwarf_reader.cc (Sized_dwarf_line_info::read_lines): Fix debug
+       output to print correct context.
+       (Sized_dwarf_line_info::do_addr2line): Add debug output. Return
+       up to 4 more locations at the beginning of the function.
+       * symtab.cc (Symbol_table::detect_odr_violations): Get canonical
+       result before sorting list of line numbers.
+       * testsuite/debug_msg.sh: Allow range of line numbers for
+       canonical results on optimized code.
+
+2015-04-07  HC Yen <hc.yen@mediatek.com>
+
+       Add AArch32 support for gold linker.
+       gold/
+       * arm.cc: Add V8 arch combine table.
+
+2015-04-06  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * aarch64.cc (do_reloc_addend): Fix signature to match the parent one.
+
+2015-04-06  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * gc.cc (Garbage_collection::do_transitive_closure): Avoid a call
+       to find by using the return value of insert.
+
+2015-04-06  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * gc.cc (Garbage_collection::do_transitive_closure): Avoid a copy
+       constructor call.
+
+2015-04-06  Ilya Tocar  <ilya.tocar@intel.com>
+
+       PR gold/17641
+       * x86_64.cc (Target_x86_64::can_convert_mov_to_lea): New.
+       (Target_x86_64::Scan::local): Don't create GOT entry, when we
+       can convert mov to lea.
+       (Target_x86_64::Scan::global): Ditto.
+       (Target_x86_64::Relocate::relocate): Convert mov foo@GOTPCREL(%rip),
+       %reg to lea foo(%rip), %reg if possible.
+       * testsuite/Makefile.am (x86_64_mov_to_lea): New test.
+       * testsuite/x86_64_mov_to_lea1.s: New.
+       * testsuite/x86_64_mov_to_lea2.s: Ditto.
+       * testsuite/x86_64_mov_to_lea3.s: Ditto.
+       * testsuite/x86_64_mov_to_lea4.s: Ditto.
+       * testsuite/x86_64_mov_to_lea.sh: Ditto.
+
+2015-04-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure: Regenerated.
+
+2015-04-01  Ilya Tocar  <ilya.tocar@intel.com>
+
+       PR gold/17640
+       * i386.cc (Target_i386::can_convert_mov_to_lea): New.
+       (Target_i386::Scan::local): Don't create GOT entry, when we
+       can convert GOT to GOTOFF.
+       (Target_i386::Scan::global): Ditto.
+       (Target_i386::Relocate::relocate): Convert  mov foo@GOT(%reg), %reg to
+       lea foo@GOTOFF(%reg), %reg if possible.
+       * testsuite/Makefile.am (i386_mov_to_lea): New test.
+       * testsuite/i386_mov_to_lea1.s: New.
+       * testsuite/i386_mov_to_lea2.s: Ditto.
+       * testsuite/i386_mov_to_lea3.s: Ditto.
+       * testsuite/i386_mov_to_lea4.s: Ditto.
+       * testsuite/i386_mov_to_lea5.s: Ditto.
+       * testsuite/i386_mov_to_lea.sh: Ditto.
+
+2015-04-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * Makefile.am (ZLIB): New.
+       (ZLIBINC): Likewise.
+       (AM_CFLAGS): Add $(ZLIBINC).
+       (AM_CXXFLAGS): Likewise.
+       (ldadd_varldadd_var): Add $(ZLIB).
+       (incremental_dump_LDADD): Likewise.
+       (dwp_LDADD): Likewise.
+       * compressed_output.cc: Don't check HAVE_ZLIB_H to include
+       <zlib.h>.
+       (zlib_compress): Don't check HAVE_ZLIB_H.
+       (zlib_decompress): Likewise.
+       * options.h (compress_debug_sections): Likewise.
+       * configure.ac (AM_CONDITIONAL): Removed.
+       * testsuite/Makefile.am (ZLIB): New.
+       (LDADD): Add $(ZLIB).
+       Don't check HAVE_ZLIB.
+       * Makefile.in: Regenerated.
+       * config.in: Likewise.
+       * configure: Likewise.
+       * testsuite/Makefile.in: Likewise.
+
+2015-03-30  Jing Yu  <jingyu@google.com>
+
+       * aarch64-reloc.def: New TLSLD_ADD_DTPREL_HI12,
+       TLSLD_ADD_DTPREL_LO12_NC.
+       * aarch64.cc (Target_aarch64::define_tls_base_symbol): Always let
+       _TLS_MODULE_BASE_ point to the start of tls segment.
+       (Target_aarch64::optimize_tls_reloc): Add cases for
+       R_AARCH64_TLSLD_ADD_DTPREL_HI12 and
+       R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC.
+       (Target_aarch64::Scan::local): Likewise.
+       (Target_aarch64::Scan::global): Likewise.
+       (Target_aarch64::Relocate::relocate): Likewise.
+       (Target_aarch64::Relocate::relocate_tls): Likewise. And remove
+       subtracting tls segment size from symbol value for TLSLD_*_DTPREL
+       relocations.
+
+2015-03-27  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * merge.cc (Object_merge_map::add_mapping): call
+       Object_merge_map::Input_merge_map::add_mapping.
+       (Object_merge_map::Input_merge_map::add_mapping): New.
+       (Output_merge_data::do_add_input_section): Call
+       get_or_make_input_merge_map before a loop.
+       (Output_merge_string<Char_type>::finalize_merged_data): Call
+       get_or_make_input_merge_map before a loop.
+       * merge.h (Object_merge_map): Make Input_merge_map public.
+       * object.cc (Relobj::add_merge_mapping): Use get_or_create_merge_map.
+       (Relobj::get_or_create_merge_map): New.
+       * object.h (Relobj::get_or_create_merge_map): New.
+
+2015-03-24  Alan Modra  <amodra@gmail.com>
+
+       PR 18147
+       * powerpc.cc (Target_powerpc::Relocate::relocate): Don't report
+       relocation errors for branches to strong undefined symbols.
+
+2015-03-23  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * merge.cc (Object_merge_map::get_input_merge_map): Make it const.
+       (Object_merge_map::is_merge_section_for): Remove.
+       (Object_merge_map::find_merge_section): New.
+       * merge.h (Object_merge_map::is_merge_section_for): Remove.
+       (Object_merge_map::find_merge_section): New.
+       (Object_merge_map::get_input_merge_map): Add a const version.
+       * object.cc (Relobj::is_merge_section_for): Remove.
+       (Relobj::find_merge_section): New.
+       * object.h (Relobj::is_merge_section_for): Remove.
+       (Relobj::find_merge_section): New.
+       * output.cc
+       (Output_section::Input_section::is_merge_section_for): Remove.
+       (Output_section::add_merge_input_section): Don't call
+       add_merge_input_section.
+       (Output_section::find_merge_section): Return const. Use
+       object->find_merge_section.
+       (Output_section::build_lookup_maps): Don't build a map for
+       merge sections.
+       (Output_section::is_input_address_mapped): Return false if
+       section is not found.
+       (Output_section::find_starting_output_address): Use
+       find_merge_section instead of is_merge_section_for.
+       (Output_section::add_script_input_section):  Don't build a map for
+       merge sections.
+       * output.h (Output_section_lookup_maps::merge_sections_by_id_): Remove.
+       (Output_section_lookup_maps::find_merge_section): Remove.
+       (Output_section_lookup_maps::add_merge_input_section) Remove.
+       (Output_section::find_merge_section): Return const.
+
+2015-03-22  Cary Coutant  <cary@google.com>
+
+       PR gold/18106
+       * i386.cc (Target_i386::Relocate::tls_gd_to_ie): Fix support for
+       non-SIB form of lea, with nop after the call.
+
+2015-03-21  Cary Coutant  <cary@google.com>
+
+       PR gold/14217
+       * output.cc (Output_segment::is_first_section_relro): Don't ignore
+       .tdata section.
+       (Output_segment::set_section_addresses): Don't align size of relro
+       segment for .tbss.
+
+2015-03-21  Cary Coutant  <cary@google.com>
+
+       PR gold/18010
+       * stringpool.cc (Stringpool_template): Don't optimize if section
+       alignment is greater than sizeof(char).
+
+2015-03-21  Cary Coutant  <cary@google.com>
+
+       PR gold/18048
+       * script-c.h (script_include_directive): Add first_token parameter.
+       * script.cc (script_include_directive): Add first_token parameter, and
+       pass it to read_script_file.
+       * yyscript.y (PARSING_SECTIONS_BLOCK, PARSING_SECTION_CMDS)
+       (PARSING_MEMORY_DEF): New tokens.
+       (top): Add new productions for INCLUDE files.
+       (file_cmd): Replace file_or_sections_cmd with copy of its productions.
+       Pass PARSING_LINKER_SCRIPT to script_include_directive.
+       (section_block_cmd): Likewise; pass PARSING_SECTIONS_BLOCK.
+       (section_cmd): Pass PARSING_SECTION_CMDS.
+       (file_or_sections_cmd): Remove.
+       (memory_def): Pass PARSING_MEMORY_DEF.
+       * testsuite/Makefile.am (memory_test_2): New test.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/memory_test_inc.t: New script file.
+       * testsuite/memory_test_inc_1.t.src: New script file.
+       * testsuite/memory_test_inc_2.t.src: New script file.
+       * testsuite/memory_test_inc_3.t.src: New script file.
+
+2015-03-21  Cary Coutant  <cary@google.com>
+
+       * dwp.cc (Sized_relobj_dwo::do_section_contents): Delete.
+       (Sized_relobj_dwo::setup): Build compressed section map.
+       (Sized_relobj_dwo::do_decompressed_section_contents): Delete.
+       * dynobj.cc (Sized_dynobj::base_read_symbols): Build compressed
+       section map.
+       * object.cc (Sized_relobj_file::Sized_relobj_file): Remove
+       compressed_sections_ field.
+       (build_compressed_section_map): Take Object instead of
+       Sized_relobj_file parameter; add decompress_if_needed parameter.
+       (Sized_relobj_file::do_find_special_sections): Store compressed
+       section map in parent Object.
+       (Sized_relobj_file::do_decompressed_section_contents): Move
+       implementation to Object::decompressed_section_contents.
+       (Sized_relobj_file::do_discard_decompressed_sections): Move
+       implementation to Object::discard_decompressed_sections.
+       * object.h (build_compressed_section_map): Declare.
+       (Object::Object): Add compressed_sections_ field.
+       (Object::section_is_compressed): Move implementation here.
+       (Object::decompressed_section_contents): De-virtualize.
+       (Object::discard_decompressed_sections): De-virtualize.
+       (Object::do_section_is_compressed): Delete.
+       (Object::do_decompressed_section_contents): Delete.
+       (Object::set_compressed_sections): New method.
+       (Object::compressed_sections): New method.
+       (Object::compressed_sections_): New data member.
+       (Compressed_section_info, Compressed_section_map): Move to top of file.
+       (Sized_relobj_file::do_section_is_compressed): Delete.
+       (Sized_relobj_file::do_decompressed_section_contents): Delete.
+       (Sized_relobj_file::do_discard_decompressed_sections): Delete.
+       (Sized_relobj_file::compressed_sections_): Move to Object class.
+
+2015-03-21  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/18152
+       * gold.cc (queue_middle_tasks): Finalize .eh_frame after laying out
+       deferred objects.
+
+2015-03-11  Cary Coutant  <ccoutant@google.com>
+
+       * options.cc (General_options::finalize): Don't allow -z relro
+       with incremental linking.
+       * testsuite/Makefile.am (incremental_test): Add -z norelro.
+       (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.
+
+2015-03-09  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/14675
+       * ehframe.cc (Eh_frame::add_ehframe_input_section): Change return type;
+       return enum indicating whether .eh_frame section is empty, optimizable,
+       unrecognized, or an end marker. Adjust explicit instantiations.
+       * ehframe.h (Eh_frame::Eh_frame_section_disposition): New enum type.
+       (Eh_frame::add_ehframe_input_section): Change return type.
+       * gold.cc (queue_middle_tasks): Call Layout::finalize_eh_frame_section.
+       * layout.cc (Layout::layout_eh_frame): Don't add optimized sections
+       to the .eh_frame output section until we see the end marker.
+       (Layout::finalize_eh_frame_section): New.
+       * layout.h: (Layout::finalize_eh_frame_section): New.
+
+2015-03-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * output.cc (Relobj::initialize_input_to_output_map<size>):
+       Remove typename on elfcpp::Elf_types<size>::Elf_Addr.
+
+2015-03-04  Cary Coutant  <ccoutant@google.com>
+
+       * parameters.cc (Parameters::set_target_once): Call
+       Target::select_as_default_target just once from here...
+       (set_parameters_target): ...instead of from here.
+
+2015-03-04  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * ehframe.cc (Cie::set_output_offset): Pass in and use a
+       Output_section_data instead of a Merge_map.
+       (Eh_frame::Eh_frame): Don't initialize merge_map_.
+       (Eh_frame::read_cie): Use add_merge_mapping instead of
+       Merge_map::add_mapping.
+       (Eh_frame::read_fde): Ditto.
+       (Eh_frame::set_final_data_size): Use this instead of this->merge_map_.
+       (Eh_frame::do_output_offset): Use merge_output_offset istead of
+       merge_map_->get_output_offset.
+       (Eh_frame::do_is_merge_section_for): Delete.
+       * ehframe.h (Fde::add_mapping): Pass in and use a Output_section_data
+       instead of a Merge_map.
+       (Cie::set_output_offset): Pass in a Output_section_data instead of a
+       Merge_map.
+       (Eh_frame::do_is_merge_section_for): Delete.
+       (Eh_frame::merge_map_): Delete.
+       * merge.cc (Object_merge_map::get_or_make_input_merge_map): Pass in
+       and use a Output_section_data instead of a Merge_map.
+       (Object_merge_map::add_mapping): Ditto.
+       (Object_merge_map::get_output_offset): Remove the merge_map argument.
+       (Object_merge_map::is_merge_section_for): Pass in and use a
+       Output_section_data instead of a Merge_map.
+       (Merge_map): Delete.
+       (Output_merge_base::do_output_offset): Use merge_output_offset instead
+       of merge_map_.get_output_offset.
+       (Output_merge_base::do_is_merge_section_for): Delete.
+       (Output_merge_data::do_add_input_section): Use
+       object->add_merge_mapping instead of add_mapping.
+       (Output_merge_string<Char_type>::finalize_merged_data): Ditto.
+       * merge.h (Merge_map): Delete forward declaration.
+       (Object_merge_map::add_mapping): Pass in and use a Output_section_data
+       instead of a Merge_map.
+       (Object_merge_map::get_output_offset): Remove the merge_map argument.
+       (Object_merge_map::is_merge_section_for): Pass in and use a
+       Output_section_data instead of a Merge_map.
+       (Input_merge_map::Object_merge_map::merge_map): Replace with
+       output_data.
+       (Object_merge_map::get_or_make_input_merge_map): Pass in and use a
+       Output_section_data instead of a Merge_map.
+       (Merge_map): Delete.
+       (Output_merge_base::Output_merge_base): Don't initialize merge_map_.
+       (Output_merge_base::do_is_merge_section_for): Delete.
+       (Output_merge_base::add_mapping): Delete.
+       (Output_merge_base::merge_map_): Delete.
+       * object.cc (Relobj::initialize_input_to_output_map): New.
+       (Relobj::initialize_input_to_output_map): New.
+       (Relobj::merge_output_offset): New.
+       (Relobj::is_merge_section_for): New.
+       (Relobj::initialize_input_to_output_map): Instantiate for 32 and 64
+       bits.
+       * object.h (Relobj::merge_map): Delete.
+       (initialize_input_to_output_map): New.
+       (set_merge_map): Delete.
+       (add_merge_mapping): New.
+       (merge_output_offset): New.
+       (is_merge_section_for): New.
+       * output.cc (Output_section::Input_section::is_merge_section_for):
+       Use object->is_merge_section_for.
+       * output.h (Output_section_data::is_merge_section_for): Delete.
+       (Output_section_data::do_is_merge_section_for): Delete.
+       * reloc.cc (Merged_symbol_value<size>::initialize_input_to_output_map):
+       Use object->initialize_input_to_output_map.
+       (Merged_symbol_value<size>::value_from_output_section): Use
+       object->merge_output_offset.
+
+2015-03-02  Peter Collingbourne  <pcc@google.com>
+            Cary Coutant  <ccoutant@google.com>
+
+       * output.cc (Output_section::add_merge_input_section): Do not
+       attempt to merge sections with an entsize of 0.
+
+2015-03-02  Khem Raj  <raj.khem@gmail.com>
+
+       * attributes.h (class Output_attributes_section_data ): Add
+       do_print_to_mapfile function.
+
+2015-02-24  Alan Modra  <amodra@gmail.com>
+
+       PR 18010
+       * powerpc.cc (Powerpc_relocate_functions::addr16_ds): Always
+       complain if value is not a multiple of four.
+       (Target_powerpc::Relocate::relocate): Correct handling of
+       R_POWERPC_GOT_TPREL16 and R_POWERPC_GOT_TPREL16_LO for ppc64.
+
+2015-02-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure.ac (default_size): Set to 32 for x32.
+       * configure: Regenerated.
+
+2015-02-18  Alan Modra  <amodra@gmail.com>
+
+       PR 17954
+       * powerpc.cc (Global_symbol_visitor_opd::operator()): Set default
+       visibility.
+
+2015-02-17  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * gc.h (Garbage_collection::add_reference): Don't use find.
+
+2015-02-17  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * object.cc (write_local_symbols): avoid std::vector copy.
+
+2015-02-17  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * merge.cc (get_output_offset): Use upper_bound instead of lower_bound.
+
+2015-02-09  Mark Wielaard  <mjw@redhat.com>
+
+       * gdb-index.cc (Gdb_index_info_reader::visit_top_die): Recognize
+       DW_LANG_Fortran03 and DW_LANG_Fortran08.
+
+2015-02-16  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/13577
+       PR gold/16992
+       * layout.cc (Layout::finish_dynamic_section): Don't set DT_SYMBOLIC or
+       DF_SYMBOLIC if --dynamic-list option is used.
+       * options.cc (General_options::finalize): --dynamic-list is not
+       mutually exclusive with -Bsymbolic.
+       * symtab.h (Symbol::is_preemptible): Don't exclude dynamic symbols not
+       listed in --dynamic-list.
+       * testsuite/Makefile.am (dynamic_list_lib2.so): Add
+       -Bsymbolic-functions.
+       * testsuite/Makefile.in: Regenerate.
+
+2015-02-16  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/17971
+       * incremental.cc: Remove redundant include of "output.h".
+
+2015-02-12  Jing Yu  <jingyu@google.com>
+
+       * aarch64-reloc.def (TLSLE_MOVW_TPREL_G2, TLSLE_MOVW_TPREL_G1,
+       TLSLE_MOVW_TPREL_G1_NC, TLSLE_MOVW_TPREL_G0, TLSLE_MOVW_TPREL_G0_NC,):
+       New relocation.
+       * aarch64.cc (Target_aarch64::Scan::local): Add cases for new
+       TLSLE_MOVW_* relocations.
+       (Target_aarch64::Scan::global): Likewise.
+       (Target_aarch64::Relocate::relocate): Likewise.
+       (Target_aarch64::Relocate::relocate_tls): Add cases and handlings
+       for new TLSLE_MOVW_* relocations.
+
+2015-02-11  Will Newton  <will.newton@linaro.org>
+
+       PR gold/13321
+       * arm.cc (Target_arm::make_plt_section): Create an ARM
+       state mapping symbol at the start of the PLT.
+
+2015-02-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * testsuite/Makefile.am (two_file_shared_2_pic_1_test_DEPENDENCIES):
+       Replace two_file_shared_2.so with two_file_shared_1.so.
+       * testsuite/Makefile.in: Regenerated.
+
+2015-02-09  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/Makefile.am (MOSTLYCLEANFILES): Add libweak_undef_2.a,
+       plugin_test_thin.a and defsym_test.
+       * testsuite/Makefile.in: Regenerate.
+
+2015-02-04  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * merge.cc (do_add_input_section): Combine loop epilogue into main loop
+       body.
+
+2015-02-04  Peter Collingbourne  <pcc@google.com>
+
+       * plugin.cc (Pluginobj::get_symbol_resolution_info): Resolve
+       forwarding symbols when computing symbol resolution info for plugins.
+       * plugin.h (Plugin_manager::symtab): New method.
+       (Pluginobj::get_symbol_resolution_info): Add symtab parameter.
+
+2015-02-03  Cary Coutant  <ccoutant@google.com>
+           Peter Collingbourne  <pcc@google.com>
+
+       PR gold/15660
+       * archive.cc (Thin_archive_object_unlocker): New class.
+       (Archive::include_member): Unlock external members of thin archives.
+       * testsuite/Makefile.am (plugin_test_1): Rename .syms files.
+       (plugin_test_2): Likewise.
+       (plugin_test_3): Likewise.
+       (plugin_test_4): Likewise.
+       (plugin_test_5): Likewise.
+       (plugin_test_6): Likewise.
+       (plugin_test_7): Likewise.
+       (plugin_test_8): Likewise.
+       (plugin_test_9): Likewise.
+       (plugin_test_10): Likewise.
+       (plugin_test_11): New test case.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/plugin_test.c (claim_file_hook): Check for parallel .syms
+       file to decide whether to claim file.
+       (all_symbols_read_hook): Likewise.
+       * testsuite/plugin_test_1.sh: Adjust expected output.
+       * testsuite/plugin_test_2.sh: Likewise.
+       * testsuite/plugin_test_3.sh: Likewise.
+       * testsuite/plugin_test_6.sh: Likewise.
+       * testsuite/plugin_test_tls.sh: Likewise.
+       * testsuite/plugin_test_11.sh: New testcase.
+
+2015-02-03  Cary Coutant  <ccoutant@google.com>
+
+       * descriptors.cc (Descriptors::open): Set artificially-low limit for
+       file descriptors when debugging enabled. Add debug output.
+       (Descriptors::release): Add debug output.
+       (Descriptors::close_some_descriptor): Likewise.
+       (Descriptors::close_all): Likewise.
+       * fileread.cc (File_read::lock): Likewise.
+       (File_read::unlock): Likewise.
+
+2015-02-02  Cary Coutant  <ccoutant@google.com>
+
+       * x86_64.cc (Target_x86_64::Relocate::relocate_tls): Check for
+       executable output file.
+
+2015-01-22  Han Shen  <shenhan@google.com>
+
+       * arm.cc (Target_arm::Target_arm): Add initialization for new members.
+       (Target_arm::do_plt_address_for_global): New method.
+       (Target_arm::do_plt_address_for_local): New method.
+       (Target_arm::rel_irelative_section): New method.
+       (Target_arm::make_data_plt): Add more parameters for plt ctor.
+       (Target_arm::do_make_data_plt): Add more parameters for plt ctor.
+       (Target_arm::Scan::symbol_needs_plt_entry): Add ifunc support.
+       (Target_arm::Scan::reloc_needs_plt_for_ifunc): Add ifunc support.
+       (Target_arm::Scan::check_non_pic): Add ifunc support.
+       (Target_arm::Scan::local): Add ifunc support.
+       (Target_arm::Scan::global): Add ifunc support.
+       (Target_arm::make_plt_section): New method.
+       (Target_arm::make_plt_entry): Change to call to make_plt_section.
+       (Target_arm::make_local_ifunc_plt_entry): New method.
+       (Target_arm::got_irelative_): New member.
+       (Target_arm::rel_irelative_): New member.
+       (Target_arm::got_section): Add creation for got_irelative_.
+       (Target_arm::rel_dyn_section): Add creation for rel_irelative_.
+       (Target_arm::Relocate::relocate): Properly set local ifunc address.
+       (Target_arm::do_dynsym_value): Properly set global ifunc address.
+       (Target_arm::scan_reloc_for_stub): Properly set global ifunc address.
+       (Output_data_plt_arm::IRelative_data): New type.
+       (Output_data_plt_arm::Output_data_plt_arm): Add more parameters.
+       (Output_data_plt_arm::add_entry): Add more parameters.
+       (Output_data_plt_arm::add_relocation): New method.
+       (Output_data_plt_arm::add_local_ifunc_entry): New method.
+       (Output_data_plt_arm::rel_irelative): New method.
+       (Output_data_plt_arm::entry_count): Modified.
+       (Output_data_plt_arm::address_for_global): New method.
+       (Output_data_plt_arm::address_for_local): New method.
+gold/
+       (Output_data_plt_arm::set_final_data_size): Add irelative_count_.
+       (Output_data_plt_arm::insert_irelative_data): New method.
+       (Output_data_plt_arm::irelative_rel_): New member.
+       (Output_data_plt_arm::got_): New member.
+       (Output_data_plt_arm::got_irelative_): New member.
+       (Output_data_plt_arm::irelative_count_): New member.
+       (Output_data_plt_arm::IRelative_data_vec): New typedef.
+       (Output_data_plt_arm::irelative_data_vec_): New member.
+       (Output_data_plt_arm::do_write): Write out irelative entries.
+       (Output_data_plt_arm_standard::Output_data_plt_arm_standard): Add
+       more parameters to ctor.
+       (Output_data_plt_arm_nacl::Output_data_plt_arm_nacl): Add
+       more parameters to ctor.
+       * output.h (Output_data_reloc::add_local_relative): New method.
+       * aarch64.cc (Output_data_plt_aarch64): Fixed typo in comment.
+
+2015-01-29  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::Relocate::relocate): Correct GOT_TLSLD
+       and GOT_TLSGD to LE optimization.
+
+2015-01-28  Cary Coutant  <ccoutant@google.com>
+
+       * x86_64.cc (Target_x86_64::Scan::global): Allow IE-to-LE optimization
+       for undef TLS symbols.
+       (Target_x86_64::Relocate::relocate_tls): Likewise.
+       (Target_x86_64::Relocate::tls_ie_to_le): Likewise.
+
+2015-01-25  Cary Coutant  <ccoutant@google.com>
+
+       * output.cc (Output_segment::set_section_addresses): Fix calculation
+       of size of relro segment.
+
 2015-01-22  Alan Modra  <amodra@gmail.com>
 
        * powerpc.cc (Target_powerpc::Scan::local <got relocs>): Correct
This page took 0.06352 seconds and 4 git commands to generate.