aboutsummaryrefslogtreecommitdiff
path: root/gold
AgeCommit message (Collapse)AuthorFilesLines
2012-12-21 * layout.cc (Layout::special_ordering_of_input_section): NewIan Lance Taylor4-95/+100
function. (Layout::layout): If input section requires special ordering, must sort input sections. (Layout::make_output_section): May sort .text input sections. (Layout::is_section_name_prefix_grouped): Remove. * layout.h (class Layout): Declare special_ordering_of_input_section. Don't declare is_section_name_prefix_grouped. * output.cc (Output_section::add_input_section): Revert last change. (Output_section::Input_section_sort::match_file_name): Don't crash if called on output section data. (Output_section::Input_section_sort_compare): Sort based on special ordering. (Output_section::Input_section_sort_section_order_index_compare): Revert last patch. (Output_section::sort_attached_input_sections): Likewise.
2012-12-19Group text sections with prefixes .text.unlikely,.text.hot and .text.startupSriraman Tallam8-7/+265
by default. 2012-12-18 Sriraman Tallam <tmsriram@google.com> * layout.cc (Layout::is_section_name_prefix_grouped): New function. * layout.h (Layout::is_section_name_prefix_grouped): New function. * output.cc (Output_section::add_input_section): Check if section name contains special prefix. Keep input sections to sort such sections. (Output_section::Input_section_sort_section_order_index_compare ::operator()): Group sections according to prefixes. * (Output_section::sort_attached_input_sections): Add condition to Input_section_entry constructor call. * testsuite/Makefile.am (text_section_grouping): New test. * testsuite/Makefile.in: Regenerate. * testsuite/text_section_grouping.cc: New file. * testsuite/text_section_grouping.sh: New file.
2012-12-17Add copyright noticesNick Clifton7-2/+97
2012-12-15gold/Cary Coutant3-8/+22
* testsuite/Makefile.am (exception_separate_shared_12_test): Add --no-as-needed flag. (exception_separate_shared_12_test): Likewise. (incremental_copy_test): Likewise. * testsuite/Makefile.in: Regenerate.
2012-12-15gold/Cary Coutant2-2/+11
* dwp.cc (Dwp_output_file::add_cu_set): Check for duplicate CUs. (Dwp_output_file::Dwp_index::enter_set): Add assert.
2012-12-12 * powerpc.cc (class Track_tls): New.Alan Modra2-43/+157
(class Relocate, class Scan): Inherit Track_tls. (Target_powerpc::Scan::local, global): Track tls optimization and avoid creating plt entry for __tls_get_addr if all uses are optimized away. (Target_powerpc::Relocate::relocate): Update to use Track_tls.
2012-12-12 * options.h (General_options): Add --toc-sort/--no-toc-sort.Alan Modra4-5/+103
Replace no_toc_optimize with toc_optimize. * output.h (Output_section::input_sections): Provide non-const variant. * powerpc.cc (Powerpc_relobj::has_small_toc_reloc_, set_has_small_toc_reloc, has_small_toc_reloc): New variable and accessors. (Target_powerpc::Scan::local, global): Call set_has_small_toc_reloc. (class Sort_toc_sections): New. (Target_powerpc::do_finalize_sections): Sort toc sections. (Target_powerpc::Relocate::relocate): Update toc_optimize test.
2012-12-10gold/Roland McGrath3-22/+63
* testsuite/binary_unittest.cc (read_all): New function. (Sized_binary_test): Use it instead of ::read. * fileread.cc (do_read): Don't assume pread always reads the whole amount in a single call.
2012-12-10Add copyright noticesNick Clifton1-0/+13
2012-12-10 * powerpc.cc (Target_selector_powerpc::Target_selector_powerpc):Alan Modra2-23/+8
Set EM_PPC64 or EM_PPC here. (Target_selector_powerpc::do_recognize): Delete.
2012-12-10 * powerpc.cc (Powerpc_relobj::Powerpc_relobj): Init has14_ andAlan Modra2-1/+9
stub_table_. (Target_powerpc::Branch_info::make_stub): Don't omit addend.
2012-12-07gold/Roland McGrath2-2/+8
* testsuite/binary_unittest.cc (Sized_binary_test): Use open_descriptor rather than ::open.
2012-12-07 * configure.ac (HAVE_ZLIB): Use AM_ZLIB instead of AC_SEARCH_LIBS.Ian Lance Taylor1-0/+9
Use $ac_cv_header_zlib_h = yes as the condition in AM_CONDITIONAL. * aclocal.m4: Regenerate. * configure: Regenerate. * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate.
2012-12-07 * configure.ac (HAVE_ZLIB): Use AM_ZLIB instead of AC_SEARCH_LIBS.Ian Lance Taylor5-4/+26
Use $ac_cv_header_zlib_h = yes as the condition in AM_CONDITIONAL. * aclocal.m4: Regenerate. * configure: Regenerate. * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate.
2012-12-07 * powerpc.cc (Stub_table::do_write): Delete redundant AddressAlan Modra2-3/+17
typedef and invalid_address constant. (Output_data_glink, Stub_table, Target_powerpc): Explicitly instantiate constants.
2012-12-07 * options.h (General_options): Add no_toc_optimize.Alan Modra3-0/+105
* powerpc.cc (ok_lo_toc_insn): New function. (Target_powerpc::Relocate::relocate): Optimize toc access sequences.
2012-12-06 * options.h (General_options): Add plt_align, plt_static_chain,Alan Modra3-92/+266
plt_thread_safe. Update stub_group_size help text. * powerpc.cc (Target_powerpc::plt_thread_safe): New access function for new plt_thread_safe_ var. (use_plt_offset): Correct comments. (Target_powerpc::do_relax): Look for thread creation symbols to determine default plt_thread_safe value. Clear plt call stubs as well as branch stubs each iteration. (add_2_2_11, add_12_12_11, bnectr_p4, cmpldi_2_0, xor_11_11_11): New insn constants. (l, hi, ha, write_insn): Move earlier. (Stub_table): Delete prev_size, add last_plt_size and last_branch_size. (Stub_table::clear_stubs): Rename from clear_long_branch_stubs, clear plt stubs too. (Stub_table::update_size): Adjust. (Stub_table::prev_size, set_prev_size): Delete. (Stub_table::stub_align): Let --plt-align affect result. (Stub_table::plt_call_size): Calculate sizes for various stubs. (Stub_table::branch_stub_size): Use last_plt_size in address calc. (Stub_table::add_plt_call_stub): Pass iterator to plt_call_size. (Stub_table::do_write): Support more stub variants.
2012-12-04 * powerpc.cc (Powerpc_relobj::do_scan_relocs): Delete.Alan Modra2-11/+12
(Target_powerpc::do_define_standard_symbols): New function.
2012-12-03typo fixAlan Modra1-1/+1
2012-12-03 * output.h: Formatting, whitespace.Alan Modra2-104/+136
2012-12-03 * layout.h (Layout::get_executable_sections): Declare.Alan Modra7-369/+1572
* layout.cc (Layout::get_executable_sections): New function. * arm.cc (Target_arm::group_sections): Use it. (Arm_output_section::group_sections): Delete now redundant test. * output.cc (Output_reloc::Output_reloc): Add is_relative. param to handle relative relocs. * output.h (Output_reloc::Output_reloc <absolute reloc>): Likewise. (Output_data_reloc::add_absolute): Adjust. (Output_data_reloc::add_relative): New function. (Output_data::reset_data_size): New function. (Output_relaxed_input_section::set_relobj, set_shndx): New functions. (Output_section::set_addralign): New function. (Output_section::checkpoint_set_addralign): New function. (Output_section::clear_section_offsets_need_adjustment): New function. (Output_section::input_sections): Make public. * powerpc.cc (class Output_data_brlt_powerpc): New. (class Stub_table, class Stub_control): New. (Powerpc_relobj::has14_, set_has_14bit_branch, has_14bit_branch, stub_table_, set_stub_table, stub_table): New vectors and accessor functions. (Target_powerpc::do_may_relax, do_relax, push_branch, new_stub_table, stub_tables, brlt_section, group_sections, add_branch_lookup_table, find_branch_lookup_table, write_branch_lookup_table, make_brlt_section): New functions. (Target_powerpc::struct Sort_sections, class Branch_info): New. (Target_powerpc::brlt_section_, stub_tables_, branch_lookup_table_, branch_info_): New vars. (Target_powerpc::make_plt_entry, make_local_ifunc_plt_entry): Don't make call stubs here. (Output_data_glink): Remove all call stub handling from this class. (Target_powerpc::Scan::local, global): Save interesting branch relocs and relocs for ifunc. Adjust calls to plt entry functions. (Target_powerpc::do_finalize_sections): Only make reg save/restore functions on final link. (Target_powerpc::Relocate::relocate): Adjust lookup of call stubs. Handle long branch destinations too. (Target_powerpc::do_dynsym_value, do_plt_address_for_global, do_plt_address_for_local): Adjust lookup of plt call stubs.
2012-11-30 * powerpc.c (Target_powerpc::Scan::global): Don't emit relativeAlan Modra2-5/+14
relocs against protected symbols when building 32-bit shared libs.
2012-11-30 * powerpc.cc (Target_powerpc::make_plt_section): Add symtabAlan Modra2-14/+29
param. Call got_section() to make .got. Update all callers and their callers and so on.
2012-11-30 * powerpc.cc (Powerpc_relobj::do_scan_relocs): Make STB_LOCALAlan Modra2-10/+24
_GLOBAL_OFFSET_TABLE_ rather than STB_WEAK. (Output_data_got_powerpc::make_header): Update _GLOBAL_OFFSET_TABLE_ value if it already exists.
2012-11-20Fix TLS to LE optimization for x32H.J. Lu2-1/+13
PR gold/14858 * x86_64.cc (Relocate::tls_ld_to_le): Support x32.
2012-11-15bfd/Roland McGrath2-2/+7
* elf32-arm.c (elf32_arm_nacl_plt0_entry): Use bic rather than bfc instruction for data sandboxing. gold/ * arm.cc (Output_data_plt_arm_nacl::first_plt_entry): Use bic rather than bfc instruction for data sandboxing.
2012-11-08Regenerate.Alan Modra2-0/+9
2012-11-05 * configure.ac: Apply 2012-09-10 change to config.in here.Alan Modra3-10/+20
* configure: Regenerate.
2012-11-05 * powerpc.cc (Powerpc_relobj): Delete "Offset" typedef.Alan Modra2-43/+75
(struct Opd_ent): Use "Address" rather than "Offset". (Output_data_got_powerpc::got_base_offset): Return Valtype. (Target_powerpc::got_section): Make public. (Target_powerpc::scan_relocs): Move code setting symbols.. (Powerpc_relobj::do_scan_relocs): ..to here, new function. Create _SDA_BASE_ only when referenced.
2012-11-02gold/Roland McGrath2-3/+7
* i386.cc (Target_i386::relocate_relocs): Remove extraneous typename from last change.
2012-11-01gold/Roland McGrath10-83/+100
* target.h (Sized_target::relocate_relocs): Use Elf_Off for offset_in_output_section parameter. (Sized_target::relocate_special_relocatable): Likewise. * arm.cc (Target_arm::relocate_relocs): Likewise. (Target_arm::relocate_special_relocatable): Likewise. * i386.cc (Target_i386::relocate_relocs): Likewise. * powerpc.cc (Target_powerpc::relocate_relocs): Likewise. * sparc.cc (Target_sparc::relocate_relocs): Likewise. * target-reloc.h (relocate_relocs): Likewise. * testsuite/testfile.cc (Target_test): Likewise. * tilegx.cc (Target_tilegx::relocate_relocs): Likewise. * x86_64.cc (Target_x86_64::relocate_relocs): Likewise.
2012-11-01gold/Roland McGrath2-4/+7
* system.h: Move inclusion of <clocale> to after <libintl.h> in [ENABLE_NLS] section, and separately at top of [!ENABLE_NLS] section.
2012-11-01gold/Roland McGrath2-2/+7
* descriptors.cc (set_close_on_exec): Add ATTRIBUTE_UNUSED to the parameter, which is unused in the [!F_SETFD] case.
2012-11-01gold/Roland McGrath4-15/+23
* dwarf_reader.cc (Sized_elf_reloc_mapper::symbol_section): Cast SYMNDX to off_t before comparing it to this->data_size(). * output.cc (Output_symtab_xindex::endian_do_write): Likewise. * incremental.cc (Output_section_incremental_inputs::do_write): Cast GLOBAL_SYM_COUNT to off_t before comparing it to SYMTAB_SIZE.
2012-11-01gold/Roland McGrath2-0/+5
* nacl.cc: Include "libiberty.h" for vasprintf declaration.
2012-10-30bfd:Nick Clifton2-3/+25
* elf32-arm.c (elf32_arm_print_private_bfd_data): Recognise and display the new ARM hard-float/soft-float ABI flags for EABI_VER5 (elf32_arm_post_process_headers): Add the hard-float/soft-float ABI flag as appropriate for ET_DYN/ET_EXEC in EABI_VER5. binutils: * readelf.c (decode_ARM_machine_flags): Recognise and display the new ARM hard-float/soft-float ABI flags for EABI_VER5. Split out the code for EABI_VER4 and EABI_VER5 to allow this. elfcpp: * arm.h: New enum for EABI soft- and hard-float flags. gold: * gold.cc (Target_arm::do_adjust_elf_header): Add the hard-float/soft-float ABI flag as appropriate for ET_DYN/ET_EXEC in EABI_VER5. include: * elf/arm.h (EF_ARM_ABI_FLOAT_SOFT): New define. (EF_ARM_ABI_FLOAT_HARD): Likewise. ld/testsuite: * ld-arm/eabi-hard-float.s: New test source. * ld-arm/eabi-soft-float.s: New test source. * ld-arm/eabi-hard-float.d: New test. * ld-arm/eabi-soft-float.d: New test. * ld-arm/eabi-soft-float-ABI4.d: New test. * ld-arm/eabi-soft-float-r.d: New test. * ld-arm/arm-elf.xp: Use the new tests. binutils: PR binutils/14779 * configure.in: Add checks for wchar.h and mbstate_t. * config.in: Regenerate. * configure: Regenerate. * readelf.c: Conditionally include wchar.h. (print_symbol): Conditionally use mbstate_t.
2012-10-29gold/Cary Coutant2-12/+51
* dwp.cc (usage): Add file and exit status parameters; add --help and --version options. (print_version): New function. (main): Add --help and --version options.
2012-10-26Add final_layout_sequence.txt to MOSTLYCLEANFILESH.J. Lu3-1/+8
* testsuite/Makefile.am (MOSTLYCLEANFILES): Add final_layout_sequence.txt. * testsuite/Makefile.in: Regenerated.
2012-10-25Strip out -Wp,-D_FORTIFY_SOURCE= for gold testsH.J. Lu3-7/+54
* testsuite/Makefile.am (COMPILE1): New variable. Renamed from COMPILE generated by automake. (LINK1): Likewise. (CXXCOMPILE1): Likewise. (CXXLINK1): Likewise. (COMPILE): Strip out -Wp,-D_FORTIFY_SOURCE= from COMPILE1. (LINK): Likewise. (CXXCOMPILE): Likewise. (CXXLINK): Likewise. * testsuite/Makefile.in: Regenerated.
2012-10-25Issue a fatal error on bad fwrite returnH.J. Lu2-1/+8
* dwp.cc (Dwo_file::record_target_info): Issue a fatal error on bad fwrite return.
2012-10-25Use section_offset_type in remap_str_offsetH.J. Lu2-2/+7
* dwp.cc (Dwo_file::remap_str_offset): Use section_offset_type on val.
2012-10-24gold/Cary Coutant14-2/+7091
* testsuite/Makefile.am (TEST_OBJCOPY): New macro. * testsuite/Makefile.in: Regenerate. * testsuite/dwp_test.h: New source file. * testsuite/dwp_test_1.cc: New source file. * testsuite/dwp_test_1.s: New source file. * testsuite/dwp_test_1.sh: New source file. * testsuite/dwp_test_1b.cc: New source file. * testsuite/dwp_test_1b.s: New source file. * testsuite/dwp_test_2.cc: New source file. * testsuite/dwp_test_2.s: New source file. * testsuite/dwp_test_2.sh: New source file. * testsuite/dwp_test_main.cc: New source file. * testsuite/dwp_test_main.s: New source file.
2012-10-24gold/Cary Coutant7-153/+2451
* dwp.h: New header file. * dwp.cc: New source file. * gold.h: Move shared declarations to system.h. * system.h: New header file. * Makefile.am: Add dwp. * Makefile.in: Regenerate.
2012-10-23gold/Cary Coutant4-36/+101
* dwarf_reader.cc (Dwarf_ranges_table::read_range_list): Call Dwarf_info_reader::read_from_pointer. (Dwarf_pubnames_table::read_header): Likewise. (Dwarf_pubnames_table::next_name): Likewise. (Dwarf_die::read_attributes): Likewise. (Dwarf_die::skip_attributes): Likewise. (Dwarf_info_reader::read_from_pointer): New function template. * dwarf_reader.h (Dwarf_ranges_table): Add dwinfo_. (Dwarf_pubnames_table): Likewise. (Dwarf_info_reader::read_from_pointer): New function template. * gdb-index.cc (Gdb_index_info_reader): Adjust call to Dwarf_pubnames_table ctor.
2012-10-23gold/Cary Coutant3-7/+25
* dwarf_reader.cc (Dwarf_info_reader::do_parse): Use stored abbrev_shndx. * dwarf_reader.h (Dwarf_info_reader::Dwarf_info_reader): Initialize abbrev_shndx_. (Dwarf_info_reader::set_abbrev_shndx): New method. (Dwarf_info_reader::abbrev_shndx_): New data member.
2012-10-23gold/Cary Coutant3-41/+90
* dwarf_reader.cc (make_elf_reloc_mapper): Check size and endianness from object, not parameters. (Dwarf_info_reader::parse): Likewise. * object.h (Relobj::elfsize, Relobj::is_big_endian): New methods. (Relobj::do_elfsize, Relobj::do_is_big_endian): New methods. (Sized_relobj::do_elfsize, Sized_relobj::do_is_big_endian): New methods.
2012-10-23gold/Cary Coutant3-0/+18
* fileread.cc (Input_file::Input_file): New constructor. * fileread.h (class Input_file): Add new constructor.
2012-10-18 PR gold/14727Alan Modra2-1/+9
* object.cc (Relobj::is_section_name_included): Also match .sdata personality section.
2012-10-18 * target-reloc.h (class Default_comdat_behavior): New, package up..Alan Modra8-63/+80
(get_comdat_behaviour): ..this. (relocate_section): Add Relocate_comdat_behavior template arg, adjust code to suit. * arm.cc (Target_arm::relocate_section): Adjust to suit. (Target_arm::scan_reloc_section): Likewise. * i386.cc (Target_i386::relocate_section): Likewise. * sparc.cc (Target_sparc::relocate_section): Likewise. * tilegx.cc (Target_tilegx::relocate_section): Likewise. * x86_64.cc (Target_x86_64::relocate_section): Likewise. * powerpc.cc (class Relocate_comdat_behavior): New. (Target_powerpc::relocate_section): Don't zap opd relocs. Supply gold::relocate_section with new template arg.
2012-10-17 * powerpc.cc (Target_powerpc::Scan::local, global): Always emitAlan Modra2-21/+79
dynamic relocs for GOT_TPREL got entries, without symbol if resolving locally. (Target_powerpc::do_gc_add_reference): Don't add for dynamic objects. (Target_powerpc::scan_relocs): Define _GLOBAL_OFFSET_TABLE_ early. (Target_powerpc::Relocate:relocate): REL32 reloc may be unaligned.