X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gold%2FChangeLog;h=d5413f63077de8315dacbadaa5f9bab9b7c08353;hb=feba93770920f91760d6390541221b75ba5c95f3;hp=6acb64e94b56119fe919da1652e16838922b1674;hpb=b4f7960d5307fe4aad2126382df78f63696e96b3;p=platform%2Fupstream%2Fbinutils.git diff --git a/gold/ChangeLog b/gold/ChangeLog index 6acb64e..d5413f6 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,963 @@ +2014-12-04 Alan Modra + + 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 Alan Modra + + PR 17566 + * powerpc.cc (Target_powerpc::Scan::local): Use add_local_section + when adding dynamic relocations against section symbols. + +2014-11-26 Alan Modra + + * powerpc.cc (Stub_control::set_output_and_owner): New function. + (Target_powerpc::group_sections): Use it. + +2014-11-25 Cary Coutant + + 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 Alan Modra + + * powerpc.cc (Target_powerpc::Relocate::relocate): Correct test + for undefined weaks. + +2014-11-20 Alan Modra + + * 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 + + * powerpc.cc (Target_powerpc::do_relax): Add __go_go to thread_starters. + +2014-10-28 Alan Modra + + Apply trunk patches + 2014-10-22 Alan Modra + * powerpc.cc (do_relax): Add gcc-4.9 libgomp functions to + thread_starter. + +2014-09-30 Cary Coutant + + PR gold/17432 + * resolve.cc (Symbol_table::resolve): Fix local shadowing error. + +2014-09-30 Kito Cheng + + PR gold/13597 + * layout.cc (Layout::create_dynamic_symtab): Build gnu-style + hash table before sysv-style hash table. + +2014-09-29 Sriraman Tallam + + * options.h (--pic-executable): Add negative to alias to -no-pie. + +2014-09-26 Cary Coutant + + 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 + + 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 + + * po/POTFILES.in: Regenerate. + +2014-09-23 Taiju Tsuiki + Cary Coutant + + 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 + + * 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 + + * 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 + Jing Yu + + * 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 + + * 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 + + * 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 + + 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 + Jing Yu + + * 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 + + * options.h (-no-pie): Add option. + +2014-08-08 Jing Yu + Han Shen + + * 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 + + * testsuite/defsym_test.sh: Allow ppc64le localentry annotation. + +2014-08-06 Alan Modra + + PR 13227 + * symtab.cc (Symbol_table::add_from_relobj): Warn on __gnu_lto_slim. + +2014-07-21 Sriraman Tallam + + * object.cc (Relobj::is_section_name_included): Add + ".rodata.nptl_version" to not garbage collect this section. + +2014-07-08 Cary Coutant + + * 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 + + 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 + + * po/POTFILES.in: Regenerate. + +2014-07-02 Jing Yu + + * 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 + + * symtab.cc (Symbol::should_add_dynsym_entry): Don't make inline. + +2014-06-24 Cary Coutant + + * dwp.cc (Dwo_file::read): Allow files with no .debug_types + sections. + (Dwo_file::sized_read_unit_index): Likewise. + +2014-06-23 Sasa Stankovic + + * 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 + + * dwarf_reader.cc (Dwarf_pubnames_table::read_header): Check that + unit_length is within section bounds. + +2014-06-09 Cary Coutant + + PR gold/16980 + * layout.cc (Layout::print_to_mapfile): Print unattached sections in + map. + +2014-06-07 Alan Modra + + * powerpc.cc (relocate): Treat field of cmpli insn as a bitfield. + +2014-06-06 Cary Coutant + + * 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 + + * Makefile.am (CONFIG_STATUS_DEPENDENCIES): New. + * Makefile.in, configure: Regenerate. + +2014-06-03 Alan Modra + + * powerpc.cc (addis_12_2): Define. + (Stub_table::do_write): Support fusion on ELFv2 stubs. + +2014-06-03 Alan Modra + + * testsuite/plugin_test.c (parse_readelf_line): Skip non-visibility + st_other output. + +2014-06-02 Alan Modra + + * powerpc.cc (Target_powerpc::local_reloc_may_be_function_pointer): + Only ignore relocs on ELFv1. + (Target_powerpc::global_reloc_may_be_function_pointer): Likewise. + +2014-05-30 Cary Coutant + + * testsuite/Makefile.am (ehdr_start_test_4): Fix typo in -B option. + * testsuite/Makefile.in: Regenerate. + * testsuite/ehdr_start_test_4.sh: Look for "U" instead of "w". + +2014-05-27 H.J. Lu + + PR gold/16945 + * x86_64.cc (Target_x86_64::Relocate::relocate): Use signed int + for got_offset. Properly get GOT address for R_X86_64_PLTOFF64. + +2014-05-15 Alan Modra + + * powerpc.cc (do_plt_fde_location): Handle zero length .glink. + Compare FDE contents with DW_CFA_nop rather than 0. + +2014-05-13 Sriraman Tallam + + * symtab.h (may_need_copy_reloc): Remove check for position independent + code. + * x86_64.cc (Target_x86_64::Scan::global): Add check for no + position independence before pc absolute may_need_copy_reloc call. + Add check for executable output befor pc relative may_need_copy_reloc + call. + * i386.cc: Ditto. + * arm.cc: Ditto. + * sparc.cc: Ditto. + * tilegx.cc: Ditto. + * powerpc.cc: Add check for no position independence before + may_need_copy_reloc calls. + * testsuite/pie_copyrelocs_test.cc: New file. + * testsuite/pie_copyrelocs_shared_test.cc: New file. + * Makefile.am (pie_copyrelocs_test): New test. + * Makefile.in: Regenerate. + +2014-05-08 Martin Liška + + * output.cc (Sized_relobj_file::do_layout): Fix typo in info message. + +2014-05-06 Cary Coutant + + PR gold/16900 + * i386.cc (Output_data_got_plt_i386): New class. + (Output_data_plt_i386::Output_data_plt_i386): Change type of got_plt + parameter. Change all callers. + (Output_data_plt_i386::layout_): Remove. + (Output_data_plt_i386::got_plt_): Change type. + (Target_i386::got_plt_): Change type. Change all references. + (Target_i386::got_section): Create instance of new class. + (Output_data_got_plt_i386::do_write): New function. + * x86_64.cc (Output_data_got_plt_x86_64): New class. + (Output_data_plt_x86_64::Output_data_plt_x86_64): Change type of got_plt + parameter. Change all callers. + (Output_data_plt_x86_64::layout_): Remove. + (Output_data_plt_x86_64::got_plt_): Change type. + (Target_x86_64::got_plt_): Change type. Change all references. + (Target_x86_64::got_section): Create instance of new class. + (Output_data_got_plt_x86_64::do_write): New function. + (Output_data_plt_x86_64::do_write): Don't write reserved words in GOT. + (Target_x86_64::init_got_plt_for_update): Create instance of new + class. + +2014-05-05 Cary Coutant + + * gdb-index.cc (Gdb_index_info_reader): Don't complain about language + if we have pubnames/pubtypes. + +2014-05-02 Cary Coutant + + * defstd.cc (in_segment): Define __ehdr_start here... + * layout.cc (Layout::finalize): ...Instead of here. Set the + output segment when known. + * resolve.cc (Symbol::override_base_with_special): Remember + the original binding. + * symtab.cc (Symbol::set_output_segment): New function. + (Symbol::set_undefined): New function. + * symtab.h (Symbol::is_weak_undefined): Check original undef + binding. + (Symbol::is_strong_undefined): New function. + (Symbol::set_output_segment): New function. + (Symbol::set_undefined): New function. + * target-reloc.h (is_strong_undefined): Remove. + (issue_undefined_symbol_error): Call Symbol::is_weak_undefined. + Check for hidden undefs. + (relocate_section): Call Symbol::is_strong_undefined. + + * testsuite/Makefile.am (ehdr_start_test_1) + (ehdr_start_test_2, ehdr_start_test_3) + (ehdr_start_test_4, ehdr_start_test_5): New test cases. + * testsuite/Makefile.in: Regenerate. + * testsuite/ehdr_start_def.cc: New source file. + * testsuite/ehdr_start_test.cc: New source file. + * testsuite/ehdr_start_test.t: New linker script. + * testsuite/ehdr_start_test_4.sh: New shell script. + +2014-04-23 Cary Coutant + + PR gold/16870 + * x86_64.cc (Target_x86_64::Relocate::relocate): Add missing break. + +2014-04-15 Sasa Stankovic + + * layout.cc (Layout::include_section): Allow a target to decide + whether to include a section. + * target.h (Target::should_include_section): New function. + (Target::do_should_include_section): New function. + +2014-04-15 Sasa Stankovic + + * copy-relocs.cc (Copy_relocs::Copy_reloc_entry::emit): Remove and + inline into ... + (Copy_relocs::emit): ... here. + * copy-relocs.h (Copy_reloc_entry): Change from class to struct. + (Copy_reloc_entry::make_copy_reloc): Change from private to protected. + (Copy_reloc_entry::entries_): Change from private to protected. + +2014-04-02 Sriraman Tallam + + * icf.cc (get_section_contents): Replace copies of reloc + vectors with const references. + +2014-04-02 Cary Coutant + + * configure.ac (HAVE_PUBNAMES): Use C instead of C++. + (HAVE_NO_USE_LINKER_PLUGIN): Check for -fno-use-linker-plugin. + * configure: Regenerate. + * testsuite/Makefile.am (OPT_NO_PLUGINS): New macro for + -fno-use-linker-plugin. + (LINK1, CXXLINK1): Add it to the link command. + * testsuite/Makefile.in: Regenerate. + +2014-03-12 Alan Modra + + * Makefile.in: Regenerate. + +2014-03-10 Sasa Stankovic + + * symtab.h (Symbol::set_nonvis): New function. + +2014-03-10 Sasa Stankovic + + * symtab.cc (Sized_symbol<32>::init_output_data): + Instantiate the template. + (Sized_symbol<64>::init_output_data): Likewise. + +2014-03-10 Sasa Stankovic + + * symtab.cc (Symbol_table::sized_write_globals): Allow a target to + adjust dynamic symbol value. + * target.h (Target::adjust_dyn_symbol): New function. + (Target::do_adjust_dyn_symbol): New function. + +2014-03-10 Sasa Stankovic + + * output.cc (Output_data_dynamic::Dynamic_entry::write): + Get the value of DYNAMIC_CUSTOM dynamic entry. + * output.h (Output_data_dynamic::add_custom): New function. + (Dynamic_entry::Dynamic_entry): New constructor for DYNAMIC_CUSTOM + dynamic entry. + (enum Dynamic_entry::Classification): Add DYNAMIC_CUSTOM. + * target.h (Target::dynamic_tag_custom_value): New function. + (Target::do_dynamic_tag_custom_value): New function. + +2014-03-10 Sasa Stankovic + + * symtab.cc (Symbol_table::set_dynsym_indexes): Allow a target to set + dynsym indexes. + * target.h (Target::has_custom_set_dynsym_indexes): New function. + (Target::do_has_custom_set_dynsym_indexes): New function. + (Target::set_dynsym_indexes): New function. + (Target::do_set_dynsym_indexes): New function. + +2014-03-07 Alan Modra + + * powerpc.cc (Powerpc_relocate_functions::Overflow_check): Add + CHECK_UNSIGNED, CHECK_LOW_INSN, CHECK_HIGH_INSN. + (Powerpc_relocate_functions::has_overflow_unsigned): New function. + (Powerpc_relocate_functions::has_overflow_bitfield, + overflowed): Use the above. + (Target_powerpc::Relocate::relocate): Correct overflow checking + for a number of relocations. Modify overflow test for 16-bit + fields in instructions to signed/unsigned according to whether + the field takes a signed or unsigned value. + +2014-03-05 Alan Modra + + Update copyright years. + +2014-03-05 Alan Modra + + * powerpc.cc (Target_powerpc::Scan::local, global): Support + R_PPC64_ADDR64_LOCAL. + (Target_powerpc::Relocate::relocate): Likewise. + +2014-03-03 Alan Modra + + * dwp.cc (print_version): Update copyright year to current. + +2014-02-10 Alan Modra + + * po/gold.pot: Regenerate. + +2014-02-06 Cary Coutant + + Fix problem where -u is ignored when a weak undef is seen. + + * archive.cc (Library_base::should_include_member): Reorder + code to check for -u option if a weak undef has already been seen. + * testsuite/Makefile.am (weak_undef_test_2): New test case. + * testsuite/Makefile.in: Regenerate. + * testsuite/weak_undef_file3.cc: New file. + * testsuite/weak_undef_file4.cc: New file. + * testsuite/weak_undef_test_2.cc: New file. + +2014-02-05 Cary Coutant + + Fix issues with gold undefined symbol diagnostics. + + PR binutils/15435 + * errors.cc (Errors::undefined_symbol): Move undef vtable symbol + check to here. + * target-reloc.h (is_strong_undefined): New function. + (relocate_section): Move undef vtable symbol check from here. + Check for is_strong_undefined. + +2014-02-05 Cary Coutant + + Fix problems with the --dynamic-list option. + + PR gold/13577 + * options.cc (General_options::parse_dynamic_list): + Set have_dynamic_list_. + (General_options::General_options): Initialize have_dynamic_list_. + (General_options::finalize): Turn off -Bsymbolic and + -Bsymbolic-functions if --dynamic-list provided. + * options.h (General_options::have_dynamic_list): New function. + (General_options::have_dynamic_list_): New data member. + * symtab.h (Symbol::is_preemptible): Handle --dynamic-list + correctly. + + PR gold/16530 + * symtab.cc (Symbol_table::add_from_relobj): If symbol is named + in --dynamic-list, mark it. + + * testsuite/Makefile.am (gc_dynamic_list_test.sh): New test case. + (dynamic_list_2): New test case. + * testsuite/Makefile.in: Regenerate. + * testsuite/dynamic_list_2.cc: New file. + * testsuite/dynamic_list_2.t: New file. + * testsuite/dynamic_list_lib1.cc: New file. + * testsuite/dynamic_list_lib2.cc: New file. + * testsuite/gc_dynamic_list_test.c: New file. + * testsuite/gc_dynamic_list_test.sh: New file. + * testsuite/gc_dynamic_list_test.t: New file. + +2014-01-28 Cary Coutant + + Add .gdb_index version 7 support. + + * gold/dwarf_reader.cc: include (for make_pair). + (Dwarf_abbrev_table::do_read_abbrevs): Check for compressed + debug sections. + (Dwarf_ranges_table::read_ranges_table): Likewise. + (Dwarf_pubnames_table::read_section): Check for GNU-style + sections, and for compressed debug sections. + (Dwarf_pubnames_table::read_header): Compute end address of table. + (Dwarf_pubnames_table::next_name): Return flag_byte. Check + for end of list by offset, not by offset == 0. + (Dwarf_info_reader::do_read_string_table): Check for compressed + debug sections. + * gold/dwarf_reader.h (Dwarf_pubnames_table::Dwarf_pubnames_table): + Initialize new data members. + (Dwarf_pubnames_table::next_name): return flag_byte. + (Dwarf_pubnames_table::end_of_table_): New data member. + (Dwarf_pubnames_table::is_gnu_style_): New data member. + * gold/gdb-index.cc (gdb_index_version): Update to version 7. + (Gdb_index_info_reader::read_pubtable): Read flag_byte. + (Gdb_index_info_reader::read_pubnames_and_pubtypes): Don't + read skeleton type unit DIEs. + (Gdb_index::add_symbol): Add flag_byte; adjust all callers. + (Gdb_index::do_write): Write flag_byte. + * gold/gdb-index.h (Gdb_index::add_symbol): Add flags parameter. + (Gdb_index::Cu_vector): Store flags along with cu indexes. + * gold/testsuite/gdb_index_test_3.sh: Allow versions 4-7. + * gold/testsuite/gdb_index_test_comm.sh: Likewise. + +2014-01-08 H.J. Lu + + * version.cc (print_version): Update copyright year to 2014. + +2013-12-19 Dimitry Andric + + * stringpool.cc (Stringpool_template::reserve): Add + HAVE_UNORDERED_MAP case. + * stringpool.cc (Stringpool_template::print_stats): Likewise. + +2013-12-18 Cary Coutant + + * configure.ac: Check for and . + * config.in: Regenerate. + * configure: Regenerate. + * system.h: Use and if available. + +2013-12-10 Roland McGrath + + * Makefile.am (install-exec-local): Prefix $(INSTALL_PROGRAM) uses + with $(INSTALL_PROGRAM_ENV). + * Makefile.in: Regenerate. + +2013-11-22 Cary Coutant + + * configure.ac: Add check for which library is needed for + dlopen. + * configure: Regenerate. + +2013-11-22 Cary Coutant + + * testsuite/Makefile.am (exception_x86_64_bnd_test): Use in-tree + assembler. + * testsuite/Makefile.in: Regenerate. + +2013-11-17 H.J. Lu + + * x86_64.cc (Target_x86_64::Scan::get_reference_flags): + Handle R_X86_64_PC32_BND and R_X86_64_PLT32_BND just like + R_X86_64_PC32 and R_X86_64_PLT32, respectively. + (Target_x86_64::Scan::local): Likewise. + (Target_x86_64::Scan::global): Likewise. + (Target_x86_64::Relocate::relocate): Likewise. + (Target_x86_64::Relocatable_size_for_reloc::get_size_for_reloc): + Likewise. + (Target_x86_64::Scan::check_non_pic(): Handle + R_X86_64_PC32_BND. + + * testsuite/Makefile.am (check_PROGRAMS): Add + exception_x86_64_bnd_test. + (exception_x86_64_bnd_test_SOURCES): New macro. + (exception_x86_64_bnd_test_DEPENDENCIES): Likewise. + (exception_x86_64_bnd_test_LDFLAGS): Likewise. + (exception_x86_64_bnd_test_LDADD): Likewise. + (exception_x86_64_bnd_1.o): New rule. + (exception_x86_64_bnd_2.o): Likewise. + * testsuite/Makefile.in: Regenerated. + +2013-11-15 Alan Modra + + * powerpc.cc (Target_powerpc::glink_section): Provide non-const + accessor. + (Target_powerpc::Branch_info::make_stub): Make global entry stubs. + Only call ppc64_local_entry_offset for 64-bit. Restrict + symval_for_branch lookup to ELFv1. + (Stub_table::add_plt_call_entry): Use unsigned int off. + (Output_data_glink::Address, invalid_address): New. + (Output_data_glink::add_eh_frame): Move out of line. Add + support for ELFv2. + (Output_data_glink::add_global_entry, find_global_entry, + global_entry_address): New functions. + (Output_data_glink::global_entry_stubs_, end_branch_table_, + ge_size): New variables. + (Output_data_glink::set_final_data_size): Add global entry + stub sizing. + (Output_data_glink::do_write): Write global entry stubs. + (Target_powerpc::Scan::reloc_needs_plt_for_ifunc): Add target + parameter. Return true for ELFv2. Adjust callers. + (Target_powerpc::Scan::local, global): Restrict opd lookup to + ELFv1. Similarly for ifunc and dynamic relocation processing + specific to ELFv1. Recognize that symbols are defined on + their plt entries for ELFv2. + (Target_powerpc::symval_for_branch): Assert if called for + ELFv2 or ppc32. + (Target_powerpc::Relocate::relocate): Use global entry plt + stub for symbol value if such exists on ELFv2. + (Target_powerpc::Relocate::relocate): Don't call + symval_for_branch when ELFv2. Do adjust for local entry + offset when ELFv2. + (Target_powerpc::do_dynsym_value): Set symbols to global entry + plt stub for ELFv2. + (Target_powerpc::do_plt_address_for_global): Similarly. + +2013-11-14 Cary Coutant + + Revert patch -- this did not fix the problem, and there is + no race there. + + 2013-11-14 Cary Coutant + + PR gold/14860 + * ehframe.cc (Eh_frame_hdr::Eh_frame_hdr): Initialize lock_. + (Ehframe_hdr::set_final_data_size): Allocate a Lock. + * ehframe.h (Eh_frame_hdr::record_fde): Hold the lock while + updating fde_offsets_. + (Eh_frame_hdr::lock_): New data member. + +2013-11-14 Cary Coutant + + * dwp.cc (Dwo_file_entry): New type. + (File_list): Use Dwo_file_entry. + (Dwo_file::verify): New function. + (Dwo_file::verify_dwo_list): New function. + (Dwo_file::sized_verify_dwo_list): New function. + (Dwo_name_info_reader::visit_compilation_unit): Add dwo_id to file + list. + (Dwp_options): New enum type. + (dwp_options): Add --verify-only. + (usage): Likewise. + (main): Likewise. + * dwp.h (gold_info): Add declaration. + +2013-11-14 Cary Coutant + + PR gold/14860 + * ehframe.cc (Eh_frame_hdr::Eh_frame_hdr): Initialize lock_. + (Ehframe_hdr::set_final_data_size): Allocate a Lock. + * ehframe.h (Eh_frame_hdr::record_fde): Hold the lock while + updating fde_offsets_. + (Eh_frame_hdr::lock_): New data member. + +2013-11-06 Cary Coutant + + PR gold/15758 + * object.cc (Sized_relobj_file::do_layout): Handle .eh_frame sections + before reloc sections. + +2013-11-04 Alan Modra + + * symtab.h (Symbol::Reference_flags): Add FUNC_DESC_ABI. + (Symbol::needs_dynamic_reloc): Test new flag. + * powerpc.cc (needs_dynamic_reloc, use_plt_offset): Delete. + (Target_powerpc::Scan::get_reference_flags): Add target param. + Return FUNC_DESC_ABI for 64-bit ELFv1. + (Target_powerpc::Branch_info::make_stub): Adjust get_reference_flags + call. + (Target_powerpc::Scan::global): Use Symbol::needs_dynamic_reloc. + (Target_powerpc::Relocate::relocate): Use Symbol::use_plt_offset. + +2013-10-31 Cary Coutant + + Restore support for dwp v2 DWARF package file format. + + * dwarf_reader.cc (Dwarf_info_reader::visit_type_unit): Add + tu_length parameter. Adjust all callers. + * dwarf_reader.h (Dwarf_info_reader::visit_type_unit): Likewise. + * dwp.cc: Include dwarf.h. + (Section_bounds): New struct type. + (Unit_set): New struct type. + (Dwo_file::Dwo_file): Initialize new data member. + (Dwo_file::read_compunit_index, Dwo_file::read_typeunit_index): + Combine and rename to... + (Dwo_file::read_unit_index): ...this. + (Dwo_file::sized_read_compunit_index) + (Dwo_file::sized_read_typeunit_index): Combine and rename to... + (Dwo_file::sized_read_unit_index): ...this. + (Dwo_file::copy_section): Remove section_name, is_str_offsets + parameters; add section_id parameter. + (Dwo_file::add_cu_set, Dwo_file::add_tu_set): Combine and rename to... + (Dwo_file::add_unit_set): ...this. + (Dwo_file::shndx_map_): Remove. + (Dwo_file::sect_offsets_): New data member. + (Dwp_output_file::Dwp_output_file): Initialize new data members. + (Dwp_output_file::add_section): Rename to... + (Dwp_output_file::add_contribution): ...this. + (Dwp_output_file::add_cu_set): Combine parameters into a struct. + (Dwp_output_file::add_tu_set): Likewise. + (Dwp_output_file::Contribution): New type. + (Dwp_output_file::Section::contributions): New data member. + (Dwp_output_file::Cu_or_tu_set): Remove. + (Dwp_output_file::Section::Section): New ctor. + (Dwp_output_file::Dwp_index::Shndx_pool): Remove. + (Dwp_output_file::Dwp_index::Section_table): New type. + (Dwp_output_file::Dwp_index::Dwp_index): Initialize new data members. + (Dwp_output_file::Dwp_index::enter_set): Change type of "set" + parameter. + (Dwp_output_file::Dwp_index::shndx_pool): Remove. + (Dwp_output_file::Dwp_index::shndx_pool_end): Remove. + (Dwp_output_file::Dwp_index::section_table): New member function. + (Dwp_output_file::Dwp_index::section_table_end): New member function. + (Dwp_output_file::Dwp_index::shndx_pool_size): Remove. + (Dwp_output_file::Dwp_index::section_table_rows): New member function. + (Dwp_output_file::Dwp_index::section_table_cols): New member function. + (Dwp_output_file::Dwp_index::shndx_pool_): Remove. + (Dwp_output_file::Dwp_index::section_table_): New data member. + (Dwp_output_file::Dwp_index::section_mask_): New data member. + (Dwp_output_file::add_output_section): New member function. + (Dwp_output_file::write_new_section): New member function. + (Dwp_output_file::write_contributions): New member function. + (Dwp_output_file::section_id_map_): New data member. + (class Dwo_id_info_reader): Remove. + (class Unit_reader): New class. + (get_dwarf_section_name): New function. + (Dwo_file::read_executable): Adjust initializations of class data. + (Dwo_file::read): Add support for v2 package file format. + (Dwo_file::read_unit_index): Likewise. + (Dwo_file::sized_read_unit_index): Likewise. + (Dwo_file::copy_section): Likewise. + (Dwo_file::add_unit_set): Likewise. + (Dwp_output_file::add_output_section): Likewise. + (Dwp_output_file::add_contribution): Likewise. + (Dwp_output_file::Dwp_index::find_or_add): Use row index to check + for empty slot. + (Dwp_output_file::Dwp_index::enter_set): Add support for v2 package + file format. + (Dwp_output_file::Dwp_index::grow): Use row index to check for empty + slot. + (Dwp_output_file::initialize): Remove unused function. + (Dwp_output_file::finalize): Add support for v2 package file format. + (Dwp_output_file::write_index): Likewise. + * gdb-index.cc (Gdb_index_info_reader::visit_type_unit): Adjust + function prototype. + +2013-10-31 Cary Coutant + + * configure.ac: Fix check for -fmerge-constants. + * configure.ac: Regenerate. + +2013-10-30 Roland McGrath + + * x86_64.cc (Output_data_plt_x86_64_nacl::first_plt_entry): + Correct 9-byte nop sequence to match what the assembler generates. + 2013-10-30 Alan Modra * powerpc.cc (Powerpc_relobj::abiversion, set_abiversion, @@ -15257,7 +16217,7 @@ * Added source code to GNU binutils. -Copyright (C) 2008-2013 Free Software Foundation, Inc. +Copyright (C) 2008-2014 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright