+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):
+ Restore empty string handling.
+
+2013-05-01 Cary Coutant <ccoutant@google.com>
+
+ * stringpool.cc (Stringpool_template::new_key_offset): Fix
+ uninitialized warning.
+
+2013-04-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
+
+ * output.cc (Output_section::add_merge_input_section): Allow
+ to merge sections if the alignment is more than character size.
+ * merge.h (Output_merge_string::Output_merge_string): Remove
+ assert.
+ * merge.cc (Output_merge_string<Char_type>::do_add_input_section): Count
+ only not-null strings. Check the alignment of strings.
+ * stringpool.h
+ (Stringpool_template<Stringpool_char>::Stringpool_template): Add
+ alignment as the argument.
+ (Stringpool_template<Stringpool_char>::addralign_): New class member.
+ * stringpool.cc (Stringpool_template<Stringpool_char>::new_key_offset):
+ Align non-zero length strings according to the addralign_.
+ (Stringpool_template<Stringpool_char>::set_string_offsets):
+ Updating offsets according to the given alignment.
+ * testsuite/Makefile.am (text_section_grouping): Test if string
+ literals are getting merged.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/merge_string_literals_1.c: New file.
+ * testsuite/merge_string_literals_2.c: Ditto.
+ * testsuite/merge_string_literals.sh: Ditto.
+
+2013-04-26 Ian Lance Taylor <iant@google.com>
+
+ * target-reloc.h (relocate_section): If the reloc offset is out of
+ range, pass VIEW as NULL to relocate.relocate.
+ * arm.cc (Target_arm:Relocate::relocate): Check for a NULL view.
+ * i386.cc (Target_i386::Relocate::relocate): Likewise.
+ * powerpc.cc (Target_powerpc::Relocate::relocate): Likewise.
+ * sparc.cc (Target_sparc::Relocate::relocate): Likewise.
+ * tilegx.cc (Target_tilegx::Relocate::relocate): Likewise.
+ * x86_64.cc (Target_x86_64::Relocate::relocate): Likewise.
+
+2013-04-26 Geoff Pike <gpike@chromium.org>
+
+ * gold.cc (queue_final_tasks): invoke layout->queue_build_id_tasks().
+ * layout.cc (Hash_task): New class.
+ (Layout::queue_build_id_tasks): New function.
+ (Layout::write_build_id): Handle single-thread portion of build ID
+ computation. (In some cases, all of it is single-threaded.) Replace
+ {sha1,md5}_process_bytes with {sha1,md5}_buffer to get the same
+ functionality in fewer lines of code.
+ * layout.h (Layout::queue_build_id_tasks): New function declaration.
+ * options.h (General_options): make "--build-id" default to tree
+ rather than sha1. Add two new options related to --build-id=tree:
+ --build-id-chunk-size-for-treehash and
+ --build-id-min-file-size-for-treehash.
+ * Makefile.am: add testing of --build-id=tree and related new options
+ (these tests will be invoked by "make check").
+ * Makefile.in: Regenerate.
+
+2013-04-25 Alan Modra <amodra@gmail.com>
+
+ * configure.tgt: Add powerpcle and powerpc64le.
+
+2013-04-22 Alan Modra <amodra@gmail.com>
+
+ PR gold/15355
+ * layout.cc (Layout::segment_precedes): Allow more than one
+ segment with the same type and flags.
+
2013-04-15 Cary Coutant <ccoutant@google.com>
* layout.cc (Layout::set_relocatable_section_offsets): Don't
2013-04-15 Cary Coutant <ccoutant@google.com>
- * symtab.cc (Symbol_table::sized_write_globals): Subtract
- section starting address for relocatable link.
- * testsuite/Makefile.am (script_test_11): New test.
- * testsuite/Makefile.in: Regenerate.
- * testsuite/script_test_11.c: New source file.
- * testsuite/script_test_11.t: New linker script.
+ * symtab.cc (Symbol_table::sized_write_globals): Subtract
+ section starting address for relocatable link.
+ * testsuite/Makefile.am (script_test_11): New test.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/script_test_11.c: New source file.
+ * testsuite/script_test_11.t: New linker script.
2013-04-13 Alan Modra <amodra@gmail.com>
2013-01-28 Cary Coutant <ccoutant@google.com>
- * dwp.cc (File_list): New typedef.
- (Dwo_name_info_reader): New class.
- (Dwo_id_info_reader::Dwo_id_info_reader): Remove unused parameters.
- (Dwo_id_info_reader::visit_top_die): Remove unused member function.
- (Dwo_file::~Dwo_file): Delete input_file_ after obj_.
- (Dwo_file::read_executable): New function.
- (Dwo_file::read): Move common setup code to ...
- (Dwo_file::make_object): ... here.
- (dwp_options): Add --exec/-e.
- (usage): Likewise.
- (main): Likewise.
+ * dwp.cc (File_list): New typedef.
+ (Dwo_name_info_reader): New class.
+ (Dwo_id_info_reader::Dwo_id_info_reader): Remove unused parameters.
+ (Dwo_id_info_reader::visit_top_die): Remove unused member function.
+ (Dwo_file::~Dwo_file): Delete input_file_ after obj_.
+ (Dwo_file::read_executable): New function.
+ (Dwo_file::read): Move common setup code to ...
+ (Dwo_file::make_object): ... here.
+ (dwp_options): Add --exec/-e.
+ (usage): Likewise.
+ (main): Likewise.
2013-01-24 Sriraman Tallam <tmsriram@google.com>
2012-12-14 Cary Coutant <ccoutant@google.com>
- * testsuite/Makefile.am (exception_separate_shared_12_test): Add
- --no-as-needed flag.
- (exception_separate_shared_12_test): Likewise.
- (incremental_copy_test): Likewise.
- * testsuite/Makefile.in: Regenerate.
+ * testsuite/Makefile.am (exception_separate_shared_12_test): Add
+ --no-as-needed flag.
+ (exception_separate_shared_12_test): Likewise.
+ (incremental_copy_test): Likewise.
+ * testsuite/Makefile.in: Regenerate.
2012-12-14 Cary Coutant <ccoutant@google.com>
* Added source code to GNU binutils.
\f
-Copyright (C) 2008-2012 Free Software Foundation, Inc.
+Copyright (C) 2008-2013 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright