gold/
[deliverable/binutils-gdb.git] / gold / ChangeLog
index ae4f83059dbfcaa233eda7e22ef8577f212fbdac..df61e9ccbd6488e2ab7d928f02b926c3dc87512d 100644 (file)
@@ -1,3 +1,865 @@
+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
+       allocate space in file for BSS sections.
+
+2013-04-15  Cary Coutant  <ccoutant@google.com>
+
+       * script-sections.cc (Orphan_output_section): Reset address
+       to zero after each orphaned section for relocatable links.
+
+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.
+
+2013-04-13  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Stub_control::can_add_to_stub_group): Don't set
+       owner when sections are not adjacent and exceed group size.
+       (Target_powerpc::group_sections): Handle corner case.
+       (Target_powerpc::Branch_info::make_stub): Handle case where
+       stub table doesn't exist due to branches in non-exec sections.
+       (Target_powerpc::Relocate::relocate): Likewise.
+
+2013-04-11  Alan Modra  <amodra@gmail.com>
+
+       PR gold/15354
+       * powerpc.cc (Target_powerpc::make_brlt_section): Name section
+       .branch_lt to match bfd ld.  Adjust comments throughout file.
+
+2013-04-04  Ian Lance Taylor  <iant@google.com>
+
+       GCC PR c++/56840
+       * object.cc (do_layout_deferred_sections): Handle .eh_frame
+       sections before checking whether they are included in the link.
+
+2013-03-29  Sriraman Tallam  <tmsriram@google.com>
+
+       * archive.cc (Archive::get_elf_object_for_member):  Create the elf
+       object before calling the plugin claim_file handler.  Pass the elf
+       object of the archive to the plugin. Delete the elf object if the
+       plugin claims the file.
+
+2013-03-21  Alan Modra  <amodra@gmail.com>
+
+       * layout.cc (Layout::set_segment_offsets): Accept writable .text
+       segment when omagic.
+
+2013-03-21  Alan Modra  <amodra@gmail.com>
+
+       * dwp.cc (Dwp_output_file::add_contribution): Avoid signed/unsigned
+       comparison warning.
+       * layout.cc (Layout::create_dynamic_symtab): Avoid "may be used
+       uninitialized" warning.
+
+2013-03-20  Alan Modra  <amodra@gmail.com>
+
+       * symtab.h (Symbol::clear_version): New function.
+       * symtab.cc (Symbol_table::set_dynsym_indexes): Don't set object
+       is_needed by weak references.  Clear version for symbols defined
+       in as-needed objects that are not needed.
+
+2013-03-15  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::Scan::reloc_needs_plt_for_ifunc): Make
+       static and public.  Add report_err param.  Return false for data refs.
+       (Target_powerpc::rela_dyn_section): New overloaded function.
+       (Target_powerpc::plt_, iplt_): Elucidate.
+       (Output_data_plt_powerpc::entry_count): Handle current_data_size()==0.
+       (Output_data_plt_powerpc::do_write): Don't write .iplt.
+       (Output_data_plt_powerpc::plt_entry_count): Don't add .iplt entries.
+       (Target_powerpc::Scan::local, global): Adjust reloc_needs_plt_for_ifunc
+       calls.  Put ifunc dynamic relocs in irela_dyn_section.  Only
+       push_branch and make_plt_entry for ifunc syms when
+       reloc_needs_plt_for_ifunc.
+       (Target_powerpc::Relocate::relocate): Don't use plt entry value
+       for ifunc unless reloc_needs_plt_for_ifunc.
+
+2013-03-15  Alan Modra  <amodra@gmail.com>
+
+       * gc.h (gc_process_relocs): Don't look through function descriptors.
+       * icf.cc (get_section_contents): Do so here instead.
+
+2013-03-13  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (is_branch_reloc): Forward declare.
+       (Target_powerpc::do_can_check_for_function_pointers): New predicate.
+       (Target_powerpc::Scan::local_reloc_may_be_function_pointer): Return
+       false for 64-bit, true for 32-bit non-branch relocs.
+       (Target_powerpc::Scan::global_reloc_may_be_function_pointer): Likewise.
+       * testsuite/Makefile.am (icf_test): Use linker map file instead of
+       nm output.
+       (icf_safe_test): Generate linker map file as well as nm output.
+       (icf_safe_so_test): Likewise.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/icf_test.sh: Parse linker map file to determine
+       section folding.
+       * testsuite/icf_safe_test.sh: Likewise.  Expect folding for PowerPC.
+       * testsuite/icf_safe_so_test.sh: Likewise.
+       (X86_32_or_ARM_specific_safe_fold): Merge into..
+       (arch_specific_safe_fold): ..this.
+       (X86_64_specific_safe_fold): Delete unused function.
+
+2013-03-12  Alan Modra  <amodra@gmail.com>
+
+       * gc.h (gc_process_relocs): Look through function descriptors
+       to determine shndx, symvalue and addend used by ICF.  Tidy
+       variable duplication.
+
+2013-03-11  Alan Modra  <amodra@gmail.com>
+
+       * gold.cc (queue_middle_tasks): Move detect_odr_violations..
+       * layout.cc (Layout_task_runner::run): ..to here.
+       * symtab.h (struct Symbol_location): Extract from..
+       (class Symbol_table): ..here.
+       * symtab.cc (Symbol_table::linenos_from_loc): Invoke function_location.
+       * target.h (class Target): Add function_location and
+       do_function_location functions.
+       (class Sized_target): Add do_function_location.
+       * object.h (class Sized_relobj_file): Move find_shdr..
+       (class Object): ..to here.
+       * object.cc: Likewise.  Update to suit.  Instantiate.
+       (Sized_relobj_file::find_eh_frame): Update find_shdr call.
+       * powerpc.cc (class Powerpc_dynobj): New.
+       (Target_powerpc::do_function_location): New function.
+       (Powerpc_relobj::do_find_special_sections): Update find_shdr call.
+       (Powerpc_dynobj::do_read_symbols): New function.
+       (Target_powerpc::do_make_elf_object): Make a Powerpc_dynobj.
+
+2013-03-08  Ian Lance Taylor  <iant@google.com>
+
+       * options.cc (General_options::string_to_object_format): Accept
+       "default".
+
+2013-03-08  Alan Modra  <amodra@gmail.com>
+
+       * ehframe.h (Post_fdes) Make it a vector of Post_fde rather than
+       pointer to Post_fde.
+       (struct Post_fde): Move definition to here..
+       * ehframe.cc (struct Post_fde): ..from here.
+       (Cie::write): Don't alloc Post_fde.
+       (Eh_frame::do_sized_write): Update.  Don't free Post_fde.
+
+2013-03-07  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/discard_locals_relocatable_test.c: Add a powerpc
+       relocation referencing .LC0.
+       * testsuite/discard_locals_test.sh: Remove FIXMEs.
+
+2013-03-07  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/ifunc-sel.h (ifunc_sel, ifunc_one): Mark
+       always_inline.  Add assembly for powerpc to avoid GOT.
+
+2013-03-07  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/script_test_10.sh: Don't test .bss section
+       header number.
+
+2013-03-06  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (class Powerpc_relobj): Move some member functions.
+       (Target_powerpc::symval_for_branch):  Add symtab param.  Update
+       all callers.  Handle folded sections.
+       (Target_powerpc::do_gc_add_reference): Don't cast dynamic object
+       to Powerpc_relobj.
+       (Global_symbol_visitor_opd::operator()): Likewise.
+
+2013-03-04  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/Makefile.am (final_layout_script.lds): Add .sbss.
+       * testsuite/Makefile.in: Regenerate.
+
+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-03-01  Cary Coutant  <ccoutant@google.com>
+
+       * dwarf_reader.cc (Dwarf_info_reader::check_buffer): Move
+       function into class definition in header file.
+       (Dwarf_info_reader::warn_corrupt_debug_section): New function.
+       * dwarf_reader.h (Dwarf_info_reader::warn_corrupt_debug_section):
+       New function.
+       (Dwarf_info_reader::check_buffer): Move here from .cc file.
+
+2013-02-28  Alan Modra  <amodra@gmail.com>
+
+       * target.h (Target::plt_fde_location, do_plt_fde_location): Declare.
+       * target.cc (Target::do_plt_fde_location): New function.
+       * ehframe.h (class FDE): Add post_map field to u_.from_linker,
+       accessor function, and constructor param.
+       (struct Post_fde, Post_fdes): Declare.
+       (Cie::write): Add post_fdes param.
+       * ehframe.cc (Fde::write): Use plt_fde_location.
+       (struct Post_fde): Define.
+       (Cie::write): Stash FDEs added post merge mapping.
+       (Eh_frame::add_ehframe_for_plt): Assert no new CIEs after mapping.
+       Adjust Fde constructor call.  Bump final_data_size_ for post map FDEs.
+       (Eh_frame::do_sized_write): Arrange to write post map FDES after
+       other FDEs.
+       * powerpc.cc (Target_powerpc::do_plt_fde_location): New function.
+       (Target_powerpc::has_glink): New function.
+       (Target_powerpc::do_relax): Add eh_frame info for stubs.
+       (struct Eh_cie, eh_frame_cie, glink_eh_frame_fde_64,
+       glink_eh_frame_fde_32, default_fde): New data.
+       (Stub_table::eh_frame_added_): New var.
+       (Stub_table::find_long_branch_entry, stub_address, stub_offset):
+       Make const.
+       (Stub_table::add_eh_frame): New function.
+       (Output_data_glink::add_eh_frame): New function.
+       (Target_powerpc::make_glink_section): Call add_eh_frame.
+
+2013-02-15  Ian Lance Taylor  <iant@google.com>
+
+       * options.h (DEFINE_uint64_alias): Define.
+       (class General_options): Add -Ttext-segment as an alias for
+       -Ttext.
+
+2013-02-15  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Stub_table::plt_off): New function, extracted from..
+       (Stub_table::do_write): ..here, two places.
+       (Stub_table::plt_call_size): Use it here too.
+
+2013-02-11  Ian Lance Taylor  <iant@google.com>
+
+       * descriptors.cc (Descriptors::close_all): New function.
+       * descriptors.h (class Descriptors): Declare close_all.
+       (close_all_descriptors): New inline function.
+       * plugin.cc: Include "descriptors.h".
+       (Plugin_manager::cleanup): Call close_all_descriptors.
+
+2013-02-06  Alan Modra  <amodra@gmail.com>
+
+       * README: Update coding style link.
+
+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.
+
+2013-01-24  Sriraman Tallam  <tmsriram@google.com>
+
+       * layout.cc (Layout::layout): Check for option text_reorder.
+       (Layout::make_output_section): Ditto.
+       * options.h (text_reorder): New option.
+       * output.cc (Input_section_sort_compare): Remove special ordering
+       of section names.
+       (Output_section::
+        Input_section_sort_section_name_special_ordering_compare::
+        operator()): New function.
+       (Output_section::sort_attached_input_sections): Use new sort function
+       for .text.
+       * output.h (Input_section_sort_section_name_special_ordering_compare):
+       New struct.
+       * testsuite/Makefile.am (text_section_grouping): Test option
+       --no-text-reorder
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/text_section_grouping.sh: Check order of functions without
+       default text reordering.
+
+2013-01-18  Mike Frysinger  <vapier@gentoo.org>
+
+       * options.h (General_options): Change default to true for new_dtags.
+
+2013-01-18  Mike Frysinger  <vapier@gentoo.org>
+
+       * layout.cc (Layout::finish_dynamic_section): Only add DT_RPATH
+       when enable_new_dtags is false.  Only add DT_RUNPATH when
+       enable_new_dtags is true.
+
+2013-01-17  Serge Pavlov  <serge.v.pavlov@gmail.com>
+
+       * powerpc.cc (Stub_table::find_plt_call_entry): Make types
+       used in declaration and definition consistent.
+       (Target_powerpc::symval_for_branch): Ditto.
+
+2013-01-16  Sriraman Tallam  <tmsriram@google.com>
+
+       * testsuite/plugin_final_layout.cc: Fix comment.
+
+2013-01-16  Sriraman Tallam  <tmsriram@google.com>
+
+       * layout.cc (Layout::layout): Do not do default sorting for
+       text sections when section ordering is specified.
+       (make_output_section): Ditto.
+       * testsuite/plugin_final_layout.cc: Name the function sections
+       to catch reordering issues.
+
+2013-01-15  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::do_relax): Default shared libs to
+       plt-thread-safe.
+
+2013-01-15  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/Makefile.am (final_layout_script.lds): Handle .got section.
+       * testsuite/Makefile.in: Regenerate.
+
+2013-01-14  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/Makefile.am (MOSTLYCLEANFILES): Add various output files.
+       * testsuite/Makefile.in: Regenerate.
+
+2013-01-11  Pavel Chupin  <pavel.v.chupin@intel.com>
+
+       PR bfd/14430
+       Fix mingw gold build with plugins enabled
+       * Makefile.am: Replace -ldl with @DLOPEN_LIBS@.
+       * configure.ac: Export DLOPEN_LIBS and add headers check.
+       * plugin.cc: Handle non-dlfcn case.
+       * Makefile.in: Regenerate.
+       * config.in: Regenerate.
+       * configure: Regenerate.
+       * testsuite/Makefile.in: Regenerate.
+
+2013-01-09  Sriraman Tallam  <tmsriram@google.com>
+
+       * output.h (sort_attached_input_sections): Change to be public.
+       * script-sections.cc
+       (Output_section_definition::set_section_addresses): Sort
+       attached input sections according to section order before linker
+       script assigns section addresses.
+       (Orphan_output_section::set_section_addresses): Sort
+       attached input sections according to section order before linker
+       script assigns section addresses.
+       * Makefile.am (final_layout.sh): Use a simple linker script to
+       check if section ordering still works.
+       * Makefile.in: Regenerate.
+
+2013-01-09  Ben Cheng  <bccheng@google.com>
+
+       * arm.cc (Target_arm::attributes_accept_div): New function.
+       (Target_arm::attributes_forbid_div): New function.
+       (Target_arm::merge_object_attributes): Merge the Tag_DIV_use
+       attribute using the same new functions as what bfd/elf32_arm.c
+       does.
+
+2013-01-07  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/14993
+       * output.cc (Output_section::add_input_section): For incremental
+       updates, don't track input sections that are allocated from patch
+       space.
+
+2013-01-07  H.J. Lu  <hongjiu.lu@intel.com>
+           Ian Lance Taylor  <iant@google.com>
+
+       PR gold/14897
+       * configure.ac (--enable-ld): Removed.
+       (install_as_default): Set to yes only for --enable-gold=default
+       or --disable-ld.
+       * configure: Regenerated.
+
+2013-01-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * options.h (General_options): Add -fuse-ld= for GCC linker
+       option compatibility.
+
+2013-01-04  Cary Coutant  <ccoutant@google.com>
+
+       * configure.ac: Fix typo restoring CXXFLAGS.
+       * configure: Regenerate.
+
+2013-01-04  Cary Coutant  <ccoutant@google.com>
+
+       * testsuite/Makefile.am (CXXLINK_S): New macro.
+       (debug_msg_so.err, debug_msg_ndebug.err): Use CXXLINK_S.
+       * testsuite/Makefile.in: Regenerate.
+
+2013-01-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * version.cc (print_version): Update copyright year to 2013.
+
 2012-12-20  Ian Lance Taylor  <iant@google.com>
 
        * layout.cc (Layout::special_ordering_of_input_section): New
 
 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
This page took 0.043134 seconds and 4 git commands to generate.