aboutsummaryrefslogtreecommitdiff
path: root/gold
AgeCommit message (Collapse)AuthorFilesLines
2013-12-19 * stringpool.cc (Stringpool_template::reserve): AddIan Lance Taylor2-2/+11
HAVE_UNORDERED_MAP case. * stringpool.cc (Stringpool_template::print_stats): Likewise.
2013-12-18Add configure checks for <unordered_set> and <unordered_map>.Cary Coutant5-2/+43
gold/ * configure.ac: Check for <unordered_set> and <unordered_map>. * config.in: Regenerate. * configure: Regenerate. * system.h: Use <unordered_set> and <unordered_map> if available.
2013-12-10Use $(INSTALL_PROGRAM_ENV) consistently.Roland McGrath3-12/+20
binutils/ * Makefile.am (install-exec-local): Prefix libtool invocation with $(INSTALL_PROGRAM_ENV). * Makefile.in: Regenerate. gas/ * Makefile.am (install-exec-bindir): Prefix libtool invocation with $(INSTALL_PROGRAM_ENV). (install-exec-tooldir): Likewise. * Makefile.in: Regenerate. gold/ * Makefile.am (install-exec-local): Prefix $(INSTALL_PROGRAM) uses with $(INSTALL_PROGRAM_ENV). * Makefile.in: Regenerate. ld/ * Makefile.am (install-exec-local): Prefix libtool invocation with $(INSTALL_PROGRAM_ENV). * Makefile.in: Regenerate.
2013-11-22Add check for which library is needed for dlopen.Cary Coutant3-5/+74
gold/ PR gold/16203 * configure.ac: Add check for which library is needed for dlopen. * configure: Regenerate.
2013-11-22Use in-tree assembler for exception_x86_64_bnd_test.Cary Coutant3-4/+10
gold/ * testsuite/Makefile.am (exception_x86_64_bnd_test): Use in-tree assembler. * testsuite/Makefile.in: Regenerate.
2013-11-18Add R_X86_64_PC32_BND/R_X86_64_PLT32_BND suppor to goldH.J. Lu4-8/+96
elfcpp/ * x86_64.h (R_X86_64_PC32_BND): New. (R_X86_64_PLT32_BND): Likewise. gold/ * x86_64.cc (Target_x86_64<size>::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<size>::Scan::local): Likewise. (Target_x86_64<size>::Scan::global): Likewise. (Target_x86_64<size>::Relocate::relocate): Likewise. (Target_x86_64<size>::Relocatable_size_for_reloc::get_size_for_reloc): Likewise. (Target_x86_64<size>::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-15Add missing ChangeLog for 88b8e63904fda25c029deaf25d7b4e489b351470Alan Modra1-0/+12
2013-11-15Fixes to powerpc64 gold ELFv2 supportAlan Modra2-154/+350
* 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-14Revert "Fix race condition while building EH frame header."Cary Coutant3-11/+16
This reverts commit 7cdd7d57e6fa3932eb63aa785ae0e3fa837aab20.
2013-11-14Add --verify-only option to DWP.Cary Coutant3-9/+211
gold/ * 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-14Fix race condition while building EH frame header.Cary Coutant3-2/+20
gold/ 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-06Fix assert failure with --emit-relocs and .eh_frame sections.Cary Coutant2-22/+28
gold/ PR gold/15758 * object.cc (Sized_relobj_file::do_layout): Handle .eh_frame sections before reloc sections.
2013-11-04Remove powerpc.cc copy of use_plt_offsetAlan Modra2-115/+37
This adds an extra flag for needs_dynamic_reloc() in order to remove the copy of this function and use_plt_offset() in powerpc.cc, and tweaks the powerpc get_reference_flags() to return the flag as appropriate. ELFv2 does not want ELFv1 behaviour here. * 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-31Restore support for dwp v2 DWARF package file format.Cary Coutant5-549/+682
gold/ * 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-31gold/Cary Coutant3-4/+9
* configure.ac: Fix check for -fmerge-constants. * configure.ac: Regenerate.
2013-10-30gold: x86_64-nacl: Correct 9-byte nop sequence to match what the assembler ↵Roland McGrath2-1/+6
generates. gold/ * 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-30PowerPC64 ELFv2 support for gold.Alan Modra2-133/+445
elfcpp/ * powerpc.h (EF_PPC64_ABI): New enum constant. (STO_PPC64_LOCAL_BIT, STO_PPC64_LOCAL_MASK): Likewise. (ppc64_decode_local_entry): New function. (ppc64_encode_local_entry): Likewise. gold/ * 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-30Report overflow on PowerPC64 @h and @ha relocations.Alan Modra2-39/+98
This changes the behaviour of @h and @ha on PowerPC64 to report errors on 32-bit overflow. The motivation for this change is that on PowerPC64, most uses of @h and @ha modifiers and their corresponding relocations are to build up 32-bit offsets. We'd like to know when such offsets overflow. Only rarely do people use @h or @ha with the high 32-bit modifiers to build a 64-bit constant. Those uses will now need to use two new modifiers, @high and @higha, if the constant isn't known at assembly time. For now, we won't report overflow at assembly time.. This also fixes an error when applying some of the HIGHER and HIGHEST relocations. include/elf/ * ppc64.h (R_PPC64_ADDR16_HIGH, R_PPC64_ADDR16_HIGHA, R_PPC64_TPREL16_HIGH, R_PPC64_TPREL16_HIGHA, R_PPC64_DTPREL16_HIGH, R_PPC64_DTPREL16_HIGHA): New. (IS_PPC64_TLS_RELOC): Match new tls relocs. bfd/ * reloc.c (BFD_RELOC_PPC64_ADDR16_HIGH, BFD_RELOC_PPC64_ADDR16_HIGHA, BFD_RELOC_PPC64_TPREL16_HIGH, BFD_RELOC_PPC64_TPREL16_HIGHA, BFD_RELOC_PPC64_DTPREL16_HIGH, BFD_RELOC_PPC64_DTPREL16_HIGHA): New. * elf64-ppc.c (ppc64_elf_howto_raw): Add entries for new relocs. Make all _HA and _HI relocs report signed overflow. (ppc64_elf_reloc_type_lookup): Handle new relocs. (must_be_dyn_reloc, ppc64_elf_check_relocs): Likewise. (dec_dynrel_count, ppc64_elf_relocate_section): Likewise. (ppc64_elf_relocate_section): Don't apply 0x8000 adjust to R_PPC64_TPREL16_HIGHER, R_PPC64_TPREL16_HIGHEST, R_PPC64_DTPREL16_HIGHER, and R_PPC64_DTPREL16_HIGHEST. * libbfd.h: Regenerate. * bfd-in2.h: Regenerate. gas/ * config/tc-ppc.c (SEX16): Don't mask. (REPORT_OVERFLOW_HI): Define as zero. (ppc_elf_suffix): Support @high, @higha, @dtprel@high, @dtprel@higha, @tprel@high, and @tprel@higha modifiers. (md_assemble): Ignore X_unsigned when applying 16-bit insn fields. Add (disabled) code to check @h and @ha reloc overflow for powerpc64. Handle new relocs. (md_apply_fix): Similarly. elfcpp/ * powerpc.h (R_PPC64_ADDR16_HIGH, R_PPC64_ADDR16_HIGHA, R_PPC64_TPREL16_HIGH, R_PPC64_TPREL16_HIGHA, R_PPC64_DTPREL16_HIGH, R_PPC64_DTPREL16_HIGHA): Define. gold/ * 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 * output.h (Output_data_got::add_constant): Tidy.Alan Modra3-7/+92
(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-11gold/Roland McGrath2-19/+3
* powerpc.cc (Output_data_got_powerpc): Remove unused methods add_got_entry and add_got_entry_pair.
2013-10-11Revert inappropriate portions of last change.Roland McGrath2-34/+34
2013-10-11gold/Roland McGrath3-4/+18
* configure.ac (TLS_GNU2_DIALECT): Use -Werror in test. (HAVE_PUBNAMES): Likewise. * configure: Regenerate.
2013-10-11gold/Roland McGrath3-62/+65
* testsuite/Makefile.am: Replace '-T foo' with '-Wl,-T,foo' throughout. * testsuite/Makefile.in: Regenerate.
2013-10-11gold/Roland McGrath6-12/+22
* 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().
2013-10-11gold/Roland McGrath2-1/+5
* testsuite/undef_symbol.cc (Foo::get_a): New method.
2013-10-11gold/Roland McGrath8-45/+101
* 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.
2013-10-11gold/Roland McGrath15-71/+60
* 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.
2013-10-11gold/Roland McGrath3-3/+13
* 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.
2013-10-11gold/Roland McGrath2-2/+7
* archive.h: Use struct rather than class for forward declaration of Read_symbols_data.
2013-10-07gold/Cary Coutant3-17/+31
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-03Use relative relocation for R_X86_64_32 on x32H.J. Lu2-1/+8
2013-09-03 Pavel Chupin <pavel.v.chupin@intel.com> PR gold/15927 * x86_64.cc (Target_x86_64<size>::Scan::global): Use relative relocation for R_X86_64_32 on x32.
2013-08-27gold/Roland McGrath5-149/+252
* 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 PR binutils/15834Nick Clifton2-1/+6
Fix typos: --- bfd/bfdio.c | 2 +- bfd/elf32-spu.c | 2 +- bfd/elfnn-aarch64.c | 2 +- binutils/od-xcoff.c | 2 +- config/tcl.m4 | 2 +- gas/config/tc-ia64.c | 2 +- gas/config/tc-sparc.c | 2 +- gas/config/tc-z80.c | 12 ++++++------ gas/doc/c-i386.texi | 6 +++--- gas/doc/c-m32r.texi | 2 +- gas/testsuite/gas/d10v/instruction_packing.d | 2 +- gas/testsuite/gas/z80/atend.d | 2 +- gold/object.h | 2 +- include/gdb/remote-sim.h | 2 +- include/opcode/ChangeLog | 2 +- include/opcode/i960.h | 2 +- ld/testsuite/ld-mips-elf/mips16-pic-1.inc | 2 +- opcodes/aarch64-asm.c | 2 +- opcodes/aarch64-dis.c | 2 +- opcodes/msp430-dis.c | 2 +-
2013-08-16gold/Roland McGrath3-0/+30
* 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-07gold/Cary Coutant5-608/+626
Revert support for v2 DWP files: 2013-03-01 Cary Coutant <ccoutant@google.com> Add dwp support for v2 DWARF package file format. * dwarf_reader.cc (Dwarf_info_reader::visit_type_unit): Add tu_length parameter. Adjust all callers. * dwarf_reader.h (Dwarf_info_reader::visit_type_unit): Likewise. * dwp.cc: Include dwarf.h. (Section_bounds): New struct type. (Unit_set): New struct type. (Dwo_file::Dwo_file): Initialize new data member. (Dwo_file::read_compunit_index, Dwo_file::read_typeunit_index): Combine and rename to... (Dwo_file::read_unit_index): ...this. (Dwo_file::sized_read_compunit_index) (Dwo_file::sized_read_typeunit_index): Combine and rename to... (Dwo_file::sized_read_unit_index): ...this. (Dwo_file::copy_section): Remove section_name, is_str_offsets parameters; add section_id parameter. (Dwo_file::add_cu_set, Dwo_file::add_tu_set): Combine and rename to... (Dwo_file::add_unit_set): ...this. (Dwo_file::shndx_map_): Remove. (Dwo_file::sect_offsets_): New data member. (Dwp_output_file::Dwp_output_file): Initialize new data members. (Dwp_output_file::add_section): Rename to... (Dwp_output_file::add_contribution): ...this. (Dwp_output_file::add_cu_set): Combine parameters into a struct. (Dwp_output_file::add_tu_set): Likewise. (Dwp_output_file::Contribution): New type. (Dwp_output_file::Section::contributions): New data member. (Dwp_output_file::Cu_or_tu_set): Remove. (Dwp_output_file::Section::Section): New ctor. (Dwp_output_file::Dwp_index::Shndx_pool): Remove. (Dwp_output_file::Dwp_index::Section_table): New type. (Dwp_output_file::Dwp_index::Dwp_index): Initialize new data members. (Dwp_output_file::Dwp_index::enter_set): Change type of "set" parameter. (Dwp_output_file::Dwp_index::shndx_pool): Remove. (Dwp_output_file::Dwp_index::shndx_pool_end): Remove. (Dwp_output_file::Dwp_index::section_table): New member function. (Dwp_output_file::Dwp_index::section_table_end): New member function. (Dwp_output_file::Dwp_index::shndx_pool_size): Remove. (Dwp_output_file::Dwp_index::section_table_rows): New member function. (Dwp_output_file::Dwp_index::section_table_cols): New member function. (Dwp_output_file::Dwp_index::shndx_pool_): Remove. (Dwp_output_file::Dwp_index::section_table_): New data member. (Dwp_output_file::Dwp_index::section_mask_): New data member. (Dwp_output_file::add_output_section): New member function. (Dwp_output_file::write_new_section): New member function. (Dwp_output_file::write_contributions): New member function. (Dwp_output_file::section_id_map_): New data member. (class Dwo_id_info_reader): Remove. (class Unit_reader): New class. (get_dwarf_section_name): New function. (Dwo_file::read_executable): Adjust initializations of class data. (Dwo_file::read): Add support for v2 package file format. (Dwo_file::read_unit_index): Likewise. (Dwo_file::sized_read_unit_index): Likewise. (Dwo_file::copy_section): Likewise. (Dwo_file::add_unit_set): Likewise. (Dwp_output_file::add_output_section): Likewise. (Dwp_output_file::add_contribution): Likewise. (Dwp_output_file::Dwp_index::find_or_add): Use row index to check for empty slot. (Dwp_output_file::Dwp_index::enter_set): Add support for v2 package file format. (Dwp_output_file::Dwp_index::grow): Use row index to check for empty slot. (Dwp_output_file::initialize): Remove unused function. (Dwp_output_file::finalize): Add support for v2 package file format. (Dwp_output_file::write_index): Likewise. * gdb-index.cc (Gdb_index_info_reader::visit_type_unit): Adjust function prototype.
2013-07-31gold/Cary Coutant4-2/+56
* 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-30Add missing author to last ChangeLog entry.Cary Coutant1-0/+1
2013-07-30 gold/Cary Coutant10-23/+62
* 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. (Target_arm_nacl::arm_nacl_info): Likewise. * i386.cc (Target_i386::i386_info): Likewise. (Target_i386_nacl::i386_nacl_info): Likewise. * powerpc.cc (Target_powerpc::powerpc_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-292013-07-22 Sterling Augustine <saugustine@google.com>Sterling Augustine5-126/+377
* 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-19gold/Roland McGrath5-9/+72
* 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-152013-07-15 Shawn Landden <shawnlandden@gmail.com>Cary Coutant3-7/+14
gold/ PR gold/15070 * fileread.h (File_read::get_view): Clarify comment about ALIGNED. * nacl.h (Sniff_file::View::View): Request aligned view.
2013-07-11gold/Cary Coutant2-1/+6
* powerpc.cc (Target_powerpc::write_branch_lookup_table): Use correct BRLT entry size.
2013-07-03bfd/Alan Modra2-4/+12
* elf64-ppc.c (struct ppc_stub_hash_entry): Delete "addend". (ppc64_elf_size_stubs): Don't set "addend". (ppc64_elf_relocate_section): Don't allow calls via toc-adjusting stubs without a following nop even in an executable, except for self-calls and both libc_start_main and .libc_start_main. gold/ * powerpc.cc (Target_powerpc::Relocate::relocate): Update self-call comment.
2013-07-01gold/Cary Coutant3-6/+40
* 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 PR gold/15662Cary Coutant2-2/+24
* 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 * powerpc.cc (Target_powerpc::symval_for_branch): Don't assertAlan Modra2-4/+17
on garbage collected .opd section. * 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-14gold/Cary Coutant7-87/+425
* 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-06gold/Cary Coutant1-0/+49
Add missing test case from last patch.
2013-06-052013-06-05 Alexander Ivchenko <alexander.ivchenko@intel.com>Cary Coutant4-7/+54
gold/ * 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-302013-05-30 Alexander Ivchenko <alexander.ivchenko@intel.com>Cary Coutant9-6/+221
Sriraman Tallam <tmsriram@google.com> * options.h (sort_section): New option. * output.h (Input_section_sort_section_prefix_special_ordering_compare): Rename from Input_section_sort_section_name_special_ordering_compare. (Input_section_sort_section_name_compare): New struct. * output.cc (Output_section::Input_section_sort_section_name_compare:: operator()): New function. (Output_section::sort_attached_input_sections): Use new sort function for .text if --sort-section=name is specified. * layout.cc (Layout::make_output_section): Add sorting by name when --sort-section=name is specified. * testsuite/Makefile.am (text_section_grouping): Test option --sort-section=name. * testsuite/Makefile.in: Regenerate. * testsuite/section_sorting_name.cc: New file. * testsuite/section_sorting_name.sh: New file.