+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
+ function.
+ (Layout::layout): If input section requires special ordering, must
+ sort input sections.
+ (Layout::make_output_section): May sort .text input sections.
+ (Layout::is_section_name_prefix_grouped): Remove.
+ * layout.h (class Layout): Declare
+ special_ordering_of_input_section. Don't declare
+ is_section_name_prefix_grouped.
+ * output.cc (Output_section::add_input_section): Revert last
+ change.
+ (Output_section::Input_section_sort::match_file_name): Don't crash
+ if called on output section data.
+ (Output_section::Input_section_sort_compare): Sort based on
+ special ordering.
+ (Output_section::Input_section_sort_section_order_index_compare):
+ Revert last patch.
+ (Output_section::sort_attached_input_sections): Likewise.
+
+2012-12-18 Sriraman Tallam <tmsriram@google.com>
+
+ * layout.cc (Layout::is_section_name_prefix_grouped): New function.
+ * layout.h (Layout::is_section_name_prefix_grouped): New function.
+ * output.cc (Output_section::add_input_section): Check if section
+ name contains special prefix. Keep input sections to sort such
+ sections.
+ (Output_section::Input_section_sort_section_order_index_compare
+ ::operator()): Group sections according to prefixes.
+ (Output_section::sort_attached_input_sections): Add condition to
+ Input_section_entry constructor call.
+ * testsuite/Makefile.am (text_section_grouping): New test.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/text_section_grouping.cc: New file.
+ * testsuite/text_section_grouping.sh: New file.
+
+2012-12-17 Nick Clifton <nickc@redhat.com>
+
+ * Makefile.am: Add copyright notice.
+ * NEWS: Likewise.
+ * README: Likewise.
+ * configure.ac: Likewise.
+ * ftruncate.c: Likewise.
+ * Makefile.in: Regenerate.
+
+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.
+
+2012-12-14 Cary Coutant <ccoutant@google.com>
+
+ * dwp.cc (Dwp_output_file::add_cu_set): Check for duplicate CUs.
+ (Dwp_output_file::Dwp_index::enter_set): Add assert.
+
+2012-12-12 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (class Track_tls): New.
+ (class Relocate, class Scan): Inherit Track_tls.
+ (Target_powerpc::Scan::local, global): Track tls optimization
+ and avoid creating plt entry for __tls_get_addr if all uses
+ are optimized away.
+ (Target_powerpc::Relocate::relocate): Update to use Track_tls.
+
+2012-12-12 Alan Modra <amodra@gmail.com>
+
+ * options.h (General_options): Add --toc-sort/--no-toc-sort.
+ Replace no_toc_optimize with toc_optimize.
+ * output.h (Output_section::input_sections): Provide non-const variant.
+ * powerpc.cc (Powerpc_relobj::has_small_toc_reloc_,
+ set_has_small_toc_reloc, has_small_toc_reloc): New variable and
+ accessors.
+ (Target_powerpc::Scan::local, global): Call set_has_small_toc_reloc.
+ (class Sort_toc_sections): New.
+ (Target_powerpc::do_finalize_sections): Sort toc sections.
+ (Target_powerpc::Relocate::relocate): Update toc_optimize test.
+
+2012-12-10 Roland McGrath <mcgrathr@google.com>
+
+ * testsuite/binary_unittest.cc (read_all): New function.
+ (Sized_binary_test): Use it instead of ::read.
+ * fileread.cc (do_read): Don't assume pread always reads the whole
+ amount in a single call.
+
+2012-12-10 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Target_selector_powerpc::Target_selector_powerpc):
+ Set EM_PPC64 or EM_PPC here.
+ (Target_selector_powerpc::do_recognize): Delete.
+
+2012-12-10 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Powerpc_relobj::Powerpc_relobj): Init has14_ and
+ stub_table_.
+ (Target_powerpc::Branch_info::make_stub): Don't omit addend.
+
+2012-12-07 Roland McGrath <mcgrathr@google.com>
+
+ * testsuite/binary_unittest.cc (Sized_binary_test):
+ Use open_descriptor rather than ::open.
+
+2012-12-07 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Stub_table::do_write): Delete redundant Address
+ typedef and invalid_address constant.
+ (Output_data_glink, Stub_table, Target_powerpc): Explicitly
+ instantiate constants.
+
+2012-12-06 Roland McGrath <mcgrathr@google.com>
+
+ * configure.ac (HAVE_ZLIB): Use AM_ZLIB instead of AC_SEARCH_LIBS.
+ Use $ac_cv_header_zlib_h = yes as the condition in AM_CONDITIONAL.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+ * Makefile.in: Regenerate.
+ * testsuite/Makefile.in: Regenerate.
+
+2012-12-07 Alan Modra <amodra@gmail.com>
+
+ * options.h (General_options): Add no_toc_optimize.
+ * powerpc.cc (ok_lo_toc_insn): New function.
+ (Target_powerpc::Relocate::relocate): Optimize toc access sequences.
+
+2012-12-06 Alan Modra <amodra@gmail.com>
+
+ * options.h (General_options): Add plt_align, plt_static_chain,
+ plt_thread_safe. Update stub_group_size help text.
+ * powerpc.cc (Target_powerpc::plt_thread_safe): New access function
+ for new plt_thread_safe_ var.
+ (use_plt_offset): Correct comments.
+ (Target_powerpc::do_relax): Look for thread creation symbols to
+ determine default plt_thread_safe value. Clear plt call stubs
+ as well as branch stubs each iteration.
+ (add_2_2_11, add_12_12_11, bnectr_p4, cmpldi_2_0, xor_11_11_11): New
+ insn constants.
+ (l, hi, ha, write_insn): Move earlier.
+ (Stub_table): Delete prev_size, add last_plt_size and last_branch_size.
+ (Stub_table::clear_stubs): Rename from clear_long_branch_stubs, clear
+ plt stubs too.
+ (Stub_table::update_size): Adjust.
+ (Stub_table::prev_size, set_prev_size): Delete.
+ (Stub_table::stub_align): Let --plt-align affect result.
+ (Stub_table::plt_call_size): Calculate sizes for various stubs.
+ (Stub_table::branch_stub_size): Use last_plt_size in address calc.
+ (Stub_table::add_plt_call_stub): Pass iterator to plt_call_size.
+ (Stub_table::do_write): Support more stub variants.
+
+2012-12-04 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Powerpc_relobj::do_scan_relocs): Delete.
+ (Target_powerpc::do_define_standard_symbols): New function.
+
+2012-12-03 Alan Modra <amodra@gmail.com>
+
+ * output.h: Formatting, whitespace.
+
+2012-12-03 Alan Modra <amodra@gmail.com>
+
+ * layout.h (Layout::get_executable_sections): Declare.
+ * layout.cc (Layout::get_executable_sections): New function.
+ * arm.cc (Target_arm::group_sections): Use it.
+ (Arm_output_section::group_sections): Delete now redundant test.
+ * output.cc (Output_reloc::Output_reloc): Add is_relative.
+ param to handle relative relocs.
+ * output.h (Output_reloc::Output_reloc <absolute reloc>): Likewise.
+ (Output_data_reloc::add_absolute): Adjust.
+ (Output_data_reloc::add_relative): New function.
+ (Output_data::reset_data_size): New function.
+ (Output_relaxed_input_section::set_relobj, set_shndx): New functions.
+ (Output_section::set_addralign): New function.
+ (Output_section::checkpoint_set_addralign): New function.
+ (Output_section::clear_section_offsets_need_adjustment): New function.
+ (Output_section::input_sections): Make public.
+ * powerpc.cc (class Output_data_brlt_powerpc): New.
+ (class Stub_table, class Stub_control): New.
+ (Powerpc_relobj::has14_, set_has_14bit_branch, has_14bit_branch,
+ stub_table_, set_stub_table, stub_table): New vectors and accessor
+ functions.
+ (Target_powerpc::do_may_relax, do_relax, push_branch,
+ new_stub_table, stub_tables, brlt_section, group_sections,
+ add_branch_lookup_table, find_branch_lookup_table,
+ write_branch_lookup_table, make_brlt_section): New functions.
+ (Target_powerpc::struct Sort_sections, class Branch_info): New.
+ (Target_powerpc::brlt_section_, stub_tables_, branch_lookup_table_,
+ branch_info_): New vars.
+ (Target_powerpc::make_plt_entry, make_local_ifunc_plt_entry): Don't
+ make call stubs here.
+ (Output_data_glink): Remove all call stub handling from this class.
+ (Target_powerpc::Scan::local, global): Save interesting branch
+ relocs and relocs for ifunc. Adjust calls to plt entry functions.
+ (Target_powerpc::do_finalize_sections): Only make reg save/restore
+ functions on final link.
+ (Target_powerpc::Relocate::relocate): Adjust lookup of call stubs.
+ Handle long branch destinations too.
+ (Target_powerpc::do_dynsym_value, do_plt_address_for_global,
+ do_plt_address_for_local): Adjust lookup of plt call stubs.
+
+2012-11-30 Alan Modra <amodra@gmail.com>
+
+ * powerpc.c (Target_powerpc::Scan::global): Don't emit relative
+ relocs against protected symbols when building 32-bit shared libs.
+
+2012-11-30 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Target_powerpc::make_plt_section): Add symtab
+ param. Call got_section() to make .got. Update all callers
+ and their callers and so on.
+
+2012-11-30 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Powerpc_relobj::do_scan_relocs): Make STB_LOCAL
+ _GLOBAL_OFFSET_TABLE_ rather than STB_WEAK.
+ (Output_data_got_powerpc::make_header): Update _GLOBAL_OFFSET_TABLE_
+ value if it already exists.
+
+2012-11-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR gold/14858
+ * x86_64.cc (Relocate::tls_ld_to_le): Support x32.
+
+2012-11-14 Roland McGrath <mcgrathr@google.com>
+
+ * arm.cc (Output_data_plt_arm_nacl::first_plt_entry): Use bic rather
+ than bfc instruction for data sandboxing.
+
+2012-11-08 Alan Modra <amodra@gmail.com>
+
+ * po/POTFILES.in: Regenerate.
+
+2012-11-05 Alan Modra <amodra@gmail.com>
+
+ * configure.ac: Apply 2012-09-10 change to config.in here.
+ * configure: Regenerate.
+
+2012-11-05 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Powerpc_relobj): Delete "Offset" typedef.
+ (struct Opd_ent): Use "Address" rather than "Offset".
+ (Output_data_got_powerpc::got_base_offset): Return Valtype.
+ (Target_powerpc::got_section): Make public.
+ (Target_powerpc::scan_relocs): Move code setting symbols..
+ (Powerpc_relobj::do_scan_relocs): ..to here, new function.
+ Create _SDA_BASE_ only when referenced.
+
+2012-11-02 Roland McGrath <mcgrathr@google.com>
+
+ * i386.cc (Target_i386::relocate_relocs): Remove extraneous typename
+ from last change.
+
+2012-11-01 Roland McGrath <mcgrathr@google.com>
+
+ * target.h (Sized_target::relocate_relocs): Use Elf_Off
+ for offset_in_output_section parameter.
+ (Sized_target::relocate_special_relocatable): Likewise.
+ * arm.cc (Target_arm::relocate_relocs): Likewise.
+ (Target_arm::relocate_special_relocatable): Likewise.
+ * i386.cc (Target_i386::relocate_relocs): Likewise.
+ * powerpc.cc (Target_powerpc::relocate_relocs): Likewise.
+ * sparc.cc (Target_sparc::relocate_relocs): Likewise.
+ * target-reloc.h (relocate_relocs): Likewise.
+ * testsuite/testfile.cc (Target_test): Likewise.
+ * tilegx.cc (Target_tilegx::relocate_relocs): Likewise.
+ * x86_64.cc (Target_x86_64::relocate_relocs): Likewise.
+
+ * system.h: Move inclusion of <clocale> to after <libintl.h> in
+ [ENABLE_NLS] section, and separately at top of [!ENABLE_NLS] section.
+
+ * descriptors.cc (set_close_on_exec): Add ATTRIBUTE_UNUSED to the
+ parameter, which is unused in the [!F_SETFD] case.
+
+ * dwarf_reader.cc (Sized_elf_reloc_mapper::symbol_section): Cast
+ SYMNDX to off_t before comparing it to this->data_size().
+ * output.cc (Output_symtab_xindex::endian_do_write): Likewise.
+ * incremental.cc (Output_section_incremental_inputs::do_write):
+ Cast GLOBAL_SYM_COUNT to off_t before comparing it to SYMTAB_SIZE.
+
+ * nacl.cc: Include "libiberty.h" for vasprintf declaration.
+
+2012-10-30 Steve McIntyre <steve.mcintyre@linaro.org>
+
+ * gold.cc (Target_arm::do_adjust_elf_header): Add the
+ hard-float/soft-float ABI flag as appropriate for ET_DYN/ET_EXEC
+ in EABI_VER5.
+
+2012-10-29 Cary Coutant <ccoutant@google.com>
+
+ * dwp.cc (usage): Add file and exit status parameters;
+ add --help and --version options.
+ (print_version): New function.
+ (main): Add --help and --version options.
+
+2012-10-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/Makefile.am (MOSTLYCLEANFILES): Add
+ final_layout_sequence.txt.
+ * testsuite/Makefile.in: Regenerated.
+
+2012-10-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/Makefile.am (COMPILE1): New variable. Renamed from
+ COMPILE generated by automake.
+ (LINK1): Likewise.
+ (CXXCOMPILE1): Likewise.
+ (CXXLINK1): Likewise.
+ (COMPILE): Strip out -Wp,-D_FORTIFY_SOURCE= from COMPILE1.
+ (LINK): Likewise.
+ (CXXCOMPILE): Likewise.
+ (CXXLINK): Likewise.
+ * testsuite/Makefile.in: Regenerated.
+
+2012-10-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * dwp.cc (Dwo_file::record_target_info): Issue a fatal error
+ on bad fwrite return.
+
+2012-10-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * dwp.cc (Dwo_file::remap_str_offset): Use section_offset_type
+ on val.
+
+2012-10-23 Cary Coutant <ccoutant@google.com>
+
+ * testsuite/Makefile.am (TEST_OBJCOPY): New macro.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/dwp_test.h: New source file.
+ * testsuite/dwp_test_1.cc: New source file.
+ * testsuite/dwp_test_1.s: New source file.
+ * testsuite/dwp_test_1.sh: New source file.
+ * testsuite/dwp_test_1b.cc: New source file.
+ * testsuite/dwp_test_1b.s: New source file.
+ * testsuite/dwp_test_2.cc: New source file.
+ * testsuite/dwp_test_2.s: New source file.
+ * testsuite/dwp_test_2.sh: New source file.
+ * testsuite/dwp_test_main.cc: New source file.
+ * testsuite/dwp_test_main.s: New source file.
+
+2012-10-23 Cary Coutant <ccoutant@google.com>
+
+ * dwp.h: New header file.
+ * dwp.cc: New source file.
+ * gold.h: Move shared declarations to system.h.
+ * system.h: New header file.
+ * Makefile.am: Add dwp.
+ * Makefile.in: Regenerate.
+
+2012-10-23 Cary Coutant <ccoutant@google.com>
+
+ * dwarf_reader.cc (Dwarf_ranges_table::read_range_list): Call
+ Dwarf_info_reader::read_from_pointer.
+ (Dwarf_pubnames_table::read_header): Likewise.
+ (Dwarf_pubnames_table::next_name): Likewise.
+ (Dwarf_die::read_attributes): Likewise.
+ (Dwarf_die::skip_attributes): Likewise.
+ (Dwarf_info_reader::read_from_pointer): New function template.
+ * dwarf_reader.h (Dwarf_ranges_table): Add dwinfo_.
+ (Dwarf_pubnames_table): Likewise.
+ (Dwarf_info_reader::read_from_pointer): New function template.
+ * gdb-index.cc (Gdb_index_info_reader): Adjust call to
+ Dwarf_pubnames_table ctor.
+
+2012-10-23 Cary Coutant <ccoutant@google.com>
+
+ * dwarf_reader.cc (Dwarf_info_reader::do_parse): Use stored
+ abbrev_shndx.
+ * dwarf_reader.h (Dwarf_info_reader::Dwarf_info_reader): Initialize
+ abbrev_shndx_.
+ (Dwarf_info_reader::set_abbrev_shndx): New method.
+ (Dwarf_info_reader::abbrev_shndx_): New data member.
+
+2012-10-23 Cary Coutant <ccoutant@google.com>
+
+ * dwarf_reader.cc (make_elf_reloc_mapper): Check size and endianness
+ from object, not parameters.
+ (Dwarf_info_reader::parse): Likewise.
+ * object.h (Relobj::elfsize, Relobj::is_big_endian): New methods.
+ (Relobj::do_elfsize, Relobj::do_is_big_endian): New methods.
+ (Sized_relobj::do_elfsize, Sized_relobj::do_is_big_endian): New
+ methods.
+
+2012-10-23 Cary Coutant <ccoutant@google.com>
+
+ * fileread.cc (Input_file::Input_file): New constructor.
+ * fileread.h (class Input_file): Add new constructor.
+
+2012-10-18 Alan Modra <amodra@gmail.com>
+
+ PR gold/14727
+ * object.cc (Relobj::is_section_name_included): Also match
+ .sdata personality section.
+
+2012-10-18 Alan Modra <amodra@gmail.com>
+
+ * target-reloc.h (class Default_comdat_behavior): New, package up..
+ (get_comdat_behaviour): ..this.
+ (relocate_section): Add Relocate_comdat_behavior template arg,
+ adjust code to suit.
+ * arm.cc (Target_arm::relocate_section): Adjust to suit.
+ (Target_arm::scan_reloc_section): Likewise.
+ * i386.cc (Target_i386::relocate_section): Likewise.
+ * sparc.cc (Target_sparc::relocate_section): Likewise.
+ * tilegx.cc (Target_tilegx::relocate_section): Likewise.
+ * x86_64.cc (Target_x86_64::relocate_section): Likewise.
+ * powerpc.cc (class Relocate_comdat_behavior): New.
+ (Target_powerpc::relocate_section): Don't zap opd relocs. Supply
+ gold::relocate_section with new template arg.
+
+2012-10-18 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Target_powerpc::Scan::local, global): Always emit
+ dynamic relocs for GOT_TPREL got entries, without symbol if
+ resolving locally.
+ (Target_powerpc::do_gc_add_reference): Don't add for dynamic objects.
+ (Target_powerpc::scan_relocs): Define _GLOBAL_OFFSET_TABLE_ early.
+ (Target_powerpc::Relocate:relocate): REL32 reloc may be unaligned.
+
+2012-10-17 Alan Modra <amodra@gmail.com>
+
+ PR gold/14726
+ * gold.cc (queue_middle_tasks): Call gc_mark_symbol on _init and _fini.
+
+2012-10-16 Sriraman Tallam <tmsriram@google.com>
+
+ * layout.cc (Layout::include_section): Keep sections marked
+ SHF_EXCLUDE when doing relocatable links.
+
+2012-10-16 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Target_powerpc::define_save_restore_funcs): New func.
+ (Target_powerpc::do_finalize_sections): Call it.
+ (Output_data_save_res): New class and supporting functions.
+ (Target_powerpc::symval_for_branch): Only look up .opd entry for
+ normal symbols defined in object files.
+
+2012-10-12 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Powerpc_relobj::add_gc_mark, process_gc_mark): New.
+ (struct Opd_ent): Make "discard" a bit field. Add "gc_mark".
+ (Target_powerpc::do_gc_mark_symbol): Delay marking function code
+ section if scan_opd_relocs not yet called.
+ (Target_powerpc::gc_process_relocs): Call process_gc_mark.
+
+2012-10-12 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Output_data_plt_powerpc::add_entry, add_ifunc_entry,
+ add_local_ifunc_entry): Revert last change.
+ (Target_powerpc::make_plt_entry, make_local_ifunc_plt_entry): Likewise.
+
+2012-10-05 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Target_powerpc::do_plt_address_for_local,
+ do_plt_address_for_global): New functions.
+ (Output_data_got_powerpc::do_write): Don't segfault when linking
+ statically.
+ (Output_data_plt_powerpc::add_entry, add_ifunc_entry,
+ add_local_ifunc_entry): Return true on adding entry..
+ (Target_powerpc::make_plt_entry): ..use to avoid unnecessary
+ glink->add_entry call. Remove unused symtab param. Adjust calls.
+ (Target_powerpc::make_local_ifunc_plt_entry): Likewise.
+ (Target_powerpc::make_iplt_section): Remove symtab param. Don't
+ set up symbols here.
+ (Target_powerpc::do_finalize_sections): Instead set up __rela_iplt
+ syms here. Do so even when no .iplt. Don't segfault when linking
+ statically.
+ (Output_data_glink::add_entry, find_entry): Rearrange params. Add
+ new variants without reloc param.
+ (Glink_sym_ent::Glink_sym_ent): Likewise.
+ (Target_powerpc::Scan::reloc_needs_plt_for_ifunc): Accept any
+ reloc when refs will resolve to plt call stub.
+ (Target_powerpc::Scan::local): Correct ifunc handling. Allow
+ R_PPC_PLTREL24 to resolve locally.
+ (Target_powerpc::Scan::global): Correct ifunc handling.
+ (Target_powerpc::Relocate::relocate): Correct local sym glink
+ lookup. Don't destroy "value" when we have a plt call stub,
+ and when checking plt call validity.
+ (Target_powerpc::do_dynsym_value): Simplify.
+
+2012-10-05 Alan Modra <amodra@gmail.com>
+
+ * i386.cc (Output_data_plt_i386::address_for_global,
+ address_for_local): Add plt offset to returned value. Adjust uses.
+ * sparc.cc (Output_data_plt_sparc::address_for_global,
+ address_for_local): Likewise.
+ * tilegx.cc (Output_data_plt_tilegx::address_for_global,
+ address_for_local): Likewise.
+ * x86_64.cc (Output_data_plt_x86_64::address_for_global,
+ address_for_local): Likewise.
+ * target.h (Target::plt_address_for_global, plt_address_for_local):
+ Update comment.
+ * output.cc (Output_reloc::symbol_value): Don't add plt offset here.
+ (Output_data_got::Got_entry::write): Nor here.
+ * output.h: Comment fix.
+
+2012-10-02 Jiong Wang <jiwang@tilera.com>
+
+ * tilegx.cc (Target_tilegx::do_finalize_sections): Adjust
+ global_offset_table_ value for larget got.
+ (Target_tilegx::Relocate::relocate): Handle adjusted got value.
+
+2012-09-29 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Target_powerpc::iplt_): New output section.
+ (Target_powerpc::iplt_section, make_iplt_section,
+ reloc_needs_plt_for_ifunc, make_local_ifunc_plt_entry): New functions.
+ (Target_powerpc::make_plt_entry): Handle ifunc syms.
+ Target_powerpc::plt_entry_count): Count iplt entries too.
+ (Output_data_plt_powerpc::Output_data_plt_powerpc): Don't create
+ reloc section in constructor. New params.
+ (Target_powerpc::make_plt_section): Create reloc section here instead.
+ (Output_data_plt_powerpc::add_ifunc_entry, add_local_ifunc_entry): New
+ functions.
+ (Output_data_plt_powerpc::initial_plt_entry_size_, name_): New vars.
+ (Output_data_glink::add_entry, find_entry): New functions to
+ deal with local syms.
+ (Glink_sym_ent): Add support for local syms.
+ (Output_data_glink::do_write): Handle ifunc plt entries.
+ (Target_powerpc::Scan::get_reference_flags): Handle more relocs.
+ (Target_powerpc::Scan::local, global): Handle ifunc syms.
+ (Target_powerpc::Relocate::relocate): Likewise.
+ (Target_powerpc::do_dynsym_value): Use glink stub, not plt entry.
+
+2012-09-25 Alan Modra <amodra@gmail.com>
+
+ * object.h (Sized_relobj_file::adjust_local_symbol,
+ do_adjust_local_symbol): New functions.
+ * object.cc (Sized_relobj_file::do_count_local_symbols): Use the above.
+ * powerpc.cc (Powerpc_relobj::do_adjust_local_symbol): New function.
+ (Powerpc_relobj::scan_opd_relocs): Warn on unexpected opd relocs
+ and irregular opd entry spacing.
+ (Powerpc_relobj::do_read_relocs): Add opd size checks.
+ (Global_symbol_visitor_opd): New functor.
+ (Target_powerpc::do_finalize_sections): Omit global symbols defined
+ on deleted opd entries.
+
+2012-09-15 Jiong Wang <jiwang@tilera.com>
+
+ * tilegx.cc: New file.
+ * Makefile.am (TARGETSOURCES): Add tilegx.cc
+ (ALL_TARGETOBJS): Add tilegx.$(OBJEXT)
+ * configure.tgt: Add entries for tilegx*.
+ * configure.ac: Likewise.
+ * Makefile.in: Rebuild.
+ * configure: Likewise.
+ * testsuite/icf_safe_test.sh (arch_specific_safe_fold): Handle
+ tilegx.
+
+2012-09-13 Alan Modra <amodra@gmail.com>
+
+ * target-reloc.h (scan_relocs): Call scan.local for relocs
+ against symbols in discarded sections. Pass is_discarded
+ param.
+ * arm.cc, * i386.cc, * sparc.cc, * x86_64.cc (Target_*::Scan::local):
+ Add is_discarded param.
+ * powerpc (Target_powerpc::Scan::local): Likewise. Use
+ is_discarded to flag opd entry as discarded. Don't emit dyn
+ relocs on such entries.
+ (Target_powerpc::Scan::global): Similarly detect and handle
+ such opd entries.
+ (Powerpc_relobj): Replace opd_ent_shndx_ and opd_ent_off_ with
+ opd_ent_. Update all uses.
+ (Powerpc_relobj::get_opd_discard, set_opd_discard): New functions.
+ (Target_powerpc::relocate_section): Zero out discarded opd
+ entry relocs.
+
+2012-09-12 Ian Lance Taylor <iant@google.com>
+
+ PR gold/14570
+ * output.cc: Rename Output_data_got template parameter from size
+ to got_size for all functions. Compile all variants of
+ Output_data_got.
+ (Output_data_got::Got_entry::write): Correct use of size for
+ symbol value. Use local_is_tls rather than casting to
+ Sized_relobj_file.
+ * object.h (class Object): Add local_is_tls and do_local_is_tls.
+ (class Sized_relobj_file): Add do_local_is_tls.
+ * incremental.h (class Sized_relobj_incr): Add do_local_is_tls.
+
+2012-09-11 Alan Modra <amodra@gmail.com>
+
+ PR gold/14566
+ * layout.cc (Layout::set_segment_offsets): When using
+ common-page-size alignment, ensure we are on a new max-page-size
+ page.
+ * output.cc (Output_segment::set_section_addresses): Use
+ abi_pagesize, not common_pagesize for relro boundary.
+ (Output_segment::set_offset): Likewise.
+
+2012-09-11 Alan Modra <amodra@gmail.com>
+
+ * output.h (Output_data_got::add_global_tls, add_local_tls,
+ add_local_tls_pair): New functions.
+ (Output_data_got::add_local_pair_with_rel): Remove second
+ reloc param. Expand comment.
+ (Output_data_got::Got_entry): Rename use_plt_offset_ to
+ use_plt_or_tls_offset_, similarly for constructor param.
+ (Output_data_got::Got_entry::write): Add got_index param.
+ * output.cc (Output_data_got::add_global_tls, add_local_tls,
+ add_local_tls_pair): New functions.
+ (Output_data_got::Got_entry::write): Handle tls symbols
+ with use_plt_or_tls_offset_ set specially.
+ (Output_data_got::add_local_pair_with_rel): Only one reloc.
+ (Output_data_got::do_write): Replace iterator with index, pass
+ index to entry write function.
+ * target.h (Target::tls_offset_for_local, tls_offset_for_global,
+ do_tls_offset_for_local, do_tls_offset_for_global): New functions.
+ * arm.cc (Target_arm::Scan::local): Update add_local_pair_with_rel
+ call.
+ * i386.cc (Target_i386::Scan::local): Likewise.
+ * sparc.cc (Target_sparc::Scan::local): Likewise.
+ * x86_64.cc (Target_x86_64::Scan::local): Likewise.
+ * powerpc.cc (Target_powerpc::do_tls_offset_for_local,
+ do_tls_offset_for_global): New functions.
+ (Target_powerpc::Scan::local): Correct TLS relocations and got
+ entry values.
+ (Target_powerpc::Scan::global): Don't emit unnecessary
+ dynamic relocations on TLS GOT entries.
+
+2012-09-10 Matthias Klose <doko@ubuntu.com>
+
+ * config.in: Disable sanity check for kfreebsd.
+
+2012-09-10 Sterling Augustine <saugustine@google.com>
+
+ * gdb-index.cc (Gdb_index::pubnames_read): New parameter.
+ (Gdb_index::pubtypes_read): New parameter.
+ (Gdb_index_info_reader::read_pubnames_and_pubtypes): Add parameters
+ to calls.
+ * gdb-index.h (Gdb_index): New fields pubnames_object_ and
+ pubtypes_object_.
+
+2012-09-09 Alan Modra <amodra@gmail.com>
+
+ * target.h (Target::gc_mark_symbol, do_gc_mark_symbol): New functions.
+ (Sized_target::gc_add_reference, do_gc_add_reference): New functions.
+ * gc.h (gc_process_relocs): Call target gc_add_reference.
+ * gold.cc (queue_middle_tasks): Use gc_mark_symbol on start sym.
+ * symtab.cc (Symbol_table::gc_mark_undef_symbols): Use gc_mark_symbol.
+ (Symbol_table::gc_mark_symbol): Call target gc_mark_symbol. Remove
+ unnecessary cast.
+ * powerpc.cc (Powerpc_relobj::get_opd_ent): Rearrange parameters
+ to cater for when we don't need code offset. Update use.
+ (Powerpc_relobj::access_from_map_, opd_valid_): New vars.
+ (Powerpc_relobj::access_from_map, add_reference, opd_valid,
+ set_opd_valid): New functions.
+ (Target_powerpc::do_gc_add_reference): New function.
+ (Target_powerpc::gc_process_relocs): Call gc()->add_reference on
+ stashed refs.
+ (Target_powerpc::do_gc_mark_symbol): New function.
+
+2012-09-06 Cary Coutant <ccoutant@google.com>
+
+ * dwarf_reader.cc (Dwarf_die::read_attributes): Add
+ DW_FORM_GNU_addr_index and DW_FORM_GNU_str_index.
+ (Dwarf_die::skip_attributes): Likewise.
+ * object.cc (Read_symbols_data::~Read_symbols_data): Update comment.
+ * testsuite/gdb_index_test.cc (inline_func_1): New function.
+ (main): Call it.
+ * testsuite/gdb_index_test_comm.sh: Check index for inline function.
+