autoreconf
[external/binutils.git] / gold / ChangeLog
index 164da85..7304185 100644 (file)
@@ -1,3 +1,857 @@
+2014-03-12  Alan Modra  <amodra@gmail.com>
+
+       * Makefile.in: Regenerate.
+
+2014-03-10  Sasa Stankovic  <Sasa.Stankovic@imgtec.com>
+
+       * symtab.h (Symbol::set_nonvis): New function.
+
+2014-03-10  Sasa Stankovic  <Sasa.Stankovic@imgtec.com>
+
+       * symtab.cc (Sized_symbol<32>::init_output_data):
+       Instantiate the template.
+       (Sized_symbol<64>::init_output_data): Likewise.
+
+2014-03-10  Sasa Stankovic  <Sasa.Stankovic@imgtec.com>
+
+       * symtab.cc (Symbol_table::sized_write_globals): Allow a target to
+       adjust dynamic symbol value.
+       * target.h (Target::adjust_dyn_symbol): New function.
+       (Target::do_adjust_dyn_symbol): New function.
+
+2014-03-10  Sasa Stankovic  <Sasa.Stankovic@imgtec.com>
+  
+       * output.cc (Output_data_dynamic::Dynamic_entry::write):
+       Get the value of DYNAMIC_CUSTOM dynamic entry.
+       * output.h (Output_data_dynamic::add_custom): New function.
+       (Dynamic_entry::Dynamic_entry): New constructor for DYNAMIC_CUSTOM
+       dynamic entry.
+       (enum Dynamic_entry::Classification): Add DYNAMIC_CUSTOM.
+       * target.h (Target::dynamic_tag_custom_value): New function.
+       (Target::do_dynamic_tag_custom_value): New function.
+
+2014-03-10  Sasa Stankovic  <Sasa.Stankovic@imgtec.com>
+
+       * symtab.cc (Symbol_table::set_dynsym_indexes): Allow a target to set
+       dynsym indexes.
+       * target.h (Target::has_custom_set_dynsym_indexes): New function.
+       (Target::do_has_custom_set_dynsym_indexes): New function.
+       (Target::set_dynsym_indexes): New function.
+       (Target::do_set_dynsym_indexes): New function.
+
+2014-03-07  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Powerpc_relocate_functions::Overflow_check): Add
+       CHECK_UNSIGNED, CHECK_LOW_INSN, CHECK_HIGH_INSN.
+       (Powerpc_relocate_functions::has_overflow_unsigned): New function.
+       (Powerpc_relocate_functions::has_overflow_bitfield,
+       overflowed): Use the above.
+       (Target_powerpc::Relocate::relocate): Correct overflow checking
+       for a number of relocations.  Modify overflow test for 16-bit
+       fields in instructions to signed/unsigned according to whether
+       the field takes a signed or unsigned value.
+
+2014-03-05  Alan Modra  <amodra@gmail.com>
+
+       Update copyright years.
+
+2014-03-05  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::Scan::local, global): Support
+       R_PPC64_ADDR64_LOCAL.
+       (Target_powerpc::Relocate::relocate): Likewise.
+
+2014-03-03  Alan Modra  <amodra@gmail.com>
+
+       * dwp.cc (print_version): Update copyright year to current.
+
+2014-02-10  Alan Modra  <amodra@gmail.com>
+
+       * po/gold.pot: Regenerate.
+
+2014-02-06  Cary Coutant  <ccoutant@google.com>
+
+       Fix problem where -u is ignored when a weak undef is seen.
+
+       * archive.cc (Library_base::should_include_member): Reorder
+       code to check for -u option if a weak undef has already been seen.
+       * testsuite/Makefile.am (weak_undef_test_2): New test case.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/weak_undef_file3.cc: New file.
+       * testsuite/weak_undef_file4.cc: New file.
+       * testsuite/weak_undef_test_2.cc: New file.
+
+2014-02-05  Cary Coutant  <ccoutant@google.com>
+
+       Fix issues with gold undefined symbol diagnostics.
+
+       PR binutils/15435
+       * errors.cc (Errors::undefined_symbol): Move undef vtable symbol
+       check to here.
+       * target-reloc.h (is_strong_undefined): New function.
+       (relocate_section): Move undef vtable symbol check from here.
+       Check for is_strong_undefined.
+
+2014-02-05  Cary Coutant  <ccoutant@google.com>
+    
+       Fix problems with the --dynamic-list option.
+
+       PR gold/13577
+       * options.cc (General_options::parse_dynamic_list):
+       Set have_dynamic_list_.
+       (General_options::General_options): Initialize have_dynamic_list_.
+       (General_options::finalize): Turn off -Bsymbolic and
+       -Bsymbolic-functions if --dynamic-list provided.
+       * options.h (General_options::have_dynamic_list): New function.
+       (General_options::have_dynamic_list_): New data member.
+       * symtab.h (Symbol::is_preemptible): Handle --dynamic-list
+       correctly.
+   
+       PR gold/16530
+       * symtab.cc (Symbol_table::add_from_relobj): If symbol is named
+       in --dynamic-list, mark it.
+   
+       * testsuite/Makefile.am (gc_dynamic_list_test.sh): New test case.
+       (dynamic_list_2): New test case.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/dynamic_list_2.cc: New file.
+       * testsuite/dynamic_list_2.t: New file.
+       * testsuite/dynamic_list_lib1.cc: New file.
+       * testsuite/dynamic_list_lib2.cc: New file.
+       * testsuite/gc_dynamic_list_test.c: New file.
+       * testsuite/gc_dynamic_list_test.sh: New file.
+       * testsuite/gc_dynamic_list_test.t: New file.
+
+2014-01-28  Cary Coutant  <ccoutant@google.com>
+
+       Add .gdb_index version 7 support.
+
+       * gold/dwarf_reader.cc: include <utility> (for make_pair).
+       (Dwarf_abbrev_table::do_read_abbrevs): Check for compressed
+       debug sections.
+       (Dwarf_ranges_table::read_ranges_table): Likewise.
+       (Dwarf_pubnames_table::read_section): Check for GNU-style
+       sections, and for compressed debug sections.
+       (Dwarf_pubnames_table::read_header): Compute end address of table.
+       (Dwarf_pubnames_table::next_name): Return flag_byte.  Check
+       for end of list by offset, not by offset == 0.
+       (Dwarf_info_reader::do_read_string_table): Check for compressed
+       debug sections.
+       * gold/dwarf_reader.h (Dwarf_pubnames_table::Dwarf_pubnames_table):
+       Initialize new data members.
+       (Dwarf_pubnames_table::next_name): return flag_byte.
+       (Dwarf_pubnames_table::end_of_table_): New data member.
+       (Dwarf_pubnames_table::is_gnu_style_): New data member.
+       * gold/gdb-index.cc (gdb_index_version): Update to version 7.
+       (Gdb_index_info_reader::read_pubtable): Read flag_byte.
+       (Gdb_index_info_reader::read_pubnames_and_pubtypes): Don't
+       read skeleton type unit DIEs.
+       (Gdb_index::add_symbol): Add flag_byte; adjust all callers.
+       (Gdb_index::do_write): Write flag_byte.
+       * gold/gdb-index.h (Gdb_index::add_symbol): Add flags parameter.
+       (Gdb_index::Cu_vector): Store flags along with cu indexes.
+       * gold/testsuite/gdb_index_test_3.sh: Allow versions 4-7.
+       * gold/testsuite/gdb_index_test_comm.sh: Likewise.
+
+2014-01-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * version.cc (print_version): Update copyright year to 2014.
+
+2013-12-19  Dimitry Andric  <dimitry@andric.com>
+
+       * stringpool.cc (Stringpool_template::reserve): Add
+       HAVE_UNORDERED_MAP case.
+       * stringpool.cc (Stringpool_template::print_stats): Likewise.
+
+2013-12-18  Cary Coutant  <ccoutant@google.com>
+
+       * configure.ac: Check for <unordered_set> and <unordered_map>.
+       * config.in: Regenerate.
+       * configure: Regenerate.
+       * system.h: Use <unordered_set> and <unordered_map> if available.
+
+2013-12-10  Roland McGrath  <mcgrathr@google.com>
+
+       * Makefile.am (install-exec-local): Prefix $(INSTALL_PROGRAM) uses
+       with $(INSTALL_PROGRAM_ENV).
+       * Makefile.in: Regenerate.
+
+2013-11-22  Cary Coutant  <ccoutant@google.com>
+
+       * configure.ac: Add check for which library is needed for
+       dlopen.
+       * configure: Regenerate.
+
+2013-11-22  Cary Coutant  <ccoutant@google.com>
+
+       * testsuite/Makefile.am (exception_x86_64_bnd_test): Use in-tree
+       assembler.
+       * testsuite/Makefile.in: Regenerate.
+
+2013-11-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * x86_64.cc (Target_x86_64<size>::Scan::get_reference_flags):
+       Handle R_X86_64_PC32_BND and R_X86_64_PLT32_BND just like
+       R_X86_64_PC32 and R_X86_64_PLT32, respectively.
+       (Target_x86_64<size>::Scan::local): Likewise.
+       (Target_x86_64<size>::Scan::global): Likewise.
+       (Target_x86_64<size>::Relocate::relocate): Likewise.
+       (Target_x86_64<size>::Relocatable_size_for_reloc::get_size_for_reloc):
+       Likewise.
+       (Target_x86_64<size>::Scan::check_non_pic(): Handle
+       R_X86_64_PC32_BND.
+
+       * testsuite/Makefile.am (check_PROGRAMS): Add
+       exception_x86_64_bnd_test.
+       (exception_x86_64_bnd_test_SOURCES): New macro.
+       (exception_x86_64_bnd_test_DEPENDENCIES): Likewise.
+       (exception_x86_64_bnd_test_LDFLAGS): Likewise.
+       (exception_x86_64_bnd_test_LDADD): Likewise.
+       (exception_x86_64_bnd_1.o): New rule.
+       (exception_x86_64_bnd_2.o): Likewise.
+       * testsuite/Makefile.in: Regenerated.
+
+2013-11-15  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::glink_section): Provide non-const
+       accessor.
+       (Target_powerpc::Branch_info::make_stub): Make global entry stubs.
+       Only call ppc64_local_entry_offset for 64-bit.  Restrict
+       symval_for_branch lookup to ELFv1.
+       (Stub_table::add_plt_call_entry): Use unsigned int off.
+       (Output_data_glink::Address, invalid_address): New.
+       (Output_data_glink::add_eh_frame): Move out of line.  Add
+       support for ELFv2.
+       (Output_data_glink::add_global_entry, find_global_entry,
+       global_entry_address): New functions.
+       (Output_data_glink::global_entry_stubs_, end_branch_table_,
+       ge_size): New variables.
+       (Output_data_glink::set_final_data_size): Add global entry
+       stub sizing.
+       (Output_data_glink::do_write): Write global entry stubs.
+       (Target_powerpc::Scan::reloc_needs_plt_for_ifunc): Add target
+       parameter.  Return true for ELFv2.  Adjust callers.
+       (Target_powerpc::Scan::local, global): Restrict opd lookup to
+       ELFv1.  Similarly for ifunc and dynamic relocation processing
+       specific to ELFv1.  Recognize that symbols are defined on
+       their plt entries for ELFv2.
+       (Target_powerpc::symval_for_branch): Assert if called for
+       ELFv2 or ppc32.
+       (Target_powerpc::Relocate::relocate): Use global entry plt
+       stub for symbol value if such exists on ELFv2.
+       (Target_powerpc::Relocate::relocate): Don't call
+       symval_for_branch when ELFv2.  Do adjust for local entry
+       offset when ELFv2.
+       (Target_powerpc::do_dynsym_value): Set symbols to global entry
+       plt stub for ELFv2.
+       (Target_powerpc::do_plt_address_for_global): Similarly.
+
+2013-11-14  Cary Coutant  <ccoutant@google.com>
+
+       Revert patch -- this did not fix the problem, and there is
+       no race there.
+
+       2013-11-14  Cary Coutant  <ccoutant@google.com>
+
+           PR gold/14860
+           * ehframe.cc (Eh_frame_hdr::Eh_frame_hdr): Initialize lock_.
+           (Ehframe_hdr::set_final_data_size): Allocate a Lock.
+           * ehframe.h (Eh_frame_hdr::record_fde): Hold the lock while
+           updating fde_offsets_.
+           (Eh_frame_hdr::lock_): New data member.
+
+2013-11-14  Cary Coutant  <ccoutant@google.com>
+
+       * dwp.cc (Dwo_file_entry): New type.
+       (File_list): Use Dwo_file_entry.
+       (Dwo_file::verify): New function.
+       (Dwo_file::verify_dwo_list): New function.
+       (Dwo_file::sized_verify_dwo_list): New function.
+       (Dwo_name_info_reader::visit_compilation_unit): Add dwo_id to file
+       list.
+       (Dwp_options): New enum type.
+       (dwp_options): Add --verify-only.
+       (usage): Likewise.
+       (main): Likewise.
+       * dwp.h (gold_info): Add declaration.
+
+2013-11-14  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/14860
+       * ehframe.cc (Eh_frame_hdr::Eh_frame_hdr): Initialize lock_.
+       (Ehframe_hdr::set_final_data_size): Allocate a Lock.
+       * ehframe.h (Eh_frame_hdr::record_fde): Hold the lock while
+       updating fde_offsets_.
+       (Eh_frame_hdr::lock_): New data member.
+
+2013-11-06  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/15758
+       * object.cc (Sized_relobj_file::do_layout): Handle .eh_frame sections
+       before reloc sections.
+
+2013-11-04  Alan Modra  <amodra@gmail.com>
+
+       * symtab.h (Symbol::Reference_flags): Add FUNC_DESC_ABI.
+       (Symbol::needs_dynamic_reloc): Test new flag.
+       * powerpc.cc (needs_dynamic_reloc, use_plt_offset): Delete.
+       (Target_powerpc::Scan::get_reference_flags): Add target param.
+       Return FUNC_DESC_ABI for 64-bit ELFv1.
+       (Target_powerpc::Branch_info::make_stub): Adjust get_reference_flags
+       call.
+       (Target_powerpc::Scan::global): Use Symbol::needs_dynamic_reloc.
+       (Target_powerpc::Relocate::relocate): Use Symbol::use_plt_offset.
+
+2013-10-31  Cary Coutant  <ccoutant@google.com>
+
+       Restore support for dwp v2 DWARF package file format.
+
+       * dwarf_reader.cc (Dwarf_info_reader::visit_type_unit): Add
+       tu_length parameter.  Adjust all callers.
+       * dwarf_reader.h (Dwarf_info_reader::visit_type_unit): Likewise.
+       * dwp.cc: Include dwarf.h.
+       (Section_bounds): New struct type.
+       (Unit_set): New struct type.
+       (Dwo_file::Dwo_file): Initialize new data member.
+       (Dwo_file::read_compunit_index, Dwo_file::read_typeunit_index):
+       Combine and rename to...
+       (Dwo_file::read_unit_index): ...this.
+       (Dwo_file::sized_read_compunit_index)
+       (Dwo_file::sized_read_typeunit_index): Combine and rename to...
+       (Dwo_file::sized_read_unit_index): ...this.
+       (Dwo_file::copy_section): Remove section_name, is_str_offsets
+       parameters; add section_id parameter.
+       (Dwo_file::add_cu_set, Dwo_file::add_tu_set): Combine and rename to...
+       (Dwo_file::add_unit_set): ...this.
+       (Dwo_file::shndx_map_): Remove.
+       (Dwo_file::sect_offsets_): New data member.
+       (Dwp_output_file::Dwp_output_file): Initialize new data members.
+       (Dwp_output_file::add_section): Rename to...
+       (Dwp_output_file::add_contribution): ...this.
+       (Dwp_output_file::add_cu_set): Combine parameters into a struct.
+       (Dwp_output_file::add_tu_set): Likewise.
+       (Dwp_output_file::Contribution): New type.
+       (Dwp_output_file::Section::contributions): New data member.
+       (Dwp_output_file::Cu_or_tu_set): Remove.
+       (Dwp_output_file::Section::Section): New ctor.
+       (Dwp_output_file::Dwp_index::Shndx_pool): Remove.
+       (Dwp_output_file::Dwp_index::Section_table): New type.
+       (Dwp_output_file::Dwp_index::Dwp_index): Initialize new data members.
+       (Dwp_output_file::Dwp_index::enter_set): Change type of "set"
+       parameter.
+       (Dwp_output_file::Dwp_index::shndx_pool): Remove.
+       (Dwp_output_file::Dwp_index::shndx_pool_end): Remove.
+       (Dwp_output_file::Dwp_index::section_table): New member function.
+       (Dwp_output_file::Dwp_index::section_table_end): New member function.
+       (Dwp_output_file::Dwp_index::shndx_pool_size): Remove.
+       (Dwp_output_file::Dwp_index::section_table_rows): New member function.
+       (Dwp_output_file::Dwp_index::section_table_cols): New member function.
+       (Dwp_output_file::Dwp_index::shndx_pool_): Remove.
+       (Dwp_output_file::Dwp_index::section_table_): New data member.
+       (Dwp_output_file::Dwp_index::section_mask_): New data member.
+       (Dwp_output_file::add_output_section): New member function.
+       (Dwp_output_file::write_new_section): New member function.
+       (Dwp_output_file::write_contributions): New member function.
+       (Dwp_output_file::section_id_map_): New data member.
+       (class Dwo_id_info_reader): Remove.
+       (class Unit_reader): New class.
+       (get_dwarf_section_name): New function.
+       (Dwo_file::read_executable): Adjust initializations of class data.
+       (Dwo_file::read): Add support for v2 package file format.
+       (Dwo_file::read_unit_index): Likewise.
+       (Dwo_file::sized_read_unit_index): Likewise.
+       (Dwo_file::copy_section): Likewise.
+       (Dwo_file::add_unit_set): Likewise.
+       (Dwp_output_file::add_output_section): Likewise.
+       (Dwp_output_file::add_contribution): Likewise.
+       (Dwp_output_file::Dwp_index::find_or_add): Use row index to check
+       for empty slot.
+       (Dwp_output_file::Dwp_index::enter_set): Add support for v2 package
+       file format.
+       (Dwp_output_file::Dwp_index::grow): Use row index to check for empty
+       slot.
+       (Dwp_output_file::initialize): Remove unused function.
+       (Dwp_output_file::finalize): Add support for v2 package file format.
+       (Dwp_output_file::write_index): Likewise.
+       * gdb-index.cc (Gdb_index_info_reader::visit_type_unit): Adjust
+       function prototype.
+
+2013-10-31  Cary Coutant  <ccoutant@google.com>
+
+       * configure.ac: Fix check for -fmerge-constants.
+       * configure.ac: Regenerate.
+
+2013-10-30  Roland McGrath  <mcgrathr@google.com>
+
+       * x86_64.cc (Output_data_plt_x86_64_nacl::first_plt_entry):
+       Correct 9-byte nop sequence to match what the assembler generates.
+
+2013-10-30  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Powerpc_relobj::abiversion, set_abiversion,
+       ppc64_local_entry_offset, ppc64_local_entry_offset,
+       do_read_symbols): New functions.
+       (Powerpc_relobj::e_flags_, st_other_): New vars.
+       (Powerpc_relobj::Powerpc_relobj): Call set_abiversion.
+       (Powerpc_dynobj::abiversion, set_abiversion): New functions.
+       (Powerpc_relobj::e_flags_): New var.
+       (Target_powerpc::first_plt_entry_offset, plt_entry_size): Inline
+       and adjust for ELFv2.
+       (Target_powerpc::abiversion, set_abiversion, stk_toc): New functions.
+       (Powerpc_relobj::do_find_special_sections): Check no .opd in ELFv2.
+       (Powerpc_dynobj::do_find_special_sections): Likewise.
+       (Target_powerpc::do_define_standard_symbols): Define ".TOC.".
+       (Target_powerpc::Branch_info::make_stub): Adjust stub destination
+       to ELFv2 local entry.
+       (Target_powerpc::do_relax): No thread safe barriers needed for
+       ELFv2.
+       (Output_data_plt_powerpc::initial_plt_entry_size_,
+       plt_entry_size): Delete.  Replace all uses with
+       first_plt_entry_offset() and plt_entry_size().
+       (Output_data_plt_powerpc::Output_data_plt_powerpc): Remove
+       reserved_size parm.  Update callers.
+       (Output_data_plt_powerpc::entry_count): Update.
+       (Output_data_plt_powerpc::first_plt_entry_offset): Make private
+       and use Target_powerpc::first_plt_entry_offset().
+       (Output_data_plt_powerpc::get_plt_entry_size): Similarly and
+       rename to plt_entry_size.
+       (Output_data_plt_powerpc::add_ifunc_entry,
+       add_local_ifunc_entry): Adjust reloc for ELFv2.
+       (glink_eh_frame_fde_64): Rename to glink_eh_frame_fde_64v1.
+       (glink_eh_frame_fde_64v2): New.
+       (Stub_table::plt_call_size): Support ELFv2 sizing.
+       (Output_data_glink::add_eh_frame): Use the new FDE.
+       (Output_data_glink::set_final_data_size): Adjust for ELFv2 glink.
+       (Stub_table::do_write): Write ELFv2 stubs and glink.
+       (Target_powerpc::Relocate::relocate): Replaces nop after call
+       with ld 2,24(1) and adjust local offset destination for ELFv2.
+
+2013-10-30  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::Scan::check_non_pic): Handle new relocs.
+       (Target_powerpc::Scan::global, local): Likewise.
+       (Target_powerpc::Relocate::relocate): Likewise.  Check for overflow
+       on all ppc64 @h and @ha relocs.
+
+2013-10-14  Alan Modra  <amodra@gmail.com>
+
+       * output.h (Output_data_got::add_constant): Tidy.
+       (Output_data_got::add_constant_pair): New function.
+       * powerpc.cc (Output_data_got_powerpc): Override all Output_data_got
+       methods used so as to first call reserve_ent().
+
+2013-10-11  Roland McGrath  <mcgrathr@google.com>
+
+       * powerpc.cc (Output_data_got_powerpc): Remove unused methods
+       add_got_entry and add_got_entry_pair.
+
+       * configure.ac (TLS_GNU2_DIALECT): Use -Werror in test.
+       (HAVE_PUBNAMES): Likewise.
+       * configure: Regenerate.
+
+       * testsuite/Makefile.am: Replace '-T foo' with '-Wl,-T,foo' throughout.
+       * testsuite/Makefile.in: Regenerate.
+
+       * target.h (Target::adjust_elf_header, Target::do_adjust_elf_header):
+       Remove const from declaration.
+       * target.cc (Sized_target::do_adjust_elf_header): Update definition.
+       * sparc.cc (Target_sparc::do_adjust_elf_header): Likewise.
+       * output.h (Output_file_header): Remove const from member target_
+       and corresponding constructor argument.
+       * output.cc (Output_file_header::Output_file_header): Update prototype.
+       (Output_file_header::do_sized_write): Use this->target_ in place
+       of parameters()->target().
+
+       * testsuite/undef_symbol.cc (Foo::get_a): New method.
+
+       * configure.ac (MERGE_CONSTANTS_FLAG): New check.
+       * configure: Regenerate.
+       * Makefile.in: Regenerate.
+       * testsuite/merge_string_literals_1.c: Renamed to have .cc suffix.
+       * testsuite/merge_string_literals_2.c: Likewise.
+       * testsuite/Makefile.am
+       (merge_string_literals_1.o, merge_string_literals_2.o): Update deps.
+       (AM_CFLAGS, AM_CXXFLAGS): Use $(MERGE_CONSTANTS_FLAG) in place of
+       literal -fmerge-constants.
+       * testsuite/Makefile.in: Regenerate.
+
+       * i386.cc (Target_i386): Remove unused member dynbss_.
+       * arm.cc (Target_arm): Likewise.
+       * powerpc.cc (Target_powerpc): Likewise.
+       * sparc.cc (Target_sparc): Likewise.
+       * tilegx.cc (Target_tilegx): Likewise.
+       * x86_64.cc (Target_x86_64): Likewise.
+       * dwarf_reader.h (Dwarf_info_reader): Remove unused members
+       type_signature_, type_offset_.
+       * plugin.h (Plugin_hook): Remove unused member layout_.
+       * readsyms.h (Add_symbols): Remove unused members dirpath_, dirindex_,
+       mapfile_.
+       (Read_member): Remove unused members input_objects_, symtab_,
+       mapfile_, layout_.
+       (Check_library): Remove unused member symtab_.
+       * archive.h (Lib_group): Remove unused member lib_.
+       * archive.cc (Lib_group::Lib_group): Update initializer.
+       * incremental.h (Incremental_binary): Remove unused member target_.
+       (Incremental_script_entry): Removed unused member script_.
+       * layout.h (Write_symbols_task): Remove unused member input_objects_.
+       * icf.h (Icf): Remove unused member num_tracked_relocs.
+
+       * gold-threads.h (Once): Conditionalize member was_run_lock_ on
+       [ENABLE_THREADS && __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4], matching
+       its only use.
+       * gold-threads.cc (Once::Once): Likewise conditionalize initializer.
+
+       * archive.h: Use struct rather than class for forward declaration
+       of Read_symbols_data.
+
+2013-10-07  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/16010
+       * testsuite/Makefile.am (icf_test): Fix dependencies.
+       (icf_safe_test): Likewise.
+       (icf_safe_so_test): Likewise.
+       (large_symbol_alignment): Add empty _LDADD rule.
+       * testsuite/Makefile.in: Regenerate.
+
+2013-09-03  Pavel Chupin  <pavel.v.chupin@intel.com>
+
+       PR gold/15927
+       * x86_64.cc (Target_x86_64<size>::Scan::global): Use relative
+       relocation for R_X86_64_32 on x32.
+
+2013-08-27  Roland McGrath  <mcgrathr@google.com>
+
+       * output.cc (Output_segment::set_section_addresses): Take new
+       Target* argument.  If target->isolate_execinstr() and the segment
+       is executable and starts at a target->abi_pagesize() boundary,
+       pad its end out to a target->abi_pagesize() boundary with code fill.
+       * output.h (Output_segment::set_section_addresses): Update decl.
+       * layout.h (Layout::check_output_data_for_reset_values): Take new
+       argument RELAX_OUTPUTS.
+       (Layout): New member relax_output_list_.
+       (Layout::add_relax_output): New method.
+       * layout.cc (Layout::Layout): Update constructor.
+       (Layout::reset_relax_output): New method.
+       (Layout::clean_up_after_relaxation): Call it.
+       (Layout::prepare_for_relaxation): Update caller.
+       (Layout::set_segment_offsets): Update callers of set_section_addresses.
+       Call reset_relax_output before re-processing segments for
+       isolate_execinstr case.
+       (Layout::write_data): Handle relax_output_list_.
+       (Layout::Relaxation_debug_check::check_output_data_for_reset_values):
+       Take new argument RELAX_OUTPUTS.  Assert it's an empty collection.
+
+2013-08-23  Yuri Chornoivan  <yurchor@ukr.net>
+
+       PR binutils/15834
+       * object.h: Fix typos.
+
+2013-08-16  Roland McGrath  <mcgrathr@google.com>
+
+       * i386.cc (Target_i386_nacl::do_code_fill): New virtual function.
+       * x86_64.cc (Target_x86_64_nacl::do_code_fill): New virtual function.
+
+2013-08-07  Cary Coutant  <ccoutant@google.com>
+
+       Revert support for v2 DWP files:
+
+       2013-03-01  Cary Coutant  <ccoutant@google.com>
+
+           Add dwp support for v2 DWARF package file format.
+           * dwarf_reader.cc (Dwarf_info_reader::visit_type_unit): Add
+           tu_length parameter.  Adjust all callers.
+           * dwarf_reader.h (Dwarf_info_reader::visit_type_unit): Likewise.
+           * dwp.cc: Include dwarf.h.
+           (Section_bounds): New struct type.
+           (Unit_set): New struct type.
+           (Dwo_file::Dwo_file): Initialize new data member.
+           (Dwo_file::read_compunit_index, Dwo_file::read_typeunit_index):
+           Combine and rename to...
+           (Dwo_file::read_unit_index): ...this.
+           (Dwo_file::sized_read_compunit_index)
+           (Dwo_file::sized_read_typeunit_index): Combine and rename to...
+           (Dwo_file::sized_read_unit_index): ...this.
+           (Dwo_file::copy_section): Remove section_name, is_str_offsets
+           parameters; add section_id parameter.
+           (Dwo_file::add_cu_set, Dwo_file::add_tu_set): Combine and rename to...
+           (Dwo_file::add_unit_set): ...this.
+           (Dwo_file::shndx_map_): Remove.
+           (Dwo_file::sect_offsets_): New data member.
+           (Dwp_output_file::Dwp_output_file): Initialize new data members.
+           (Dwp_output_file::add_section): Rename to...
+           (Dwp_output_file::add_contribution): ...this.
+           (Dwp_output_file::add_cu_set): Combine parameters into a struct.
+           (Dwp_output_file::add_tu_set): Likewise.
+           (Dwp_output_file::Contribution): New type.
+           (Dwp_output_file::Section::contributions): New data member.
+           (Dwp_output_file::Cu_or_tu_set): Remove.
+           (Dwp_output_file::Section::Section): New ctor.
+           (Dwp_output_file::Dwp_index::Shndx_pool): Remove.
+           (Dwp_output_file::Dwp_index::Section_table): New type.
+           (Dwp_output_file::Dwp_index::Dwp_index): Initialize new data members.
+           (Dwp_output_file::Dwp_index::enter_set): Change type of "set"
+           parameter.
+           (Dwp_output_file::Dwp_index::shndx_pool): Remove.
+           (Dwp_output_file::Dwp_index::shndx_pool_end): Remove.
+           (Dwp_output_file::Dwp_index::section_table): New member function.
+           (Dwp_output_file::Dwp_index::section_table_end): New member function.
+           (Dwp_output_file::Dwp_index::shndx_pool_size): Remove.
+           (Dwp_output_file::Dwp_index::section_table_rows): New member function.
+           (Dwp_output_file::Dwp_index::section_table_cols): New member function.
+           (Dwp_output_file::Dwp_index::shndx_pool_): Remove.
+           (Dwp_output_file::Dwp_index::section_table_): New data member.
+           (Dwp_output_file::Dwp_index::section_mask_): New data member.
+           (Dwp_output_file::add_output_section): New member function.
+           (Dwp_output_file::write_new_section): New member function.
+           (Dwp_output_file::write_contributions): New member function.
+           (Dwp_output_file::section_id_map_): New data member.
+           (class Dwo_id_info_reader): Remove.
+           (class Unit_reader): New class.
+           (get_dwarf_section_name): New function.
+           (Dwo_file::read_executable): Adjust initializations of class data.
+           (Dwo_file::read): Add support for v2 package file format.
+           (Dwo_file::read_unit_index): Likewise.
+           (Dwo_file::sized_read_unit_index): Likewise.
+           (Dwo_file::copy_section): Likewise.
+           (Dwo_file::add_unit_set): Likewise.
+           (Dwp_output_file::add_output_section): Likewise.
+           (Dwp_output_file::add_contribution): Likewise.
+           (Dwp_output_file::Dwp_index::find_or_add): Use row index to check
+           for empty slot.
+           (Dwp_output_file::Dwp_index::enter_set): Add support for v2 package
+           file format.
+           (Dwp_output_file::Dwp_index::grow): Use row index to check for empty
+           slot.
+           (Dwp_output_file::initialize): Remove unused function.
+           (Dwp_output_file::finalize): Add support for v2 package file format.
+           (Dwp_output_file::write_index): Likewise.
+           * gdb-index.cc (Gdb_index_info_reader::visit_type_unit): Adjust
+           function prototype.
+
+2013-07-31  Cary Coutant  <ccoutant@google.com>
+
+       * object.cc (Sized_relobj::do_output_section_address): New function.
+       (Sized_relobj): Instantiate explicitly.
+       * object.h (Object::output_section_address): New function.
+       (Object::do_output_section_address): New function.
+       (Sized_relobj::do_output_section_address): New function.
+       * powerpc.cc (Target_powerpc::symval_for_branch): Use it.
+
+2013-07-30  Cary Coutant  <ccoutant@google.com>
+           Sasa Stankovic  <Sasa.Stankovic@imgtec.com>
+
+       * parameters.cc (Parameters::entry): Return target-specific entry
+       symbol name.
+       * target.h (Target::entry_symbol_name): New function.
+       (Target_info::entry_symbol_name): New data member.
+
+       * arm.cc (Target_arm::arm_info): Add entry_symbol_name.
+       * i386.cc (Target_i386::i386_info): Likewise.
+       (Target_i386_nacl::i386_nacl_info): Likewise.
+       * sparc.cc (Target_sparc::sparc_info): Likewise.
+       * tilegx.cc (Target_tilegx::tilegx_info): Likewise.
+       * x86_64.cc: (Target_x86_64::x86_64_info) Likewise.
+       (Target_x86_64_nacl::x86_64_nacl_info) Likewise.
+       * testsuite/testfile.cc (Target_test::test_target_info): Likewise.
+
+2013-07-22  Sterling Augustine  <saugustine@google.com>
+
+       * dwarf_reader.cc (Dwarf_pubnames_table::read_section):
+       Convert parameter shndx to local variable. Add parameters symtab
+       and symtab_size.  Scan over section names.  Find relocation
+       section corresponding to current section.  Create and initialize
+       reloc_mapper_ and reloc_type_.
+       (Dwarf_pubnames_table::read_header):  Add assertion.  Change
+       unit_length to off_t.  Initialize member unit_length_.  Fill in field
+       cu_offset_.
+       * dwarf_reader.h (Dwarf_pubnames_table::Dwarf_pubnames_table):
+       Initialize new fields unit_length_ and cu_offset_.
+       (Dwarf_pubnames_table::read_section): Update prototype.
+       (Dwarf_pubnames_table::cu_offset): New member function.
+       (Dwarf_pubnames_table::subsection_size): Likewise.
+       (Dwarf_pubnames_table::cu_offset_, Dwarf_pubnames_table::unit_length):
+       New fields.
+       (Dwarf_info_reader::symtab, Dwarf_info_reader::symtab_size): Make
+       member functions public.
+       * gdb_index.cc (Gdb_index_info_reader::read_pubnames_and_pubtypes):
+       Update comment.  Rework logic.  Move repeated parts to...
+       (Gdb_index_info_reader::read_pubtable): ...here. New function.
+       (Gdb_index::Gdb_index): Initialize new fields, pubnames_table_,
+       pubtypes_table_, and stmt_list_offset.
+       (Gdb_index::map_pubtable_to_dies, Gdb_index::find_pubname_offset,
+       Gdb_index::find_pubtype_offset,
+       Gdb_index::map_pubnames_and_types_to_dies): Define new functions.
+       (Gdb_index::pubnames_read): Update prototype and rework logic.
+       * gdb_index.h (Gdb_index_info_reader, Dwarf_pubnames_table):
+       Forward declare.
+       (Gdb_index::map_pubtable_to_dies, Gdb_index::find_pubname_offset,
+       Gdb_index::find_pubtype_offset, Gdb_index::pubnames_table)
+       Gdb_index::pubtypes_table, Gdb_index::map_pubnames_and_types_to_dies,
+       Gdb_index::map_pubtable_to_dies):
+       Declare functions.
+       (Gdb_index::pubnames_read): Update declaration.
+       (Gdb_index::Pubname_offset_map): New type.
+       (Gdb_index::cu_pubname_map_, Gdb_index::cu_pubtype_map_,
+       Gdb_index::pubnames_table_, Gdb_index::pubtypes_table_,
+       Gdb_index::stmt_list_offset): Declare.
+       (Gdb_index::pubnames_shndx_, Gdb_index::pubnames_offet_,
+       Gdb_index::pubtypes_object_, Gdb_index::pubtypes_shndx_)
+       Gdb_index::pubtypes_offset_): Remove.
+
+2013-07-19  Roland McGrath  <mcgrathr@google.com>
+
+       * options.h (General_options): Add -Trodata-segment option.
+       * parameters.cc (Parameters::check_rodata_segment): New function.
+       (Parameters::set_target_once): Call it.
+       * parameters.h (Parameters): Declare it (private member function).
+       * layout.cc (load_seg_unusable_for_headers): New function, broken
+       out of Layout::relaxation_loop_body.  If TARGET->isolate_execinstr()
+       then validate rodata segment rather than text segment.
+       (relaxation_loop_body): Call that.
+       (is_text_segment): New function.  Don't admit a non-executable
+       segment if TARGET->isolate_execinstr().
+       (set_segment_offsets): Call it.  Honor -Trodata-segment option.
+
+2013-07-15  Shawn Landden  <shawnlandden@gmail.com>
+
+       PR gold/15070
+       * fileread.h (File_read::get_view): Clarify comment about ALIGNED.
+       * nacl.h (Sniff_file::View::View): Request aligned view.
+
+2013-07-11  Cary Coutant  <ccoutant@google.com>
+
+       * powerpc.cc (Target_powerpc::write_branch_lookup_table): Use
+       correct BRLT entry size.
+
+2013-07-03  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::Relocate::relocate): Update self-call
+       comment.
+
+2013-07-01  Cary Coutant  <ccoutant@google.com>
+
+       * dwarf_reader.cc (Dwarf_ranges_table::read_ranges_table): Save
+       reloc_type_.
+       (Dwarf_ranges_table::read_range_list): Call lookup_reloc.
+       (Dwarf_ranges_table::lookup_reloc): New function.
+       * dwarf_reader.h (Dwarf_ranges_table::Dwarf_ranges_table): Initialize
+       reloc_type_.
+       (Dwarf_ranges_table::lookup_reloc): New function.
+       (Dwarf_ranges_table::reloc_type_): New data member.
+
+2013-06-27  Jing Yu  <jingyu@google.com>
+
+       PR gold/15662
+       * powerpc.cc (Output_data_brlt_powerpc::reset_brlt_sizes): New
+       function.
+       (Output_data_brlt_powerpc::finalize_brlt_sizes): New function.
+       (Target_powerpc::do_relax): Call the above.
+
+2013-06-27  Cary Coutant  <ccoutant@google.com>
+
+       * powerpc.cc (Target_powerpc::symval_for_branch): Don't assert
+       on garbage collected .opd section.
+
+2013-06-27  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::do_gc_add_reference): Test dst_shndx
+       is non-zero.
+       (Target_powerpc::do_gc_mark_symbols): Likewise for sym->shndx().
+       (Target_powerpc::do_function_location): Likewise for loc->shndx.
+
+2013-06-14  Cary Coutant  <ccoutant@google.com>
+
+       * resolve.cc (Symbol::override_base): Don't override st_type
+       from plugin placeholder symbols.
+       (Symbol_table::resolve): Likewise.
+       (Symbol_table::should_override): Don't complain about TLS mismatch
+       if the TO symbol is a plugin placeholder.
+       * testsuite/Makefile.am (plugin_test_tls): New test.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/plugin_test_tls.sh: New test script.
+       * testsuite/two_file_test_2_tls.cc: New test source.
+       * testsuite/two_file_test_tls.cc: New test source.
+
+2013-06-05  Alexander Ivchenko  <alexander.ivchenko@intel.com>
+
+       * layout.cc (Layout::set_segment_offsets): Taking care of the case when
+       the maximum segment alignment is larger than the page size.
+       * testsuite/Makefile.am (large_symbol_alignment): Test that Gold
+       correctly aligns the symbols with large alignemnt.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/large_symbol_alignment.cc: New file.
+
+2013-05-30  Alexander Ivchenko  <alexander.ivchenko@intel.com>
+           Sriraman Tallam  <tmsriram@google.com>
+
+       * options.h (sort_section): New option.
+       * output.h (Input_section_sort_section_prefix_special_ordering_compare):
+       Rename from Input_section_sort_section_name_special_ordering_compare.
+       (Input_section_sort_section_name_compare): New struct.
+       * output.cc (Output_section::Input_section_sort_section_name_compare::
+       operator()): New function.
+       (Output_section::sort_attached_input_sections): Use new sort function
+       for .text if --sort-section=name is specified.
+       * layout.cc (Layout::make_output_section):
+       Add sorting by name when --sort-section=name is specified.
+       * testsuite/Makefile.am (text_section_grouping): Test option
+       --sort-section=name.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/section_sorting_name.cc: New file.
+       * testsuite/section_sorting_name.sh: New file.
+
+2013-05-21  Cary Coutant  <ccoutant@google.com>
+
+       * symtab.h (Symbol::is_cxx_vtable): New function.
+       * target-reloc.h (relocate_section): Check for vtable symbol.
+       * testsuite/Makefile.am (missing_key_func.sh): New test case.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/missing_key_func.cc: New test source.
+       * testsuite/missing_key_func.sh: New test script.
+
+2013-05-21  Cary Coutant  <ccoutant@google.com>
+
+       * object.cc (Sized_relobj_file::get_symbol_location_info): Set
+       type of enclosing symbol.
+       (Relocate_info::location): Check symbol type when describing symbol.
+       * object.h (Symbol_location_info): Remove unused line_number;
+       add enclosing_symbol_type.
+       * testsuite/debug_msg.sh: Adjust expected output.
+
+2013-05-13  Cary Coutant  <ccoutant@google.com>
+
+       * configure.ac: Export DEFAULT_TARGET.
+       * configure: Regenerate.
+       * Makefile.in: Regenerate.
+       * testsuite/Makefile.am: Add .EXPORT_ALL_VARIABLES.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/debug_msg.sh: Delete duplicate tests.
+       Don't check undef_int error message match for powerpc where the
+       source file and line number aren't available.
+
+2013-05-10  Roland McGrath  <mcgrathr@google.com>
+
+       * options.h (General_options): Add --rosegment-gap option.
+       * options.cc (finalize): --rosegment-gap implies --rosegment.
+       * layout.cc (set_segment_offsets): Let user option override
+       target->rosegment_gap().
+
+2013-05-10  Roland McGrath  <mcgrathr@google.com>
+
+       * options.h (General_options): Remove leading space from help
+       messages for -nostdlib and --rosegment.
+
+2013-05-03  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       PR ld/15365
+       * layout.cc (Layout::finalize): Make __ehdr_start STV_HIDDEN.
+
+2013-05-03  Alan Modra  <amodra@gmail.com>
+
+       * merge.cc (Output_merge_string::do_add_input_section): Correct
+       scan for number of strings.  Rename vars to avoid shadowing.
+       Include missing terminator in input_size_.
+
 2013-05-01  H.J. Lu  <hongjiu.lu@intel.com>
 
        * merge.cc (Output_merge_string<Char_type>::do_add_input_section):
 
        * Added source code to GNU binutils.
 \f
-Copyright (C) 2008-2012 Free Software Foundation, Inc.
+Copyright (C) 2008-2014 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright