X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gold%2FChangeLog;h=730418506d20043b2578f1351315332447517df3;hb=fa47fa924667f5d668faf24412dea39150e14a2a;hp=164da85b7d82e01b1f2d1798be6f2042184b0795;hpb=d3a7cd45fd77177ca578790f0d39856136f3f8b4;p=external%2Fbinutils.git diff --git a/gold/ChangeLog b/gold/ChangeLog index 164da85..7304185 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,857 @@ +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, + ppc64_local_entry_offset, ppc64_local_entry_offset, + do_read_symbols): New functions. + (Powerpc_relobj::e_flags_, st_other_): New vars. + (Powerpc_relobj::Powerpc_relobj): Call set_abiversion. + (Powerpc_dynobj::abiversion, set_abiversion): New functions. + (Powerpc_relobj::e_flags_): New var. + (Target_powerpc::first_plt_entry_offset, plt_entry_size): Inline + and adjust for ELFv2. + (Target_powerpc::abiversion, set_abiversion, stk_toc): New functions. + (Powerpc_relobj::do_find_special_sections): Check no .opd in ELFv2. + (Powerpc_dynobj::do_find_special_sections): Likewise. + (Target_powerpc::do_define_standard_symbols): Define ".TOC.". + (Target_powerpc::Branch_info::make_stub): Adjust stub destination + to ELFv2 local entry. + (Target_powerpc::do_relax): No thread safe barriers needed for + ELFv2. + (Output_data_plt_powerpc::initial_plt_entry_size_, + plt_entry_size): Delete. Replace all uses with + first_plt_entry_offset() and plt_entry_size(). + (Output_data_plt_powerpc::Output_data_plt_powerpc): Remove + reserved_size parm. Update callers. + (Output_data_plt_powerpc::entry_count): Update. + (Output_data_plt_powerpc::first_plt_entry_offset): Make private + and use Target_powerpc::first_plt_entry_offset(). + (Output_data_plt_powerpc::get_plt_entry_size): Similarly and + rename to plt_entry_size. + (Output_data_plt_powerpc::add_ifunc_entry, + add_local_ifunc_entry): Adjust reloc for ELFv2. + (glink_eh_frame_fde_64): Rename to glink_eh_frame_fde_64v1. + (glink_eh_frame_fde_64v2): New. + (Stub_table::plt_call_size): Support ELFv2 sizing. + (Output_data_glink::add_eh_frame): Use the new FDE. + (Output_data_glink::set_final_data_size): Adjust for ELFv2 glink. + (Stub_table::do_write): Write ELFv2 stubs and glink. + (Target_powerpc::Relocate::relocate): Replaces nop after call + with ld 2,24(1) and adjust local offset destination for ELFv2. + +2013-10-30 Alan Modra + + * powerpc.cc (Target_powerpc::Scan::check_non_pic): Handle new relocs. + (Target_powerpc::Scan::global, local): Likewise. + (Target_powerpc::Relocate::relocate): Likewise. Check for overflow + on all ppc64 @h and @ha relocs. + +2013-10-14 Alan Modra + + * output.h (Output_data_got::add_constant): Tidy. + (Output_data_got::add_constant_pair): New function. + * powerpc.cc (Output_data_got_powerpc): Override all Output_data_got + methods used so as to first call reserve_ent(). + +2013-10-11 Roland McGrath + + * powerpc.cc (Output_data_got_powerpc): Remove unused methods + add_got_entry and add_got_entry_pair. + + * configure.ac (TLS_GNU2_DIALECT): Use -Werror in test. + (HAVE_PUBNAMES): Likewise. + * configure: Regenerate. + + * testsuite/Makefile.am: Replace '-T foo' with '-Wl,-T,foo' throughout. + * testsuite/Makefile.in: Regenerate. + + * target.h (Target::adjust_elf_header, Target::do_adjust_elf_header): + Remove const from declaration. + * target.cc (Sized_target::do_adjust_elf_header): Update definition. + * sparc.cc (Target_sparc::do_adjust_elf_header): Likewise. + * output.h (Output_file_header): Remove const from member target_ + and corresponding constructor argument. + * output.cc (Output_file_header::Output_file_header): Update prototype. + (Output_file_header::do_sized_write): Use this->target_ in place + of parameters()->target(). + + * testsuite/undef_symbol.cc (Foo::get_a): New method. + + * configure.ac (MERGE_CONSTANTS_FLAG): New check. + * configure: Regenerate. + * Makefile.in: Regenerate. + * testsuite/merge_string_literals_1.c: Renamed to have .cc suffix. + * testsuite/merge_string_literals_2.c: Likewise. + * testsuite/Makefile.am + (merge_string_literals_1.o, merge_string_literals_2.o): Update deps. + (AM_CFLAGS, AM_CXXFLAGS): Use $(MERGE_CONSTANTS_FLAG) in place of + literal -fmerge-constants. + * testsuite/Makefile.in: Regenerate. + + * i386.cc (Target_i386): Remove unused member dynbss_. + * arm.cc (Target_arm): Likewise. + * powerpc.cc (Target_powerpc): Likewise. + * sparc.cc (Target_sparc): Likewise. + * tilegx.cc (Target_tilegx): Likewise. + * x86_64.cc (Target_x86_64): Likewise. + * dwarf_reader.h (Dwarf_info_reader): Remove unused members + type_signature_, type_offset_. + * plugin.h (Plugin_hook): Remove unused member layout_. + * readsyms.h (Add_symbols): Remove unused members dirpath_, dirindex_, + mapfile_. + (Read_member): Remove unused members input_objects_, symtab_, + mapfile_, layout_. + (Check_library): Remove unused member symtab_. + * archive.h (Lib_group): Remove unused member lib_. + * archive.cc (Lib_group::Lib_group): Update initializer. + * incremental.h (Incremental_binary): Remove unused member target_. + (Incremental_script_entry): Removed unused member script_. + * layout.h (Write_symbols_task): Remove unused member input_objects_. + * icf.h (Icf): Remove unused member num_tracked_relocs. + + * gold-threads.h (Once): Conditionalize member was_run_lock_ on + [ENABLE_THREADS && __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4], matching + its only use. + * gold-threads.cc (Once::Once): Likewise conditionalize initializer. + + * archive.h: Use struct rather than class for forward declaration + of Read_symbols_data. + +2013-10-07 Cary Coutant + + PR gold/16010 + * testsuite/Makefile.am (icf_test): Fix dependencies. + (icf_safe_test): Likewise. + (icf_safe_so_test): Likewise. + (large_symbol_alignment): Add empty _LDADD rule. + * testsuite/Makefile.in: Regenerate. + +2013-09-03 Pavel Chupin + + PR gold/15927 + * x86_64.cc (Target_x86_64::Scan::global): Use relative + relocation for R_X86_64_32 on x32. + +2013-08-27 Roland McGrath + + * output.cc (Output_segment::set_section_addresses): Take new + Target* argument. If target->isolate_execinstr() and the segment + is executable and starts at a target->abi_pagesize() boundary, + pad its end out to a target->abi_pagesize() boundary with code fill. + * output.h (Output_segment::set_section_addresses): Update decl. + * layout.h (Layout::check_output_data_for_reset_values): Take new + argument RELAX_OUTPUTS. + (Layout): New member relax_output_list_. + (Layout::add_relax_output): New method. + * layout.cc (Layout::Layout): Update constructor. + (Layout::reset_relax_output): New method. + (Layout::clean_up_after_relaxation): Call it. + (Layout::prepare_for_relaxation): Update caller. + (Layout::set_segment_offsets): Update callers of set_section_addresses. + Call reset_relax_output before re-processing segments for + isolate_execinstr case. + (Layout::write_data): Handle relax_output_list_. + (Layout::Relaxation_debug_check::check_output_data_for_reset_values): + Take new argument RELAX_OUTPUTS. Assert it's an empty collection. + +2013-08-23 Yuri Chornoivan + + PR binutils/15834 + * object.h: Fix typos. + +2013-08-16 Roland McGrath + + * i386.cc (Target_i386_nacl::do_code_fill): New virtual function. + * x86_64.cc (Target_x86_64_nacl::do_code_fill): New virtual function. + +2013-08-07 Cary Coutant + + Revert support for v2 DWP files: + + 2013-03-01 Cary Coutant + + Add dwp support for v2 DWARF package file format. + * dwarf_reader.cc (Dwarf_info_reader::visit_type_unit): Add + tu_length parameter. Adjust all callers. + * dwarf_reader.h (Dwarf_info_reader::visit_type_unit): Likewise. + * dwp.cc: Include dwarf.h. + (Section_bounds): New struct type. + (Unit_set): New struct type. + (Dwo_file::Dwo_file): Initialize new data member. + (Dwo_file::read_compunit_index, Dwo_file::read_typeunit_index): + Combine and rename to... + (Dwo_file::read_unit_index): ...this. + (Dwo_file::sized_read_compunit_index) + (Dwo_file::sized_read_typeunit_index): Combine and rename to... + (Dwo_file::sized_read_unit_index): ...this. + (Dwo_file::copy_section): Remove section_name, is_str_offsets + parameters; add section_id parameter. + (Dwo_file::add_cu_set, Dwo_file::add_tu_set): Combine and rename to... + (Dwo_file::add_unit_set): ...this. + (Dwo_file::shndx_map_): Remove. + (Dwo_file::sect_offsets_): New data member. + (Dwp_output_file::Dwp_output_file): Initialize new data members. + (Dwp_output_file::add_section): Rename to... + (Dwp_output_file::add_contribution): ...this. + (Dwp_output_file::add_cu_set): Combine parameters into a struct. + (Dwp_output_file::add_tu_set): Likewise. + (Dwp_output_file::Contribution): New type. + (Dwp_output_file::Section::contributions): New data member. + (Dwp_output_file::Cu_or_tu_set): Remove. + (Dwp_output_file::Section::Section): New ctor. + (Dwp_output_file::Dwp_index::Shndx_pool): Remove. + (Dwp_output_file::Dwp_index::Section_table): New type. + (Dwp_output_file::Dwp_index::Dwp_index): Initialize new data members. + (Dwp_output_file::Dwp_index::enter_set): Change type of "set" + parameter. + (Dwp_output_file::Dwp_index::shndx_pool): Remove. + (Dwp_output_file::Dwp_index::shndx_pool_end): Remove. + (Dwp_output_file::Dwp_index::section_table): New member function. + (Dwp_output_file::Dwp_index::section_table_end): New member function. + (Dwp_output_file::Dwp_index::shndx_pool_size): Remove. + (Dwp_output_file::Dwp_index::section_table_rows): New member function. + (Dwp_output_file::Dwp_index::section_table_cols): New member function. + (Dwp_output_file::Dwp_index::shndx_pool_): Remove. + (Dwp_output_file::Dwp_index::section_table_): New data member. + (Dwp_output_file::Dwp_index::section_mask_): New data member. + (Dwp_output_file::add_output_section): New member function. + (Dwp_output_file::write_new_section): New member function. + (Dwp_output_file::write_contributions): New member function. + (Dwp_output_file::section_id_map_): New data member. + (class Dwo_id_info_reader): Remove. + (class Unit_reader): New class. + (get_dwarf_section_name): New function. + (Dwo_file::read_executable): Adjust initializations of class data. + (Dwo_file::read): Add support for v2 package file format. + (Dwo_file::read_unit_index): Likewise. + (Dwo_file::sized_read_unit_index): Likewise. + (Dwo_file::copy_section): Likewise. + (Dwo_file::add_unit_set): Likewise. + (Dwp_output_file::add_output_section): Likewise. + (Dwp_output_file::add_contribution): Likewise. + (Dwp_output_file::Dwp_index::find_or_add): Use row index to check + for empty slot. + (Dwp_output_file::Dwp_index::enter_set): Add support for v2 package + file format. + (Dwp_output_file::Dwp_index::grow): Use row index to check for empty + slot. + (Dwp_output_file::initialize): Remove unused function. + (Dwp_output_file::finalize): Add support for v2 package file format. + (Dwp_output_file::write_index): Likewise. + * gdb-index.cc (Gdb_index_info_reader::visit_type_unit): Adjust + function prototype. + +2013-07-31 Cary Coutant + + * object.cc (Sized_relobj::do_output_section_address): New function. + (Sized_relobj): Instantiate explicitly. + * object.h (Object::output_section_address): New function. + (Object::do_output_section_address): New function. + (Sized_relobj::do_output_section_address): New function. + * powerpc.cc (Target_powerpc::symval_for_branch): Use it. + +2013-07-30 Cary Coutant + Sasa Stankovic + + * parameters.cc (Parameters::entry): Return target-specific entry + symbol name. + * target.h (Target::entry_symbol_name): New function. + (Target_info::entry_symbol_name): New data member. + + * arm.cc (Target_arm::arm_info): Add entry_symbol_name. + * i386.cc (Target_i386::i386_info): Likewise. + (Target_i386_nacl::i386_nacl_info): Likewise. + * sparc.cc (Target_sparc::sparc_info): Likewise. + * tilegx.cc (Target_tilegx::tilegx_info): Likewise. + * x86_64.cc: (Target_x86_64::x86_64_info) Likewise. + (Target_x86_64_nacl::x86_64_nacl_info) Likewise. + * testsuite/testfile.cc (Target_test::test_target_info): Likewise. + +2013-07-22 Sterling Augustine + + * dwarf_reader.cc (Dwarf_pubnames_table::read_section): + Convert parameter shndx to local variable. Add parameters symtab + and symtab_size. Scan over section names. Find relocation + section corresponding to current section. Create and initialize + reloc_mapper_ and reloc_type_. + (Dwarf_pubnames_table::read_header): Add assertion. Change + unit_length to off_t. Initialize member unit_length_. Fill in field + cu_offset_. + * dwarf_reader.h (Dwarf_pubnames_table::Dwarf_pubnames_table): + Initialize new fields unit_length_ and cu_offset_. + (Dwarf_pubnames_table::read_section): Update prototype. + (Dwarf_pubnames_table::cu_offset): New member function. + (Dwarf_pubnames_table::subsection_size): Likewise. + (Dwarf_pubnames_table::cu_offset_, Dwarf_pubnames_table::unit_length): + New fields. + (Dwarf_info_reader::symtab, Dwarf_info_reader::symtab_size): Make + member functions public. + * gdb_index.cc (Gdb_index_info_reader::read_pubnames_and_pubtypes): + Update comment. Rework logic. Move repeated parts to... + (Gdb_index_info_reader::read_pubtable): ...here. New function. + (Gdb_index::Gdb_index): Initialize new fields, pubnames_table_, + pubtypes_table_, and stmt_list_offset. + (Gdb_index::map_pubtable_to_dies, Gdb_index::find_pubname_offset, + Gdb_index::find_pubtype_offset, + Gdb_index::map_pubnames_and_types_to_dies): Define new functions. + (Gdb_index::pubnames_read): Update prototype and rework logic. + * gdb_index.h (Gdb_index_info_reader, Dwarf_pubnames_table): + Forward declare. + (Gdb_index::map_pubtable_to_dies, Gdb_index::find_pubname_offset, + Gdb_index::find_pubtype_offset, Gdb_index::pubnames_table) + Gdb_index::pubtypes_table, Gdb_index::map_pubnames_and_types_to_dies, + Gdb_index::map_pubtable_to_dies): + Declare functions. + (Gdb_index::pubnames_read): Update declaration. + (Gdb_index::Pubname_offset_map): New type. + (Gdb_index::cu_pubname_map_, Gdb_index::cu_pubtype_map_, + Gdb_index::pubnames_table_, Gdb_index::pubtypes_table_, + Gdb_index::stmt_list_offset): Declare. + (Gdb_index::pubnames_shndx_, Gdb_index::pubnames_offet_, + Gdb_index::pubtypes_object_, Gdb_index::pubtypes_shndx_) + Gdb_index::pubtypes_offset_): Remove. + +2013-07-19 Roland McGrath + + * options.h (General_options): Add -Trodata-segment option. + * parameters.cc (Parameters::check_rodata_segment): New function. + (Parameters::set_target_once): Call it. + * parameters.h (Parameters): Declare it (private member function). + * layout.cc (load_seg_unusable_for_headers): New function, broken + out of Layout::relaxation_loop_body. If TARGET->isolate_execinstr() + then validate rodata segment rather than text segment. + (relaxation_loop_body): Call that. + (is_text_segment): New function. Don't admit a non-executable + segment if TARGET->isolate_execinstr(). + (set_segment_offsets): Call it. Honor -Trodata-segment option. + +2013-07-15 Shawn Landden + + PR gold/15070 + * fileread.h (File_read::get_view): Clarify comment about ALIGNED. + * nacl.h (Sniff_file::View::View): Request aligned view. + +2013-07-11 Cary Coutant + + * powerpc.cc (Target_powerpc::write_branch_lookup_table): Use + correct BRLT entry size. + +2013-07-03 Alan Modra + + * powerpc.cc (Target_powerpc::Relocate::relocate): Update self-call + comment. + +2013-07-01 Cary Coutant + + * dwarf_reader.cc (Dwarf_ranges_table::read_ranges_table): Save + reloc_type_. + (Dwarf_ranges_table::read_range_list): Call lookup_reloc. + (Dwarf_ranges_table::lookup_reloc): New function. + * dwarf_reader.h (Dwarf_ranges_table::Dwarf_ranges_table): Initialize + reloc_type_. + (Dwarf_ranges_table::lookup_reloc): New function. + (Dwarf_ranges_table::reloc_type_): New data member. + +2013-06-27 Jing Yu + + PR gold/15662 + * powerpc.cc (Output_data_brlt_powerpc::reset_brlt_sizes): New + function. + (Output_data_brlt_powerpc::finalize_brlt_sizes): New function. + (Target_powerpc::do_relax): Call the above. + +2013-06-27 Cary Coutant + + * powerpc.cc (Target_powerpc::symval_for_branch): Don't assert + on garbage collected .opd section. + +2013-06-27 Alan Modra + + * powerpc.cc (Target_powerpc::do_gc_add_reference): Test dst_shndx + is non-zero. + (Target_powerpc::do_gc_mark_symbols): Likewise for sym->shndx(). + (Target_powerpc::do_function_location): Likewise for loc->shndx. + +2013-06-14 Cary Coutant + + * resolve.cc (Symbol::override_base): Don't override st_type + from plugin placeholder symbols. + (Symbol_table::resolve): Likewise. + (Symbol_table::should_override): Don't complain about TLS mismatch + if the TO symbol is a plugin placeholder. + * testsuite/Makefile.am (plugin_test_tls): New test. + * testsuite/Makefile.in: Regenerate. + * testsuite/plugin_test_tls.sh: New test script. + * testsuite/two_file_test_2_tls.cc: New test source. + * testsuite/two_file_test_tls.cc: New test source. + +2013-06-05 Alexander Ivchenko + + * layout.cc (Layout::set_segment_offsets): Taking care of the case when + the maximum segment alignment is larger than the page size. + * testsuite/Makefile.am (large_symbol_alignment): Test that Gold + correctly aligns the symbols with large alignemnt. + * testsuite/Makefile.in: Regenerate. + * testsuite/large_symbol_alignment.cc: New file. + +2013-05-30 Alexander Ivchenko + Sriraman Tallam + + * options.h (sort_section): New option. + * output.h (Input_section_sort_section_prefix_special_ordering_compare): + Rename from Input_section_sort_section_name_special_ordering_compare. + (Input_section_sort_section_name_compare): New struct. + * output.cc (Output_section::Input_section_sort_section_name_compare:: + operator()): New function. + (Output_section::sort_attached_input_sections): Use new sort function + for .text if --sort-section=name is specified. + * layout.cc (Layout::make_output_section): + Add sorting by name when --sort-section=name is specified. + * testsuite/Makefile.am (text_section_grouping): Test option + --sort-section=name. + * testsuite/Makefile.in: Regenerate. + * testsuite/section_sorting_name.cc: New file. + * testsuite/section_sorting_name.sh: New file. + +2013-05-21 Cary Coutant + + * symtab.h (Symbol::is_cxx_vtable): New function. + * target-reloc.h (relocate_section): Check for vtable symbol. + * testsuite/Makefile.am (missing_key_func.sh): New test case. + * testsuite/Makefile.in: Regenerate. + * testsuite/missing_key_func.cc: New test source. + * testsuite/missing_key_func.sh: New test script. + +2013-05-21 Cary Coutant + + * object.cc (Sized_relobj_file::get_symbol_location_info): Set + type of enclosing symbol. + (Relocate_info::location): Check symbol type when describing symbol. + * object.h (Symbol_location_info): Remove unused line_number; + add enclosing_symbol_type. + * testsuite/debug_msg.sh: Adjust expected output. + +2013-05-13 Cary Coutant + + * configure.ac: Export DEFAULT_TARGET. + * configure: Regenerate. + * Makefile.in: Regenerate. + * testsuite/Makefile.am: Add .EXPORT_ALL_VARIABLES. + * testsuite/Makefile.in: Regenerate. + * testsuite/debug_msg.sh: Delete duplicate tests. + Don't check undef_int error message match for powerpc where the + source file and line number aren't available. + +2013-05-10 Roland McGrath + + * options.h (General_options): Add --rosegment-gap option. + * options.cc (finalize): --rosegment-gap implies --rosegment. + * layout.cc (set_segment_offsets): Let user option override + target->rosegment_gap(). + +2013-05-10 Roland McGrath + + * options.h (General_options): Remove leading space from help + messages for -nostdlib and --rosegment. + +2013-05-03 Maciej W. Rozycki + + PR ld/15365 + * layout.cc (Layout::finalize): Make __ehdr_start STV_HIDDEN. + +2013-05-03 Alan Modra + + * merge.cc (Output_merge_string::do_add_input_section): Correct + scan for number of strings. Rename vars to avoid shadowing. + Include missing terminator in input_size_. + 2013-05-01 H.J. Lu * merge.cc (Output_merge_string::do_add_input_section): @@ -14791,7 +15645,7 @@ * Added source code to GNU binutils. -Copyright (C) 2008-2012 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