Fix gold error: hidden symbol '...' is not defined locally
[deliverable/binutils-gdb.git] / gold / ChangeLog
index 5e15f5e43713f534a95d06846bce43486cbe9c0b..71a5ab2281262b7e0e2c6c08ce5d42e18f1b9e5a 100644 (file)
@@ -1,3 +1,921 @@
+2015-02-18  Alan Modra  <amodra@gmail.com>
+
+       PR 17954
+       * powerpc.cc (Global_symbol_visitor_opd::operator()): Set default
+       visibility.
+
+2015-02-17  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * gc.h (Garbage_collection::add_reference): Don't use find.
+
+2015-02-17  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * object.cc (write_local_symbols): avoid std::vector copy.
+
+2015-02-17  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * merge.cc (get_output_offset): Use upper_bound instead of lower_bound.
+
+2015-02-09  Mark Wielaard  <mjw@redhat.com>
+
+       * gdb-index.cc (Gdb_index_info_reader::visit_top_die): Recognize
+       DW_LANG_Fortran03 and DW_LANG_Fortran08.
+
+2015-02-16  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/13577
+       PR gold/16992
+       * layout.cc (Layout::finish_dynamic_section): Don't set DT_SYMBOLIC or
+       DF_SYMBOLIC if --dynamic-list option is used.
+       * options.cc (General_options::finalize): --dynamic-list is not
+       mutually exclusive with -Bsymbolic.
+       * symtab.h (Symbol::is_preemptible): Don't exclude dynamic symbols not
+       listed in --dynamic-list.
+       * testsuite/Makefile.am (dynamic_list_lib2.so): Add
+       -Bsymbolic-functions.
+       * testsuite/Makefile.in: Regenerate.
+
+2015-02-16  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/17971
+       * incremental.cc: Remove redundant include of "output.h".
+
+2015-02-12  Jing Yu  <jingyu@google.com>
+
+       * aarch64-reloc.def (TLSLE_MOVW_TPREL_G2, TLSLE_MOVW_TPREL_G1,
+       TLSLE_MOVW_TPREL_G1_NC, TLSLE_MOVW_TPREL_G0, TLSLE_MOVW_TPREL_G0_NC,):
+       New relocation.
+       * aarch64.cc (Target_aarch64::Scan::local): Add cases for new
+       TLSLE_MOVW_* relocations.
+       (Target_aarch64::Scan::global): Likewise.
+       (Target_aarch64::Relocate::relocate): Likewise.
+       (Target_aarch64::Relocate::relocate_tls): Add cases and handlings
+       for new TLSLE_MOVW_* relocations.
+
+2015-02-11  Will Newton  <will.newton@linaro.org>
+
+       PR gold/13321
+       * arm.cc (Target_arm::make_plt_section): Create an ARM
+       state mapping symbol at the start of the PLT.
+
+2015-02-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * testsuite/Makefile.am (two_file_shared_2_pic_1_test_DEPENDENCIES):
+       Replace two_file_shared_2.so with two_file_shared_1.so.
+       * testsuite/Makefile.in: Regenerated.
+
+2015-02-09  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/Makefile.am (MOSTLYCLEANFILES): Add libweak_undef_2.a,
+       plugin_test_thin.a and defsym_test.
+       * testsuite/Makefile.in: Regenerate.
+
+2015-02-04  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * merge.cc (do_add_input_section): Combine loop epilogue into main loop
+       body.
+
+2015-02-04  Peter Collingbourne  <pcc@google.com>
+
+       * plugin.cc (Pluginobj::get_symbol_resolution_info): Resolve
+       forwarding symbols when computing symbol resolution info for plugins.
+       * plugin.h (Plugin_manager::symtab): New method.
+       (Pluginobj::get_symbol_resolution_info): Add symtab parameter.
+
+2015-02-03  Cary Coutant  <ccoutant@google.com>
+           Peter Collingbourne  <pcc@google.com>
+
+       PR gold/15660
+       * archive.cc (Thin_archive_object_unlocker): New class.
+       (Archive::include_member): Unlock external members of thin archives.
+       * testsuite/Makefile.am (plugin_test_1): Rename .syms files.
+       (plugin_test_2): Likewise.
+       (plugin_test_3): Likewise.
+       (plugin_test_4): Likewise.
+       (plugin_test_5): Likewise.
+       (plugin_test_6): Likewise.
+       (plugin_test_7): Likewise.
+       (plugin_test_8): Likewise.
+       (plugin_test_9): Likewise.
+       (plugin_test_10): Likewise.
+       (plugin_test_11): New test case.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/plugin_test.c (claim_file_hook): Check for parallel .syms
+       file to decide whether to claim file.
+       (all_symbols_read_hook): Likewise.
+       * testsuite/plugin_test_1.sh: Adjust expected output.
+       * testsuite/plugin_test_2.sh: Likewise.
+       * testsuite/plugin_test_3.sh: Likewise.
+       * testsuite/plugin_test_6.sh: Likewise.
+       * testsuite/plugin_test_tls.sh: Likewise.
+       * testsuite/plugin_test_11.sh: New testcase.
+
+2015-02-03  Cary Coutant  <ccoutant@google.com>
+
+       * descriptors.cc (Descriptors::open): Set artificially-low limit for
+       file descriptors when debugging enabled. Add debug output.
+       (Descriptors::release): Add debug output.
+       (Descriptors::close_some_descriptor): Likewise.
+       (Descriptors::close_all): Likewise.
+       * fileread.cc (File_read::lock): Likewise.
+       (File_read::unlock): Likewise.
+
+2015-02-02  Cary Coutant  <ccoutant@google.com>
+
+       * x86_64.cc (Target_x86_64::Relocate::relocate_tls): Check for
+       executable output file.
+
+2015-01-22  Han Shen  <shenhan@google.com>
+
+       * arm.cc (Target_arm::Target_arm): Add initialization for new members.
+       (Target_arm::do_plt_address_for_global): New method.
+       (Target_arm::do_plt_address_for_local): New method.
+       (Target_arm::rel_irelative_section): New method.
+       (Target_arm::make_data_plt): Add more parameters for plt ctor.
+       (Target_arm::do_make_data_plt): Add more parameters for plt ctor.
+       (Target_arm::Scan::symbol_needs_plt_entry): Add ifunc support.
+       (Target_arm::Scan::reloc_needs_plt_for_ifunc): Add ifunc support.
+       (Target_arm::Scan::check_non_pic): Add ifunc support.
+       (Target_arm::Scan::local): Add ifunc support.
+       (Target_arm::Scan::global): Add ifunc support.
+       (Target_arm::make_plt_section): New method.
+       (Target_arm::make_plt_entry): Change to call to make_plt_section.
+       (Target_arm::make_local_ifunc_plt_entry): New method.
+       (Target_arm::got_irelative_): New member.
+       (Target_arm::rel_irelative_): New member.
+       (Target_arm::got_section): Add creation for got_irelative_.
+       (Target_arm::rel_dyn_section): Add creation for rel_irelative_.
+       (Target_arm::Relocate::relocate): Properly set local ifunc address.
+       (Target_arm::do_dynsym_value): Properly set global ifunc address.
+       (Target_arm::scan_reloc_for_stub): Properly set global ifunc address.
+       (Output_data_plt_arm::IRelative_data): New type.
+       (Output_data_plt_arm::Output_data_plt_arm): Add more parameters.
+       (Output_data_plt_arm::add_entry): Add more parameters.
+       (Output_data_plt_arm::add_relocation): New method.
+       (Output_data_plt_arm::add_local_ifunc_entry): New method.
+       (Output_data_plt_arm::rel_irelative): New method.
+       (Output_data_plt_arm::entry_count): Modified.
+       (Output_data_plt_arm::address_for_global): New method.
+       (Output_data_plt_arm::address_for_local): New method.
+gold/
+       (Output_data_plt_arm::set_final_data_size): Add irelative_count_.
+       (Output_data_plt_arm::insert_irelative_data): New method.
+       (Output_data_plt_arm::irelative_rel_): New member.
+       (Output_data_plt_arm::got_): New member.
+       (Output_data_plt_arm::got_irelative_): New member.
+       (Output_data_plt_arm::irelative_count_): New member.
+       (Output_data_plt_arm::IRelative_data_vec): New typedef.
+       (Output_data_plt_arm::irelative_data_vec_): New member.
+       (Output_data_plt_arm::do_write): Write out irelative entries.
+       (Output_data_plt_arm_standard::Output_data_plt_arm_standard): Add
+       more parameters to ctor.
+       (Output_data_plt_arm_nacl::Output_data_plt_arm_nacl): Add
+       more parameters to ctor.
+       * output.h (Output_data_reloc::add_local_relative): New method.
+       * aarch64.cc (Output_data_plt_aarch64): Fixed typo in comment.
+
+2015-01-29  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::Relocate::relocate): Correct GOT_TLSLD
+       and GOT_TLSGD to LE optimization.
+
+2015-01-28  Cary Coutant  <ccoutant@google.com>
+
+       * x86_64.cc (Target_x86_64::Scan::global): Allow IE-to-LE optimization
+       for undef TLS symbols.
+       (Target_x86_64::Relocate::relocate_tls): Likewise.
+       (Target_x86_64::Relocate::tls_ie_to_le): Likewise.
+
+2015-01-25  Cary Coutant  <ccoutant@google.com>
+
+       * output.cc (Output_segment::set_section_addresses): Fix calculation
+       of size of relro segment.
+
+2015-01-22  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::Scan::local <got relocs>): Correct
+       condition for need of ifunc plt entry.
+       (Target_powerpc::Scan::global <got relocs>): Likewise.
+
+2015-01-14  Sasa Stankovic  <Sasa.Stankovic@imgtec.com>
+
+       * mips.cc (reloc_high): Add r_sym.
+       (Mips_relocate_functions::relhi16): Add r_sym parameter. Pass r_sym to
+       reloc_high constructor.
+       (Mips_relocate_functions::relgot16_local): Likewise.
+       (Mips_relocate_functions::rello16): Add r_sym parameter. Use r_sym and
+       r_type to decide whether LO16 matches HI16.
+       (Target_mips::Relocate::relocate): Pass r_sym to calls to relhi16,
+       rello16 and relgot16_local.
+
+2015-01-09  Cary Coutant  <ccoutant@google.com>
+
+       * layout.cc (Layout::set_segment_offsets): Don't align start of segment
+       unless alignment is larger than page size.
+
+2015-01-06  H.J. Lu  <hongjiu.lu@intel.com>
+           Cary Coutant  <ccoutant@google.com>
+
+       PR gold/17729
+       * configure.ac (DEFAULT_TARGET_X86_64): Don't set for x32.
+       (DEFAULT_TARGET_X32): Set for x32.
+       * x86_64.cc (cmp_insn_32): New.
+       (lea_r10_insn_32): Likewise.
+       (lea_r11_insn_32): Likewise.
+       (cmp_insn_64): Likewise.
+       (lea_r10_insn_64): Likewise.
+       (lea_r11_insn_64): Likewise.
+       (Target_x86_64<size>::do_calls_non_split): Handle x32.
+       * testsuite/Makefile.am (check_SCRIPTS): Add split_x32.sh.
+       (check_DATA): Add split_x32 files.
+       (split_x32_[1234n].o): New targets.
+       (split_x32_[124]): New targets.
+       (split_x32_[1234r].stdout): New targets.
+       * testsuite/split_x32.sh: New file.
+       * testsuite/split_x32_1.s: Likewise.
+       * testsuite/split_x32_2.s: Likewise.
+       * testsuite/split_x32_3.s: Likewise.
+       * testsuite/split_x32_4.s: Likewise.
+       * testsuite/split_x32_n.s: Likewise.
+       * configure: Regenerated.
+       * testsuite/Makefile.in: Likewise.
+
+2015-01-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gold/17809
+       * x86_64.cc (Target_x86_64<size>::Relocate::tls_ie_to_le): Handle
+       x32.
+
+2015-01-02  Alan Modra  <amodra@gmail.com>
+
+       * version.cc (print_version): Just print current year.
+       * dwp.cc (print_version): Likewise.
+
+2015-01-01  Alan Modra  <amodra@gmail.com>
+
+       Update year range in copyright notice of all files.
+
+2014-12-25  Alan Modra  <amodra@gmail.com>
+
+       * arm.cc (Target_arm::do_adjust_elf_header): Provide namespace on
+       new enums.
+       (Target_arm::merge_object_attributes, ): Likewise.
+
+2014-12-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       * arm.cc (Target_arm::do_adjust_elf_header): Set e_flags in ELF header
+       as hard float only when Tag_ABI_VFP_args is 1, using new enum value
+       AEABI_VFP_args_vfp to check that.
+       (Target_arm::merge_object_attributes): Handle new Tag_ABI_VFP_args
+       value and replace hardcoded values by enum values.
+
+2014-12-22  Cary Coutant  <ccoutant@google.com>
+
+       * powerpc.cc (Target_powerpc::relocate): Fix overflow check.
+
+2014-12-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gold/14608
+       * testsuite/debug_msg.cc (SometimesInlineFunction): Changed
+       to "return i * i * 3;".
+
+2014-12-16  Cary Coutant  <ccoutant@google.com>
+
+       * mapfile.cc (Mapfile::print_input_section): Print uncompressed sizes.
+       (Mapfile::print_output_data): Use current_data_size() to avoid
+       assert for sections requiring postprocessing; if address is not valid,
+       print 0.
+       (Mapfile::print_output_section): Use current_data_size(); print note
+       that addresses and sizes are before compression.
+
+2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * aarch64.cc (AArch64_relocate_functions::maybe_apply_stub):
+       Cast current_group_size to unsigned long when reporting error.
+
+2014-12-10  Jing Yu  <jingyu@google.com>
+
+       * aarch64.cc (Target_aarch64): Add new variable stub_group_size_.
+       (AArch64_relocate_functions::maybe_apply_stub): Add new parameter.
+       Update error message.
+       (Target_aarch64::do_relax): Use absolute value of option
+       stub_group_size. Replace local variable with class member
+       stub_group_size_.
+
+2014-12-04  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::Branch_info::make_stub): Ignore
+       addend of PLTREL24 reloc when not generating a plt stub.  Make
+       max_branch_offset an "Address".
+       (Stub_table::can_reach_stub): Make max_branch_offset an "Address".
+       (Target_powerpc::Relocate::relocate): Likewise.
+
+2014-12-04  Alan Modra  <amodra@gmail.com>
+
+       PR 17670
+       * symtab.cc (Symbol::set_undefined): Remove assertion.
+       * powerpc.cc (Target_powerpc::symval_for_branch): Don't assert
+       on symbols defined in discarded sections, instead return false.
+       Rearrange params, update all callers.
+       (Target_powerpc::Branch_info::make_stub): Don't make stubs for
+       branches to syms in discarded sections.
+       (Global_symbol_visitor_opd::operator()): Set discarded opd syms
+       undefined and flag as discarded.
+       (Target_powerpc::Relocate::relocate): Localize variable.
+
+2014-12-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gold/17675
+       * testsuite/Makefile.am (pie_copyrelocs_test_CXXFLAGS): New.
+       * testsuite/Makefile.in: Regenerated.
+
+2014-12-03  Alan Modra  <amodra@gmail.com>
+
+       PR 17566
+       * powerpc.cc (Target_powerpc::Scan::local): Use add_local_section
+       when adding dynamic relocations against section symbols.
+
+2014-12-01  Dimitry Ivanov <dimitry@google.com>
+
+       * layout.cc (Layout::finish_dynamic_section): When '-z global'
+       is specified set DF_1_GLOBAL in DT_FLAGS_1 flags.
+       * options.h (General_options): New -z option (global).
+
+2014-12-01  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/17578
+       * layout.cc (Layout::layout_gnu_stack): Don't warn when -z execstack
+       is given.
+       (Layout::create_executable_stack_info): Warn when -z noexecstack is
+       given but some inputs require executable stack.
+
+2014-11-26  Cary Coutant  <ccoutant@google.com>
+
+       * layout.cc (gdb_sections): Keep .debug_gdb_scripts and
+       .debug_str_offsets; strip .debug_gnu_pubnames and
+       .debug_gnu_pubtypes.
+       (lines_only_debug_sections): Strip all four new sections.
+
+2014-11-26  Jing Yu  <jingyu@google.com>
+
+       * aarch64.cc (Relocate::tls_desc_gd_to_ie): Set ldr target
+       register to be x0 when to relax TLSDESC_LD64_LO12.
+
+2014-11-26  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (struct Stub_table_owner): New.
+       (Powerpc_relobj): Rename stub_table_ to stub_table_index_, an
+       unsigned int vector.  Update all references.
+       (powerpc_relobj::set_stub_table): Take an unsigned int param
+       rather than a Stub_table.  Update callers.
+       (Powerpc_relobj::clear_stub_table): New function.
+       (Target_powerpc): Add relax_failed_, relax_fail_count_ and
+       stub_group_size_ vars.
+       (Target_powerpc::new_stub_table): Delete.
+       (max_branch_delta): New function, extracted from..
+       (Target_powerpc::Relocate::relocate): ..here..
+       (Target_powerpc::Branch_info::make_stub): ..and here.  Return
+       status on whether stub created successfully.
+       (Stub_control::Stub_control): Add "no_size_errors" param.  Move
+       default sizing to..
+       (Target_powerpc::do_relax): ..here.  Init stub_group_size_ and
+       reduce on relax failure.
+       (Target_powerpc::group_sections): Add "no_size_errors" param.
+       Use stub_group_size_.  Set up group info in a temp vector,
+       before building Stub_table vector.  Account for input sections
+       possibly already converted to relaxed sections.
+       (Stub_table::init): Delete.  Merge into..
+       (Stub_table::Stub_table): ..here.
+       (Stub_table::can_reach_stub): New function.
+       (Stub_table::add_plt_call_entry): Add "from" parameter and
+       return true iff stub could be reached.
+       (Stub_table::add_long_branch_entry): Similarly.  Add "r_type"
+       param too.
+       (Stub_table::clear_stubs): Add "all" param.
+
+2014-11-26  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Stub_control::set_output_and_owner): New function.
+       (Target_powerpc::group_sections): Use it.
+
+2014-11-25  Cary Coutant  <ccoutant@google.com>
+
+       * binary.cc (Binary_to_elf::sized_convert): Add size to _start symbol.
+       (Binary_to_elf::write_symbol): Add st_size parameter.
+       * binary.h (Binary_to_elf::write_symbol): Add st_size parameter.
+
+2014-11-25  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/17639
+       * object.cc (Sized_relobj_file): Initialize is_deferred_layout_.
+       (Sized_relobj_file::do_layout): Handle deferred sections properly
+       during GC pass 1. Don't add reloc sections to deferred list twice.
+       * object.h (Sized_relobj_file::is_deferred_layout): New function.
+       (Sized_relobj_file::is_deferred_layout_): New data member.
+
+2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gold/17619
+       * x86_64.cc (Output_data_plt_x86_64_standard<size>::do_fill_plt_entry):
+       Check PC-relative offset overflow in PLT entry.
+
+2014-11-21  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::Relocate::relocate): Correct test
+       for undefined weaks.
+
+2014-11-20  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Stub_control::Stub_control): Init stub14_group_size_
+       from --stub-group-size parameter divided by 1024.
+       (Powerpc_relocate_functions::rela, rela_ua): Add fieldsize
+       template parameter.  Update all uses.
+       (Target_powerpc::Relocate::relocate): Rename has_plt_value to
+       has_stub_value.  Set for long branches.  Don't report overflow for
+       branch to undefined weak symbols.  Print info message on
+       overflowing branch to stub.
+
+2014-11-20  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (Target_powerpc::do_relax): Add __go_go to thread_starters.
+
+2014-11-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * x86_64.cc (Target_x86_64<size>::Scan::global): Don't make PLT
+       entry for R_X86_64_GOTPLT64.
+       (Target_x86_64<size>::Relocate::relocate): Update comments for
+       R_X86_64_GOTPLT64.
+
+2014-11-06  Evgeniy Dushistov  <dushistov@mail.ru>
+
+       * plugin.cc: use lock to searialize calls of Plugin_manager::claim_file
+       * plugin.h: add lock definition
+
+2014-10-29  Han Shen  <shenhan@google.com>
+           Jing Yu   <jingyu@google.com>
+
+       * aarch64-reloc.def: Add LD_PREL_LO12, ADR_PREL_LO21,
+       TLSLD_ADR_PAGE21, TLSLD_ADD_LO12_NC, TLSLD_MOVW_DTPREL_G1,
+       TLSLD_MOVW_DTPREL_G0_NC. Change property of TLS relocations to
+       Symbol::TLS_REF.
+       * aarch64.cc (Target_aarch64::do_can_check_for_function_pointers): New
+       method.
+       (Target_aarch64::reloc_needs_plt_for_ifunc): New method.
+       (Target_aarch64::tls_ld_to_le): New method.
+       (Target_aarch64::aarch64_info): Enable can_icf_inline_merge_sections
+       for 64bit targets.
+       (Output_data_plt_aarch64::irelative_rel_): New data member.
+       (Output_data_plt_aarch64::add_entry): Add irelative entries to plt.
+       (Output_data_plt_aarch64::add_local_ifunc_entry): New method.
+       (Output_data_plt_aarch64::add_relocation): New method.
+       (Output_data_plt_aarch64::do_write): Add gold_assert on got_irelative
+       offset. Add got_irelative size to got size.
+       (AArch64_relocate_functions): Typedef AArch64_valtype. Replace long
+       type string with the new typename.
+       (AArch64_relocate_functions::update_adr): Replace parameter x with
+       immed.
+       (AArch64_relocate_functions::update_movnz): Correct wrong val mask.
+       (AArch64_relocate_functions::reloc_common): New method.
+       (AArch64_relocate_funcsions::rela_general): Extract common part out
+       into reloc_common method.
+       (AArch64_relocate_functions::rela_general): Likewise.
+       (AArch64_relocate_functions::pcrela_general): Likewise.
+       (AArch64_relocate_functions::adr): New method.
+       (AArch64_relocate_functions::adrp): Calculate immed before calling
+       update_adr.
+       (AArch64_relocate_functions::adrp): Likewise.
+       (AArch64_relocate_functions::movnz): Cast x to SignedW type when
+       comparing x to 0. Calculate immed from ~x when x < 0.
+       (Target_aarch64::optimize_tls_reloc): Add new cases for
+       TLSLD_ADR_PAGE21, TLSLD_ADD_LO12_NC, TLSLD_MOVW_DTPREL_G1,
+       TLSLD_MOVW_DTPREL_G0_NC.
+       (Target_aarch64::possible_function_pointer_reloc): Implement this
+       method.
+       (Target_aarch64::Scan::local_reloc_may_be_function_pointer): Update
+       comment.
+       (Target_aarch64::Scan::local): Add codes to handle STT_GNU_IFUNC
+       symbol. Add cases for TLSLD_ADR_PAGE21, TLSLD_ADD_LO12_NC,
+       TLSLD_MOVW_DTPREL_G1, TLSLD_MOVW_DTPREL_G0_NC.
+       (Target_aarch64::Scan::global): Add codes to handle STT_GNU_IFUNC
+       symbol. Add cases for TLSLD_ADR_PAGE21, TLSLD_ADD_LO12_NC,
+       TLSLD_MOVW_DTPREL_G1, TLSLD_MOVW_DTPREL_G0_NC.
+       (Target_aarch64::make_plt_entry): Call add_entry with two more
+       parameters.
+       (Target_aarch64::make_local_ifunc_plt_entry): New method.
+       (Target_aarch64::Relocate::relocate): Add cases for LD_PREL_LO19,
+       ADR_PREL_LO21, TLSLD_ADR_PAGE21, TLSLD_ADD_LO12_NC,
+       TLSLD_MOVW_DTPREL_G1, TLSLD_MOVW_DTPREL_G0_NC.
+       (Target_aarch64::Relocate::relocate_tls): Add cases for
+       TLSLD_ADR_PAGE21, TLSLD_ADD_LO12_NC, TLSLD_MOVW_DTPREL_G1,
+       TLSLD_MOVW_DTPREL_G0_NC.
+       * testsuite/icf_safe_so_test.cc: Correct test comment.
+       * testsuite/icf_safe_test.sh: Add AArch64 arch.
+
+2014-10-22  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (do_relax): Add gcc-4.9 libgomp functions to
+       thread_starter.
+
+2014-10-18  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * configure.tgt (targ_extra_obj) [aarch64*-*]: Define.
+
+2014-10-17  Cary Coutant  <ccoutant@google.com>
+
+       * aarch64.cc (AArch64_relocate_functions::maybe_apply_stub):
+       Add "typename" keyword.
+
+2014-10-15  Han Shen  <shenhan@google.com>
+            Jing Yu   <jingyu@google.com>
+
+       Patch for gold aarch64 backend to support relaxation.
+       * aarch64-reloc.def: Change format.
+       * aarch64.cc (class Reloc_stub): New class.
+       (class Stub_table): New class.
+       (class AArch64_relobj): New class.
+       (class AArch64_input_section): New class.
+       (class AArch64_output_section): New class.
+       (Target_aarch64::new_stub_table): New method.
+       (Target_aarch64::new_aarch64_input_section): New method.
+       (Target_aarch64::find_aarch64_input_section): New method.
+       (Target_aarch64::scan_section_for_stubs): New method.
+       (Target_aarch64::scan_reloc_section_for_stubs): New method.
+       (Target_aarch64::relocate_stub): New method.
+       (Target_aarch64::current_target): New method.
+       (Target_aarch64::do_make_elf_object): New method.
+       (Target_aarch64::do_may_relax): New method.
+       (Target_aarch64::do_relax): New method.
+       (Target_aarch64::group_sections): New method.
+       (Target_aarch64::scan_reloc_for_stub): New method.
+       (Target_aarch64::do_make_output_section): New method.
+       (Target_aarch64::stub_tables_): New data member.
+       (Target_aarch64::aarch64_input_section_map_): New data member.
+       (AArch64_relocate_functions::maybe_apply_stub): New method.
+
+2014-09-30  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/17432
+       * resolve.cc (Symbol_table::resolve): Fix local shadowing error.
+
+2014-09-30  Kito Cheng  <kito@0xlab.org>
+
+       PR gold/13597
+       * layout.cc (Layout::create_dynamic_symtab): Build gnu-style
+       hash table before sysv-style hash table.
+
+2014-09-29  Sriraman Tallam  <tmsriram@google.com>
+
+       * options.h (--pic-executable): Add negative to alias to -no-pie.
+
+2014-09-26  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/16773
+       * object.cc (Sized_relobj_file): Compute value of section symbols
+       for TLS sections the same as TLS symbols.
+
+2014-09-25  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/17432
+       * resolve.cc (Symbol_table::resolve): Override common placeholder
+       symbols, but adjust sizes.
+       * symtab.cc (Symbol_table::add_from_object): Don't add placeholder
+       symbols to common lists.
+
+2014-09-24  Alan Modra  <amodra@gmail.com>
+
+       * po/POTFILES.in: Regenerate.
+
+2014-09-23  Taiju Tsuiki  <tzik@google.com>
+            Cary Coutant  <ccoutant@google.com>
+
+       PR gold/14860
+       * gold.cc (queue_final_tasks): Add Write_sections_task as a blocker
+       on input_sections_blocker.
+       * layout.cc (Write_sections_task::locks): Unblock
+       input_sections_blocker_.
+       * layout.h (Write_sections_task::Write_sections_task): Add
+       input_sections_blocker.
+       * testsuite/Makefile.am (exception_x86_64_bnd_test): Add gcctestdir/ld
+       to DEPENDENCIES.
+       * testsuite/Makefile.in: Regenerate.
+
+2014-09-18  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * testsuite/Makefile.am (plugin_test_10): New test.
+       * testsuite/Makefile.in: Regenerate
+       * testsuite/plugin_common_test_2.c (c1): Align to 8.
+       * testsuite/plugin_test_10.sh: New file.
+
+2014-09-17  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+
+       * plugin.cc (Sized_pluginobj::do_add_symbols): Ignore isym->size.
+       * resolve.cc (Symbol_table::resolve): Don't override common symbols
+       during the replacement phase.
+
+2014-09-17  Han Shen  <shenhan@google.com>
+           Jing Yu  <jingyu@google.com>
+
+       * aarch64-reloc.def: Add TLSGD_ADR_PAGE21, TLSGD_ADD_LO12_NC,
+       TLSDESC_ADR_PAGE21, TLSDESC_LD64_LO12, TLSDESC_ADD_LO12, TLSDESC_CALL.
+       * aarch64.cc (Target_aarch64): Add data members
+       got_irelative_, got_tlsdesc_, rela_irelative_, got_mod_index_offset_,
+       tlsdesc_reloc_info_, tls_base_symbol_defined_. Initialize them in
+       constructor.
+       (Target_aarch64::do_reloc_symbol_index): New method.
+       (Target_aarch64::do_reloc_addend): New method.
+       (Target_aarch64::add_tlsdesc_info): New method.
+       (Target_aarch64::do_dynsym_value): New method.
+       (Target_aarch64::do_make_data_plt): Add new parameters: got,
+       got_irelative. Pass them to Output_data_plt_aarch64_standard.
+       (Target_aarch64::make_data_plt): Add new parameters: got,
+       got_irelative. Pass them to do_make_data_plt.
+       (Target_aarch64::Relocate): Add skip_call_tls_get_addr_ variable.
+       (Target_aarch64::Relocate:tls_gd_to_le): New method.
+       (Target_aarch64::Relocate:tls_ie_to_le): New method.
+       (Target_aarch64::Relocate:tls_desc_gd_to_le): New method.
+       (Target_aarch64::Relocate:tls_desc_gd_to_ie): New method.
+       (Target_aarch64::got_tlsdesc_section): New method.
+       (Target_aarch64::make_local_ifunc_plt_entry): New method.
+       (Target_aarch64::define_tls_base_symbol): New method.
+       (Target_aarch64::reserve_tlsdesc_entries): New method.
+       (Target_aarch64::got_mod_index_entry): New method.
+       (Target_aarch64::rela_tlsdesc_section): New method.
+       (Target_aarch64::rela_irelative_section): New method.
+       (Target_aarch64::Tlsdesc_info): New struct.
+       (Target_aarch64::got_section): Create .got.plt space for IRELATIVE
+       relocations and tlsdesc relocations.
+       (Target_aarch64::optimize_tls_reloc): Implement method.
+       (Output_data_plt_aarch64): Add member variables: tlsdesc_rel_, got_,
+       got_irelative_, irelative_count_, tlsdesc_got_offset_. Initialize them
+       in constructor.
+       (Output_data_plt_aarch64::reserve_tlsdesc_entry): New method.
+       (Output_data_plt_aarch64::has_tlsdesc_entry): New method.
+       (Output_data_plt_aarch64::get_tlsdesc_got_offset): New method.
+       (Output_data_plt_aarch64::get_tlsdesc_plt_offset): New method.
+       (Output_data_plt_aarch64::rela_tlsdesc): New method.
+       (Output_data_plt_aarch64::rela_irelative): New method.
+       (Output_data_plt_aarch64::entry_count): Count IRELATIVE relocations.
+       (Output_data_plt_aarch64::first_plt_entry_offset): Add const attribute.
+       (Output_data_plt_aarch64::get_plt_tlsdesc_entry_size): New method.
+       (Output_data_plt_aarch64::fill_tlsdesc_entry): New method.
+       (Output_data_plt_aarch64::do_get_plt_tlsdesc_entry_size): New method.
+       (Output_data_plt_aarch64::do_fill_tlsdesc_entry): New method.
+       (Output_data_plt_aarch64_standard): New member variables:
+       plt_tlsdesc_entry_size, tlsdesc_plt_entry.
+       (Output_data_plt_aarch64_standard::Output_data_plt_aarch64_standard):
+       New parameter: got, got_irelative.
+       (Output_data_plt_aarch64_standard::do_get_plt_entry_size): New method.
+       (Output_data_plt_aarch64_standard::do_fill_tlsdesc_entry): New method.
+       (Output_data_plt_aarch64::do_write): Replace got_address with
+       gotplt_address. Add irelative_count_ to count. Write tlsdesc entry.
+       (AArch64_relocate_functions::update_movnz): New method.
+       (AArch64_relocate_functions): Correct format.
+       (AArch64_relocate_functions::movnz): New method.
+       (Target_aarch64::Scan::local): Correct format. Move r_sym, got to
+       before the switch. Add new cases to switch.
+       Check ie_to_le relaxation on tlsie relocations. Add code handling
+       tlsgd tlsdesc cases.
+       (Target_aarch64::Scan::global): Move arp to front. Do copy_reloc when
+       needed. Add new cases to switch. Insert dynamic RELATIVE relocation
+       when needed. Add code handling tlsgd, tlsie, tlsdesc cases.
+       Call reloc_name_in_error_message to print unsupported reloc.
+       (Target_aarch64::make_plt_section): Pass got_ and got_irelative_ to
+       make_data_plt.
+       (Target_aarch64::do_finalize_sections): Emit relocs to save COPY
+       relocs. Fill in some more dynamic tags.
+       (Target_aarch64::Relocate::relocate): Handle tlsgd, tlsdesc relocs.
+       Skip call tls_get_addr when tlsgd is relaxed.
+       (Target_aarch64::Relocate::relocate_tls): Correct format. Add code
+       handling tlsgd, tlsdesc relocs, and tls gd->le, ie->le, tlsdesc->le,
+       tlsdesc->ie relaxation.
+
+2014-09-03  Sasa Stankovic  <Sasa.Stankovic@imgtec.com>
+
+       * mips.cc (Target_mips_nacl): New class.
+       (Target_selector_mips_nacl): New class.
+       (target_selector_mips32): Rename from target_selector_mips32be and use
+       Target_selector_mips_nacl instead of Target_selector_mips.
+       (target_selector_mips32el): Rename from target_selector_mips32 and use
+       Target_selector_mips_nacl instead of Target_selector_mips.
+       (target_selector_mips64): Rename from target_selector_mips64be and use
+       Target_selector_mips_nacl instead of Target_selector_mips.
+       (target_selector_mips64el): Rename from target_selector_mips64 and use
+       Target_selector_mips_nacl instead of Target_selector_mips.
+       (Target_mips::mips_info): Add const attribute.
+
+2014-09-02  Cary Coutant  <ccoutant@google.com>
+
+       * dwp.cc (Sized_relobj_dwo::do_section_name): Add const attribute.
+       * dynobj.h (Sized_dynobj::do_section_name): Likewise.
+       * incremental.cc (Sized_relobj_incr::do_section_name): Likewise.
+       (Sized_incr_dynobj::do_section_name): Likewise.
+       * incremental.h (Sized_relobj_incr::do_section_name): Likewise.
+       (Sized_incr_dynobj::do_section_name): Likewise.
+       * object.h (Object::section_name): Likewise.
+       (Object::do_section_name): Likewise.
+       (Sized_relobj_file::do_section_name): Likewise.
+       * plugin.cc (Sized_pluginobj::do_section_name): Likewise.
+       * plugin.h (Sized_pluginobj::do_section_name): Likewise.
+
+2014-09-02  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/17005
+       * ehframe.cc (Fde::write): Add output_offset parameter.
+       (Cie::write): Likewise.
+       (Eh_frame::set_final_data_size): Account for offset within output
+       section.
+       (Eh_frame::do_sized_write): Likewise.
+       * ehframe.h (Fde::write): Add output_offset parameter.
+       (Cie::write): Likewise.
+       * output.cc (Output_section::Input_section_sort_entry): Remove
+       section_has_name_; add output_section_name parameter. Use
+       output section name for non-input sections.
+       (Output_section::Input_section_sort_entry::section_has_name): Remove.
+       (Output_section::Input_section_sort_entry::section_has_name_): Remove.
+       (Output_section::Input_section_sort_compare): Remove logic for
+       sections without names.
+       (Output_section::Input_section_sort_init_fini_compare): Likewise.
+       (Output_section::Input_section_sort_section_prefix_special_ordering_compare):
+       Likewise.
+       (Output_section::Input_section_sort_section_name_compare): Likewise.
+
+2014-08-29 Han Shen <shenhan@google.com>
+          Jing Yu <jingyu@google.com>
+
+       * aarch64-reloc-property.cc
+       (AArch64_reloc_property_table::reloc_name_in_error_message): Fix bug in
+       reference reloc property in the table.
+       * aarch64-reloc.def: Add TLSLE reloc types and fix some errors in
+       3 other entries.
+       * aarch64.cc: (Output_data_got_aarch64::add_static_reloc):
+       2 new overloaded methods.
+       (Output_data_got_aarch64::do_write): Add code to write out
+       static relocs.
+       (class Output_data_got_aarch64::Static_reloc): New class to wrap
+       static relocs.
+       (Output_data_got_aarch64::static_relocs): New vector to
+       hold static relocs.
+       (Target_aarch64::TCB_SIZE): New const static memeber.
+       (Target_aarch64::tcb_size): New method.
+       (Target_aarch64::Relocate::relocate): Add code handling new reloc types.
+       (Target_aarch64::Relocate::relocate_tls): New method.
+       (Target_aarch64::Scan::local): Add code handling new reloc types.
+       (Target_aarch64::Scan::global): Add code handling new reloc types.
+
+2014-08-13  Sriraman Tallam  <tmsriram@google.com>
+
+       * options.h (-no-pie): Add option.
+
+2014-08-08  Jing Yu  <jingyu@google.com>
+           Han Shen  <shenhan@google.com>
+
+       * Makefile.am (HFILES): Add aarch64-reloc-property.h.
+       (DEFFILES): add aarch64-reloc.def.
+       (TARGETSOURCES): Add aarch64-reloc-property.cc.
+       (ALL_TARGETOBJS): Add aarch64-reloc-property.$(OBJEXT).
+       * Makefile.in: Regenerate.
+       * aarch64-reloc-property.cc: New file.
+       * aarch64-reloc-property.h: New file.
+       * aarch64-reloc.def: New file.
+       * aarch64.cc: Include aarch64-reloc-property.h. Replace spaces
+       with tab to make the format consistent.
+       (Output_data_got_aarch64::symbol_table_): New method.
+       (Target_aarch64::do_plt_address_for_global): New method.
+       (Target_aarch64::do_plt_address_for_local): New method.
+       (Target_aarch64::do_select_as_default_target): New method.
+       (Target_aarch64::do_make_data_plt): New method.
+       (Target_aarch64::make_data_plt): New method.
+       (Output_data_plt_aarch64::has_irelative_section): New method.
+       (Output_data_plt_aarch64::address_for_global): New method.
+       (Output_data_plt_aarch64::address_for_local): New method.
+       (Output_data_plt_aarch64::irelative_rel_): New parameter.
+       (Output_data_plt_aarch64::add_entry): Implement contents.
+       (Output_data_plt_aarch64::set_final_data_size): Fix typo.
+       (Output_data_plt_aarch64::do_write): Remove useless got_base. Set
+       the got_pov entry to plt0.
+       (Output_data_plt_aarch64_standard::do_fill_first_plt_entry):
+       Implement contents.
+       (Output_data_plt_aarch64_standard::do_fill_plt_entry): Implement.
+       (AArch64_howto): New struct.
+       (aarch64_howto[]): New static const array.
+       (AArch64_relocate_functions): New class.
+       (Target_aarch64::Scan::get_reference_flags): Remove method.
+       (Target_aarch64::Scan::local): Implement to support a few relocations.
+       (Target_aarch64::Scan::global): Implement to support a few relocations.
+       (Target_aarch64::make_plt_section): Implement contents.
+       (Target_aarch64::make_plt_entry): Implement contents.
+       (Target_aarch64::do_finalize_sections): Implement contents.
+       (Target_aarch64::Relocate::relocate): Implement a few relocations.
+       (Target_aarch64::relocate_section): Implement contents.
+
+2014-08-06  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/defsym_test.sh: Allow ppc64le localentry annotation.
+
+2014-08-06  Alan Modra  <amodra@gmail.com>
+
+       PR 13227
+       * symtab.cc (Symbol_table::add_from_relobj): Warn on __gnu_lto_slim.
+
+2014-07-21  Sriraman Tallam  <tmsriram@google.com>
+
+       * object.cc (Relobj::is_section_name_included): Add
+       ".rodata.nptl_version" to not garbage collect this section.
+
+2014-07-08  Cary Coutant  <ccoutant@google.com>
+
+       * expression.cc (struct Expression::Expression_eval_info): Add
+       new fields type_pointer, vis_pointer, and nonvis_pointer.
+       (Expression::eval_maybe_dot): Add type_pointer, vis_pointer, and
+       nonvis_pointer parameters. Adjust all calls.
+       (Symbol_expression::value): Update type, visibility, and nonvis bits
+       in caller.
+       * script.cc (Symbol_assignment::sized_finalize): Update type,
+       visibility, and remaining st_other bits for new symbol.
+       * script.h: (Expression::eval_maybe_dot): Add type_pointer,
+       vis_pointer, and nonvis_pointer parameters.
+       * symtab.h (Symbol::set_type): New method.
+
+       * testsuite/Makefile.am (defsym_test): New test.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/defsym_test.c: New file.
+       * testsuite/defsym_test.sh: New file.
+
+2014-07-08  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/15639
+       * dynobj.h (Sized_dynobj::base_read_symbols): New method.
+       * dynobj.cc (Sized_dynobj::do_read_symbols): Move body to...
+       (Sized_dynobj::base_read_symbols): ...new method.
+       * object.h (Sized_relobj_file::base_read_symbols): New method.
+       * object.cc (Sized_relobj_file::do_read_symbols): Move body to...
+       (Sized_relobj_file::base_read_symbols): ...new method.
+       * arm.cc (Arm_relobj::do_read_symbols): Call base_read_symbols.
+       * mips.cc: (Mips_relobj::do_read_symbols): Likewise.
+       * powerpc.cc (Powerpc_dynobj::do_read_symbols): Likewise.
+
+2014-07-04  Alan Modra  <amodra@gmail.com>
+
+       * po/POTFILES.in: Regenerate.
+
+2014-07-02  Jing Yu  <jingyu@google.com>
+
+       * aarch64.cc: New file
+       * Makefile.am (TARGETSOURCES): Add aarch64.cc
+       (ALL_TARGETOBJS): Add aarch64.$(OBJEXT)
+       * Makefile.in: Regenerate.
+       * configure.tgt: Add entries for aarch64*.
+       * configure.ac:  Likewise.
+       * configure: Likewise.
+
+2014-06-27  Alan Modra  <amodra@gmail.com>
+
+       * symtab.cc (Symbol::should_add_dynsym_entry): Don't make inline.
+
+2014-06-24  Cary Coutant  <ccoutant@google.com>
+
+       * dwp.cc (Dwo_file::read): Allow files with no .debug_types
+       sections.
+       (Dwo_file::sized_read_unit_index): Likewise.
+
+2014-06-23  Sasa Stankovic  <Sasa.Stankovic@imgtec.com>
+
+       * mips.cc: New file.
+       * Makefile.am (TARGETSOURCES): Add mips.cc
+       (ALL_TARGETOBJS): Add mips.$(OBJEXT)
+       * configure.tgt: Add entries for mips*.
+       * configure.ac: Likewise.
+       * Makefile.in: Regenerate.
+       * configure: Likewise.
+
+2014-06-09  Cary Coutant  <ccoutant@google.com>
+
+       * dwarf_reader.cc (Dwarf_pubnames_table::read_header): Check that
+       unit_length is within section bounds.
+
+2014-06-09  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/16980
+       * layout.cc (Layout::print_to_mapfile): Print unattached sections in
+       map.
+
+2014-06-07  Alan Modra  <amodra@gmail.com>
+
+       * powerpc.cc (relocate): Treat field of cmpli insn as a bitfield.
+
+2014-06-06  Cary Coutant  <ccoutant@google.com>
+
+       * dwarf_reader.h (Dwarf_pubnames_table): Remove output_section_offset_.
+       * dwarf_reader.cc (Dwarf_pubnames_table::read_section): Likewise.
+       (Dwarf_pubnames_table::read_header): Likewise.
+       * layout.cc (gdb_fast_lookup_sections): Add .debug_gnu_pubnames and
+       .debug_gnu_pubtypes.
+
+2014-06-05  Joel Brobecker  <brobecker@adacore.com>
+
+       * Makefile.am (CONFIG_STATUS_DEPENDENCIES): New.
+       * Makefile.in, configure: Regenerate.
+
 2014-06-03  Alan Modra  <amodra@gmail.com>
 
        * powerpc.cc (addis_12_2): Define.
 
        * Added source code to GNU binutils.
 \f
-Copyright (C) 2008-2014 Free Software Foundation, Inc.
+Copyright (C) 2008-2015 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.038342 seconds and 4 git commands to generate.