aboutsummaryrefslogtreecommitdiff
path: root/gold
AgeCommit message (Collapse)AuthorFilesLines
2013-02-27 * target.h (Target::plt_fde_location, do_plt_fde_location): Declare.Alan Modra6-25/+303
* target.cc (Target::do_plt_fde_location): New function. * ehframe.h (class FDE): Add post_map field to u_.from_linker, accessor function, and constructor param. (struct Post_fde, Post_fdes): Declare. (Cie::write): Add post_fdes param. * ehframe.cc (Fde::write): Use plt_fde_location. (struct Post_fde): Define. (Cie::write): Stash FDEs added post merge mapping. (Eh_frame::add_ehframe_for_plt): Assert no new CIEs after mapping. Adjust Fde constructor call. Bump final_data_size_ for post map FDEs. (Eh_frame::do_sized_write): Arrange to write post map FDES after other FDEs. * powerpc.cc (Target_powerpc::do_plt_fde_location): New function. (Target_powerpc::has_glink): New function. (Target_powerpc::do_relax): Add eh_frame info for stubs. (struct Eh_cie, eh_frame_cie, glink_eh_frame_fde_64, glink_eh_frame_fde_32, default_fde): New data. (Stub_table::eh_frame_added_): New var. (Stub_table::find_long_branch_entry, stub_address, stub_offset): Make const. (Stub_table::add_eh_frame): New function. (Output_data_glink::add_eh_frame): New function. (Target_powerpc::make_glink_section): Call add_eh_frame.
2013-02-15 * options.h (DEFINE_uint64_alias): Define.Ian Lance Taylor2-0/+35
(class General_options): Add -Ttext-segment as an alias for -Ttext.
2013-02-15 * powerpc.cc (Stub_table::plt_off): New function, extracted from..Alan Modra2-46/+41
(Stub_table::do_write): ..here, two places. (Stub_table::plt_call_size): Use it here too.
2013-02-11 * descriptors.cc (Descriptors::close_all): New function.Ian Lance Taylor4-2/+49
* descriptors.h (class Descriptors): Declare close_all. (close_all_descriptors): New inline function. * plugin.cc: Include "descriptors.h". (Plugin_manager::cleanup): Call close_all_descriptors.
2013-02-06 * README: Update coding style link.Alan Modra2-1/+5
2013-01-29gold/Cary Coutant2-79/+205
* dwp.cc (File_list): New typedef. (Dwo_name_info_reader): New class. (Dwo_id_info_reader::Dwo_id_info_reader): Remove unused parameters. (Dwo_id_info_reader::visit_top_die): Remove unused member function. (Dwo_file::~Dwo_file): Delete input_file_ after obj_. (Dwo_file::read_executable): New function. (Dwo_file::read): Move common setup code to ... (Dwo_file::make_object): ... here. (dwp_options): Add --exec/-e. (usage): Likewise. (main): Likewise.
2013-01-27mention fixed bug in ChangeLogMike Frysinger1-0/+1
2013-01-24Default text reordering fix with a flag to turn it off.Sriraman Tallam8-19/+99
2013-01-24 Sriraman Tallam <tmsriram@google.com> * layout.cc (Layout::layout): Check for option text_reorder. (Layout::make_output_section): Ditto. * options.h (text_reorder): New option. * output.cc (Input_section_sort_compare): Remove special ordering of section names. (Output_section:: Input_section_sort_section_name_special_ordering_compare:: operator()): New function. (Output_section::sort_attached_input_sections): Use new sort function for .text. * output.h (Input_section_sort_section_name_special_ordering_compare): New struct. * testsuite/Makefile.am (text_section_grouping): Test option --no-text-reorder * testsuite/Makefile.in: Regenerate. * testsuite/text_section_grouping.sh: Check order of functions without default text reordering.
2013-01-18gold: enable new dtags by defaultMike Frysinger2-1/+5
The "new" dtags options have been around for 14+ years, and for all the targets that gold supports, these flags have always existed. So enable them by default. Having behavior be different from ld.bfd isn't new, and this behavior is the "better" one, so there shouldn't be a problem based on that. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-01-18ld: change --enable-new-dtags to only generate new dtagsMike Frysinger2-2/+9
The "new" dtags options have been around for 14+ years, so there shouldn't be a need to generate both new & old tags anymore. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-01-17 * powerpc.cc (Stub_table::find_plt_call_entry): Make typesAlan Modra2-6/+12
used in declaration and definition consistent. (Target_powerpc::symval_for_branch): Ditto.
2013-01-172013-01-16 Sriraman Tallam <tmsriram@google.com>Sriraman Tallam2-1/+5
* testsuite/plugin_final_layout.cc: Fix comment.
2013-01-162013-01-16 Sriraman Tallam <tmsriram@google.com>Sriraman Tallam3-1/+17
* layout.cc (Layout::layout): Do not do default sorting for text sections when section ordering is specified. (make_output_section): Ditto. * testsuite/plugin_final_layout.cc: Name the function sections to catch reordering issues.
2013-01-15bfd/Alan Modra2-8/+20
* elf64-ppc.c (ppc64_elf_size_stubs): Default shared libs to plt-thread-safe. gold/ * powerpc.cc (Target_powerpc::do_relax): Default shared libs to plt-thread-safe. ld/testsuite/ * ld-powerpc/tlsso.d: Adjust for plt-thread-safe stubs. * ld-powerpc/tlsso.g: Likewise. * ld-powerpc/tlsso.r: Likewise. * ld-powerpc/tlstocso.d: Likewise. * ld-powerpc/tlstocso.g: Likewise.
2013-01-14 * testsuite/Makefile.am (final_layout_script.lds): Handle .got section.Alan Modra3-2/+7
* testsuite/Makefile.in: Regenerate.
2013-01-14 * testsuite/Makefile.am (MOSTLYCLEANFILES): Add various output files.Alan Modra3-25/+46
* testsuite/Makefile.in: Regenerate.
2013-01-11 Fix mingw gold build with plugins enabledIan Lance Taylor8-6/+95
* Makefile.am: Replace -ldl with @DLOPEN_LIBS@. * configure.ac: Export DLOPEN_LIBS and add headers check. * plugin.cc: Handle non-dlfcn case. * Makefile.in: Regenerate. * config.in: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate.
2013-01-10Make linker scripts and section ordering via --section-ordering-file orSriraman Tallam5-9/+46
linker plugins work. This patch lets linker scripts take precedence. 2013-01-09 Sriraman Tallam <tmsriram@google.com> * output.h (sort_attached_input_sections): Change to be public. * script-sections.cc (Output_section_definition::set_section_addresses): Sort attached input sections according to section order before linker script assigns section addresses. (Orphan_output_section::set_section_addresses): Sort attached input sections according to section order before linker script assigns section addresses. * Makefile.am (final_layout.sh): Use a simple linker script to check if section ordering still works. * Makefile.in: Regenerate.
2013-01-09 * arm.cc (Target_arm::attributes_accept_div): New function.Ian Lance Taylor2-22/+91
(Target_arm::attributes_forbid_div): New function. (Target_arm::merge_object_attributes): Merge the Tag_DIV_use attribute using the same new functions as what bfd/elf32_arm.c does.
2013-01-07gold/Cary Coutant2-18/+15
PR gold/14993 * output.cc (Output_section::add_input_section): For incremental updates, don't track input sections that are allocated from patch space.
2013-01-07Properly install gold as default linkerH.J. Lu3-41/+22
PR gold/14897 * configure.ac (--enable-ld): Removed. (install_as_default): Set to yes only for --enable-gold=default or --disable-ld. * configure: Regenerated.
2013-01-07Add -fuse-ld= for GCC linker option compatibilityH.J. Lu2-3/+12
* options.h (General_options): Add -fuse-ld= for GCC linker option compatibility.
2013-01-05gold/Cary Coutant3-2/+7
* configure.ac: Fix typo restoring CXXFLAGS. * configure: Regenerate.
2013-01-04gold/Cary Coutant3-11/+29
* testsuite/Makefile.am (CXXLINK_S): New macro. (debug_msg_so.err, debug_msg_ndebug.err): Use CXXLINK_S. * testsuite/Makefile.in: Regenerate.
2013-01-02Update gold copyright year to 2013H.J. Lu2-2/+6
* version.cc (print_version): Update copyright year to 2013.
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.