gdb/testsuite/
[binutils-gdb.git] / gold / ChangeLog
index 979901f18f5d76313dc3e0bd5ba9cd50951e7660..188cb32ccf2cbe0ac95e2217d872fc32b32cff93 100644 (file)
@@ -1,3 +1,406 @@
+2010-06-29  Doug Kwan  <dougkwan@google.com>
+
+       * arm-reloc-property.cc (Arm_reloc_property::Arm_reloc_property):
+       Initialize USE_SYMBOL_.
+       * arm-reloc-property.h (Arm_reloc_property::uses_symbol): New method
+       definition.
+       (Arm_reloc_property::uses_symbol_): New data member declaration.
+       * arm.cc (Target_arm::Relocate::relocate): Exit early if relocation
+       uses symbol value and symbol is undefined but not weakly undefined.
+
+2010-06-28  Rafael Espindola  <espindola@google.com>
+
+       * plugin.cc (Plugin::load): Use dlerror.
+
+2010-06-26  Jeffrey Yaskin  <jyasskin@google.com>
+
+       * symtab.cc (detect_odr_violations): When reporting an ODR
+       violation, report an object where the symbol is defined.
+
+2010-06-25  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Target_arm::can_check_for_functions_pointers): Return true.
+       (Target_arm::section_may_have_icf_unsafe_pointers): New method
+       definition.
+       (Target_arm::Scan::local_reloc_may_be_function_pointer,
+       Target_arm::Scan::global_reloc_may_be_function_pointer): Implement
+       target hook to detect function points.
+       (Target_arm::Scan::possible_function_pointer_reloc): New method.
+       * icf.h (Icf::check_section_for_function_pointers): Change type of
+       parameter SECTION_NAME to const reference to std::string.  Use
+       target hook to determine if section may have unsafe pointers.
+       * target.h (Target::section_may_have_icf_unsafe_pointers): New
+       method definition.
+
+2010-06-21  Rafael Espindola  <espindola@google.com>
+
+       * fileread.cc (Input_file::find_fie): New
+       (Input_file::open): Use Input_file::find_fie.
+       * fileread.h (Input_file::find_fie): New
+       * plugin.cc (set_extra_library_path): New.
+       (Plugin::load): Add set_extra_library_path to the transfer vector.
+       (Plugin_manager::set_extra_library_path): New.
+       (Plugin_manager::add_input_file): Use the extra search path if set.
+       (set_extra_library_path(): New.
+       * plugin.h (Plugin_manager): Add set_extra_library_path and
+       extra_search_path_.
+
+2010-06-19  Cary Coutant  <ccoutant@google.com>
+
+       * layout.cc (gdb_sections): Add .debug_types.
+       (lines_only_debug_sections): Likewise.
+
+2010-06-18  Rafael Espindola  <espindola@google.com>
+
+       * plugin.cc (add_input_file,add_input_library)
+       (Plugin_manager::add_input_file): Make filename arguments const.
+       * plugin.h (Plugin_manager::add_input_file): Make filename arguments
+       const.
+
+2010-06-16  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Target_arm::do_finalize_sections): Do not emit an
+       .ARM.attributes section if we have not merged any input
+       attributes sections.
+
+2010-06-15  Viktor Kutuzov  <vkutuzov@accesssoftek.com>
+
+       * arm.cc: Allow combining objects with no EABI version
+       information.
+
+2010-06-15  Rafael Espindola  <espindola@google.com>
+
+       * plugin.cc (Plugin_hook::run): Set in_real_elf for the start symbol.
+
+2010-06-15  Viktor Kutuzov  <vkutuzov@accesssoftek.com>
+
+       * fileread.cc: Only #include <sys/uio.h> if HAVE_READV.
+       (struct iovec): Correct !HAVE_READV definition.
+
+2010-06-10  Cary Coutant  <ccoutant@google.com>
+
+       * object.cc (Sized_relobj::do_layout): Defer layout for reloc sections.
+       (Sized_relobj::do_layout_deferred_sections): Do layout for deferred
+       reloc sections.
+       * object.h (Sized_relobj::deferred_layout_relocs_): New data member.
+
+       PR 11683
+       * symtab.h (Symbol::is_placeholder): New member function.
+       * target-reloc.h (relocate_section): Check for placeholder symbols.
+
+       * testsuite/Makefile.am (plugin_test_8): New test.
+       (plugin_test_9): New test.
+       * testsuite/Makefile.in: Regenerate.
+
+2010-06-09  Nick Clifton  <nickc@redhat.com>
+
+       * yyscript.y (input_list_element): Allow strings prefixed with
+       the '-' character.  Treat these as libraries.
+       * script.cc (script_add_library): New function.  Adds a library
+       specified by "-l<name>" found in an input script.
+       * script-c.h: Add prototype for script_add_library.
+
+2010-06-07  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Target_arm::do_relax): Reserve more space for stubs.
+       Restrict stub-group size to be within long conditional branch
+       range when working around cortex-A8 erratum.
+
+2010-06-07  Damien Diederen  <dd@crosstwine.com>
+
+       * gold-threads.cc (Lock_impl_threads::Lock_impl_threads): Correct
+       #ifdef typo.
+
+2010-06-03  Sriraman Tallam  <tmsriram@google.com>
+
+       PR gold/11658
+       * output.cc
+       (Output_section::Input_section_sort_entry::compare_section_ordering):
+       Change to return non-zero correctly.
+       (Output_section::Input_section_sort_section_order_index_compare
+       ::operator()): Change to fix ambiguity in comparisons.
+
+2010-06-01  Sriraman Tallam  <tmsriram@google.com>
+
+       * gold.h (is_wildcard_string): New function.
+       * layout.cc (Layout::layout): Pass this pointer to add_input_section.
+       (Layout::layout_eh_frame): Ditto.
+       (Layout::find_section_order_index): New method.
+       (Layout::read_layout_from_file): New method.
+       * layout.h (Layout::find_section_order_index): New method.
+       (Layout::read_layout_from_file): New method.
+       (Layout::input_section_position_): New private member.
+       (Layout::input_section_glob_): New private member.
+       * main.cc (main): Call read_layout_from_file here.
+       * options.h (--section-ordering-file): New option.
+       * output.cc (Output_section::input_section_order_specified_): New
+       member.
+       (Output_section::Output_section): Initialize new member.
+       (Output_section::add_input_section): Add new parameter.
+       Keep input sections when --section-ordering-file is used.
+       (Output_section::set_final_data_size): Sort input sections when
+       section ordering file is specified.
+       (Output_section::Input_section_sort_entry): Add new parameter.
+       Check sorting type.
+       (Output_section::Input_section_sort_entry::compare_section_ordering):
+       New method.
+       (Output_section::Input_section_sort_compare::operator()): Change to
+       consider section_order_index.
+       (Output_section::Input_section_sort_init_fini_compare::operator()):
+       Change to consider section_order_index.
+       (Output_section::Input_section_sort_section_order_index_compare
+       ::operator()): New method.
+       (Output_section::sort_attached_input_sections): Change to sort
+       according to section order when specified.
+       (Output_section::add_input_section<32, true>): Add new parameter.
+       (Output_section::add_input_section<64, true>): Add new parameter.
+       (Output_section::add_input_section<32, false>): Add new parameter.
+       (Output_section::add_input_section<64, false>): Add new parameter.
+       * output.h (Output_section::add_input_section): Add new parameter.
+       (Output_section::input_section_order_specified): New
+       method.
+       (Output_section::set_input_section_order_specified): New method.
+       (Input_section::Input_section): Initialize section_order_index_.
+       (Input_section::section_order_index): New method.
+       (Input_section::set_section_order_index): New method.
+       (Input_section::section_order_index_): New member.
+       (Input_section::Input_section_sort_section_order_index_compare): New
+       struct.
+       (Output_section::input_section_order_specified_): New member.
+       * script-sections.cc (is_wildcard_string): Delete and move modified
+       method to gold.h.
+       (Output_section_element_input::Output_section_element_input): Modify
+       call to is_wildcard_string.
+       (Output_section_element_input::Input_section_pattern
+       ::Input_section_pattern): Ditto.
+       (Output_section_element_input::Output_section_element_input): Ditto.
+       * testsuite/Makefile.am (final_layout): New test case.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/final_layout.cc: New file.
+       * testsuite/final_layout.sh: New file.
+
+2010-06-01  Rafael Espindola  <espindola@google.com>
+
+       * plugin.cc (Plugin::load): Pass the output name to the plugin.
+
+2010-06-01  Rafael Espindola  <espindola@google.com>
+
+       * plugin.cc (Sized_pluginobj::::do_add_symbols): Correctly set the
+       visibility of symbols.
+
+2010-05-27  Doug Kwan  <dougkwan@google.com>
+
+       * object.cc (Sized_relobj::do_finalize_local_symbols): Use offset
+       from start of output section instead of address for a local symbol
+       in a merged or relaxed section when doing a relocatable link.
+
+2010-05-26  Rafael Espindola  <espindola@google.com>
+
+       PR 11604
+       * gold/object.cc(Sized_relobj::do_layout_deferred_sections): Avoid
+       adding sections the garbage collector removed.
+       * gold/testsuite/Makefile.am: Add test.
+       * gold/testsuite/Makefile.in: Regenerate.
+       * gold/testsuite/plugin_test_7.sh: New.
+       * gold/testsuite/plugin_test_7_1.c: New.
+       * gold/testsuite/plugin_test_7_2.c: New.
+
+2010-05-26  Rafael Espindola  <espindola@google.com>
+
+       * script-sections.cc (Output_section_definition::set_section_addresses):
+       Check for --section-start.
+
+2010-05-26  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Arm_scan_relocatable_relocs): New class.
+       (Target_arm::relocate_special_relocatable): New method.
+       (Arm_relocate_functions::arm_branch_common): Handle relocatable link.
+       (Arm_relocate_functions::thumb_branch_common): Same.
+       (Target_arm::scan_relocatable_relocs): Use Arm_scan_relocatable_relocs
+       instead of Default_scan_relocatable_relocs.
+       * target-reloc.h (relocate_for_relocatable): Let target handle
+       relocation strategy Relocatable_relocs::RELOC_SPECIAL.
+       * target.h (Sized_target::relocate_special_relocatable): New method.
+
+2010-05-25  Viktor Kutuzov  <vkutuzov@accesssoftek.com>
+
+       * timer.cc: Only #include <sys/times.h> if HAVE_TIMES is defined.
+
+2010-05-23  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Arm_input_section::do_output_offset): Use convert_types
+       instead of a cast.
+       (Target_arm::apply_cortex_a8_workaround): Rewrite a conditional branch
+       with a direct branch, not a conditional branch, to a stub.
+       * merge.cc (Output_merge_base::record_input_section): New method
+       defintion.
+       (Output_merge_data::do_add_input_section): Record input section if
+       keeps-input-sections flag is set.
+       (Output_merge_string::do_add_input_section): Ditto.
+       * merge.h (Output_merge_base::Output_merge_base): Initialize new data
+       members KEEPS_INPUT_SECTIONS_, FIRST_RELOBJ_, FIRST_SHNDX_ and
+       INPUT_SECTIONS_.
+       (Output_merge_base::keeps_input_sections,
+       Output_merge_base::set_keeps_input_sections,
+       Output_merge_base::first_relobj, Output_merge_base::first_shndx): New
+       method definitions.
+       (Output_merge_base::Input_sections): New type declaration.
+       (Output_merge_base::input_sections_begin,
+       Output_merge_base::input_sections_end,
+       Output_merge_base::do_set_keeps_input_sections): New method definitions.
+       (Output_merge_base::bool keeps_input_sections_,
+       Output_merge_base::first_relobj_, Output_merge_base::first_shndx_,
+       Output_merge_base::input_sections_): New data members.
+       (Output_merge_data::do_set_keeps_input_sections): New method
+       defintion.
+       (Output_merge_string::do_set_keeps_input_sections): Ditto.
+       * output.cc (Output_section::Input_section::relobj): Move method
+       defintion from class declaration to here and handle merge sections.
+       (Output_section::Input_section::shndx): Ditto.
+       (Output_section::Output_section): Remove initializations of removed
+       data members and initialize new data member LOOKUP_MAPS_.
+       (Output_section::add_input_section): Set keeps-input-sections flag
+       for a newly created merge output section as appropriate.  Adjust code
+       to use Output_section_lookup_maps class.
+       (Output_section::add_relaxed_input_section): Adjst code for lookup
+       maps code refactoring.
+       (Output_section::add_merge_input_section): Add a new parameter
+       KEEPS_INPUT_SECTION.  Adjust code to use Output_section_lookup_maps
+       class.  If adding input section to a newly created merge output
+       section fails, remove the new merge section.
+       (Output_section::convert_input_sections_in_list_to_relaxed_input_sections):
+       Adjust code for use of the Output_section_lookup_maps class.
+       (Output_section::find_merge_section): Ditto.
+       (Output_section::build_lookup_maps): New method defintion.
+       (Output_section::find_relaxed_input_section): Adjust code to use
+       Output_section_lookup_maps class.
+       (Output_section::get_input_sections): Export merge sections.  Adjust
+       code to use Output_section_lookup_maps class.
+       (Output_section:::add_script_input_section): Adjust code to use
+       Output_section_lookup_maps class.  Update lookup maps for merge
+       sections also.
+       (Output_section::discard_states): Use Output_section_lookup_maps.
+       (Output_section::restore_states): Same.
+       * output.h (Merge_section_properties): Move class defintion out of
+       Output_section.
+       (Output_section_lookup_maps): New class.
+       (Output_section::Input_section::is_merge_section): New method
+       defintion.
+       (Output_section::Input_section::relobj): Move defintion out of class
+       defintion.  Declare method only.
+       (Output_section::Input_section::shndx): Ditto.
+       (Output_section::Input_section::output_merge_base): New method defintion.
+       (Output_section::Input_section::u2_.pomb): New union field.
+       (Output_section::Merge_section_by_properties_map,
+       Output_section::Output_section_data_by_input_section_map,
+       Output_section::Ouptut_relaxed_input_section_by_input_section_map):
+       Remove types.
+       (Output_section::add_merge_input_section): Add new parameter
+       KEEPS_INPUT_SECTIONS.
+       (Output_section::build_lookup_maps): New method declaration.
+       (Output_section::merge_section_map_,
+       Output_section::merge_section_by_properties_map_,
+       Output_section::relaxed_input_section_map_,
+       Output_section::is_relaxed_input_section_map_valid_): Remove data
+       members.
+       (Output_section::lookup_maps_): New data member.
+
+2010-05-21  Doug Kwan  <dougkwan@google.com>
+
+       PR gold/11619
+       * arm.cc (Arm_input_section::do_output_offset): Add a cast to
+       avoid a compilation error.
+
+2010-05-19  Rafael Espindola  <espindola@google.com>
+
+       * script-sections.cc (Output_section_definition::allocate_to_segment):
+       Update the phdrs_list even when the output section is NULL.
+       * testsuite/Makefile.am: Add test.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/script_test_9.cc: New.
+       * testsuite/script_test_9.sh: New.
+       * testsuite/script_test_9.t: New.
+
+2010-05-19  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Arm_input_section::original_size): New method.
+       (Arm_input_section::do_addralign): Add a cast.
+       (Arm_input_section::do_output_offset): Remove static cast.
+       (Arm_input_section::original_addralign,
+        Arm_input_section::original_size_): Change type to uint32_t.
+       (Arm_input_section::init): Add safe casts for section alignment
+       and size.
+       (Arm_input_section::set_final_data_size): Do not set address and
+       offset of stub table.
+       (Arm_output_section::fix_exidx_coverage): Change use of of
+       Output_section::Simple_input_section to that of
+       Output_section::Input_section.
+       (Target_arm::do_relax): Set addresses and file offsets of Stub_tables
+       except for the first pass.
+       * output.cc (Output_section::get_input_sections): Change type of
+       input_sections to std::list<Input_section>.
+       (Output_section::add_script_input_section): Rename from
+       Output_section::add_simple_input_section.  Change type of SIS
+       parameter from Simple_input_section to Input_section.
+       * output.h (Output_section::Simple_input_section): Remove class.
+       (Output_section::Input_section): Change class visibility to public.
+       (Output_section::Input_section::addralign): Use stored alignments
+       for special input sections if set.
+       (Output_section::Input_section::set_addralign): New method.
+       (Output_section::get_input_sections): Change parameter type from
+       list of Simple_input_section to list of Input_section.
+       (Output_section::add_script_input_section): Rename from
+       Output_section::add_simple_input_section. Change first parameter's
+       type from Simple_input_section to Input_section and remove the
+       second and third parameters.
+       * script-sections.cc (Input_section::Input_section_list): Change
+       type to list of Output_section::Input_section/
+       (Input_section_info::Input_section_info): Change parameter type of
+       INPUT_SECTION to Output_section::Input_section.
+       (Input_section_info::input_section): Change return type.
+       (Input_section_info::input_section_): Change type to
+       Output_section::Input_section.
+       (Output_section_element_input::set_section_addresses): Adjust code
+       to use Output_section::Input_section instead of
+       Output_section::Simple_input_section.  Adjust code for renaming
+       of Output_section::add_simple_input_section.
+       (Orphan_output_section::set_section_addresses): Ditto.
+
+2010-05-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * gold.h (Unordered_multimap, Unordered_map): Fix defines for
+       when neither HAVE_TR1_UNORDERED_MAP nor HAVE_EXT_HASH_MAP are set.
+
+2010-05-18  Rafael Espindola  <espindola@google.com>
+
+       * options.cc (General_options::finalize): Handle -nostdlib.
+       * options.h (nostdlib): New option.
+       * script.cc (script_add_search_dir): Handle -nostdlib.
+
+2010-05-12  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Target_arm::do_finalize_sections): Create an empty
+       attributes section only if there no attributes section after merging.
+       (Target_arm::merge_object_attributes): Move value of
+       Tag_MPextension_use_legacy to that of Tag_MPextension_use.
+       Handle Tag_DIV_use and Tag_MPextension_use_legacy.
+       * testsuite/Makefile.am (check_SCRIPTS): Add arm_attr_merge.sh
+       (check_DATA): Add arm_attr_merge_6.stdout, arm_attr_merge_6r_stdout
+       and arm_attr_merge_7.stdout.
+       (arm_attr_merge_6.stdout, arm_attr_merge_6 arm_attr_merge_6a.o
+       arm_attr_merge_6b.o, arm_attr_merge_6r.stdout, arm_attr_merge_6r,
+       arm_attr_merge_7.stdout, arm_attr_merge_7, arm_attr_merge_7a.o,
+       arm_attr_merge_7b.o): New rules.
+       (MOSTLYCLEANFILES): Add arm_attr_merge_6, arm_attr_merge_6r and
+       arm_attr_merge_7
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/arm_attr_merge.sh: New file.
+       * testsuite/arm_attr_merge_[67][ab].s: Same.
+
+2010-05-05  Nick Clifton  <nickc@redhat.com>
+
+       * po/es.po: Updated Spanish translation.
+
 2010-04-27  H.J. Lu  <hongjiu.lu@intel.com>
 
        * Makefile.am (install-exec-local): Properly install gold as
        Output_merge_data.
        * output.cc (Output_section::add_merge_input_section): Simplify
        code and return status of Output_merge_base::add_input_section.
-       Update merge section map only if Output_merge_base::add_input_section 
+       Update merge section map only if Output_merge_base::add_input_section
        returns true.
 
 2010-04-07  Doug Kwan  <dougkwan@google.com>
        (Chunked_vector::reserve): Call reserve method of all Element_vectors.
        (Chunked_vector::size): Return size_.
        (Chunked_vector::push_back): Use size_ to find insert position.
-       (Chunked_vector::size_): New data member. 
+       (Chunked_vector::size_): New data member.
        (Stringpool_template::set_no_zero_null): Assert string set is empty.
        (Stringpool_template::new_key_offset): New method declaration.
        (Stringpool_template::offset_): New data member.
        (Target_arm::Scan::global): Ditto.
        (Target_arm::Relocate::relocate_tls): Handle static linking.  Fix
        all incorrectly implemented relocations.
-       (Target_arm::fix_exidx_coverage): Pass layout to 
+       (Target_arm::fix_exidx_coverage): Pass layout to
        Arm_output_section::fix_exidx_coverage.
        * layout.cc (Layout::section_name_mapping): Remove trailing dots
        from ".ARM.exidx." and ".ARM.extab.".
        (Arm_relocate_functions::thumb_branch_common): Ditto.
        * testsuite/Makefile.am (check_SCRIPTS): Add arm_branch_in_range.sh.
        (check_DATA): Add arm_bl_in_range.stdout, arm_bl_out_of_range.stdout
-       thumb_bl_in_range.stdout, thumb_bl_out_of_range.stdout, 
+       thumb_bl_in_range.stdout, thumb_bl_out_of_range.stdout,
        thumb2_bl_in_range.stdout and thumb2_bl_out_of_range.stdout.
        (arm_bl_in_range.stdout, arm_bl_in_range, arm_bl_in_range.o,
        arm_bl_out_of_range.stdout, arm_bl_out_of_range,
        (Target_arm::Relocate::relocate): Adjust code to call
        Arm_relocation_functions::arm_branch_common and
        Arm_relocation_functions::thumb_branch_common instead of their removed
-       wrappers.  Merge switch-cases together to reduce source code size.  
+       wrappers.  Merge switch-cases together to reduce source code size.
 
 2010-01-29  Doug Kwan  <dougkwan@google.com>
 
        * options.h (DEFINE_bool): Set the user-set flag.
        (General_options): Add --[no-]-fix-cortex options.
        * output.cc (Output_section::convert_input_sections_to_relaxed_sections)
-       : Update fast look-up map after conversion. 
+       : Update fast look-up map after conversion.
 
 2010-01-14  Sriraman Tallam  <tmsriram@google.com>
 
        relocation and Cortex-A8 stub scanning.
        (Target_arm::do_relax): Force stubs to be after stubbed sections
        if fixing the Cortex-A8 erratum.  Remove all Cortex-A8 stubs at
-       the beginning of a new relaxation pass.  Update a comment. 
+       the beginning of a new relaxation pass.  Update a comment.
        (Target_arm::scan_span_for_cortex_a8_erratum): New method definition.
 
 2010-01-12  Ian Lance Taylor  <iant@google.com>
        Target_arm::set_secondary_compatible_arch,
        Target_arm::tag_cpu_arch_combine, Target_arm::aeabi_enum_name,
        Target_arm::tag_cpu_name_value, Target_arm::merge_object_attributes,
-       Target_arm::do_attribute_arg_type, Target_arm::do_attributes_order): 
+       Target_arm::do_attribute_arg_type, Target_arm::do_attributes_order):
        New method definitions.
 
 2009-12-09  Ian Lance Taylor  <iant@google.com>
        * Makefile.in: Regenerated.
 
 2009-11-25  Doug Kwan  <dougkwan@google.com>
-       
+
        Revert:
 
        2009-11-25  Doug Kwan  <dougkwan@google.com>
        * object.cc (make_elf_object): Ditto.
        * x86_64.cc (Target_x86_64::do_calls_non_split): Add a cast to avoid
        a format warning.
+
 009-11-09  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR gold/10930
        (Target_arm::new_arm_input_section,
        Target_arm::find_arm_input_section, Target_arm::new_stub_table,
        Target_arm::reloc_uses_thumb_bit): New method declarations.
-       (Target_arm::Stub_table_list, Target_arm::Arm_input_section_map): 
+       (Target_arm::Stub_table_list, Target_arm::Arm_input_section_map):
        New type definitions.
        (Target_arm::stub_tables_, Target_arm::stub_factory_): New data
        member declarations.
 2009-10-28  Doug Kwan  <dougkwan@google.com>
 
        * arm.cc (Arm_relobj): New class definition.
-       (Arm_relobj::scan_sections_for_stubs, 
+       (Arm_relobj::scan_sections_for_stubs,
        Arm_relobj::do_count_local_symbols, Arm_relobj::do_relocate_sections):
        New method definitions.
 
        from private to protected to allow access by child class.
        (Sized_relobj::do_relocate_sections): New method declaration.
        (Sized_relobj::relocate_sections): Virtualize.
-       * reloc.cc (Sized_relobj::do_relocate_sections): Rename from 
+       * reloc.cc (Sized_relobj::do_relocate_sections): Rename from
        Sized_relobj::relocate_sections.  Instantiate template explicitly
        for different target sizes and endianity.
 
        * testsuite/Makefile.am: Add commands to build icf_safe_test. Modify
        icf_test and icf_keep_unique_test to use the --icf enum flag.
        * testsuite/icf_safe_test.sh: New file.
-       * testsuite/icf_safe_test.cc: New file. 
+       * testsuite/icf_safe_test.cc: New file.
 
 2009-10-12  Sriraman Tallam  <tmsriram@google.com>
 
        (Output_section_headers::Output_section_headers): Move size
        computation to Output_section_headers::do_size.
        (Output_segment_headers::do_size): New method definition.
-       (Output_file_header::Output_file_header): Move size computation to 
+       (Output_file_header::Output_file_header): Move size computation to
        Output_file_header::do_size and call it.
        (Output_file_header::do_size): New method definition.
        (Output_data_group::Output_data_group): Adjust call to
        pair with Output_section::Simple_input_section and Convert struct to a
        class.
        (Input_section_sorter::operator()): Adjust access to
-       Input_section_info data member to use accessors. 
+       Input_section_info data member to use accessors.
        (Output_section_element_input::set_section_addresses): Use layout
        parameter.  Adjust code to use Output_section::Simple_input_section
        and Input_secction_info classes.  Register filler for relaxation
        * testsuite/gc_tls_test.sh: New file.
 
 2009-08-05  Sriraman Tallam  <tmsriram@google.com>
-       
+
        * icf.cc: New file.
        * icf.h: New file.
        * Makefile.am (CCFILES): Add icf.cc.
        Renamed from timestamp_nsec.
        (Incremental_inputs_entry_write::timestamp_sec): Fix argument to
        Elf_Xword.
-       (Incremental_inputs_entry_write::timestamp_usec): Renamed from 
+       (Incremental_inputs_entry_write::timestamp_usec): Renamed from
        timestamp_nsec.
-       (Incremental_inputs::report_archive): Save mtime; style fix. 
+       (Incremental_inputs::report_archive): Save mtime; style fix.
        (Incremental_inputs::report_obejct): Save mtime; style fix.
        (Incremental_inputs::report_script): Save mtime; style fix.
        (Incremental_inputs::finalize_inputs): Style fix.
 2009-06-05  Doug Kwan  <dougkwan@google.com>
 
        * Makefile.am (CCFILES): Add target.cc.
-       * Makefile.in: Regenerate. 
+       * Makefile.in: Regenerate.
        * i386.cc (class Target_i386): Define new virtual method to
        override do_is_local_label_name in parent.
        * object.cc (Sized_relobj::do_count_local_symbols): Discard
 
 2009-05-22  Sriraman Tallam  <tmsriram@google.com>
 
-       * testsuite/Makefile.am: Add -ffunction-sections to compile 
+       * testsuite/Makefile.am: Add -ffunction-sections to compile
        gc_comdat_test files.  Add -Wl,--gc-sections to build
        gc_comdat_test.
        * testsuite/Makefile.in: Regenerate.
 
        * layout.cc (Layout::output_section_name): Preserve names
        of '.note.' sections.
-       
+
 2009-03-19  Ian Lance Taylor  <iant@google.com>
 
        * descriptors.cc (Descriptors::open): Check that the options are
        * configure, Makefile.in, config.in: Rebuild.
 
 2009-03-17  Paul Pluzhnikov  <ppluzhnikov@google.com>
-       
+
        * layout.h (Layout::create_note): Add section_name parameter.
        * layout.cc (Layout::create_note): Likewise.
        (Layout::create_build_id, Layout::create_gold_note): Fix callers.
-       
+
 2009-03-17  Ian Lance Taylor  <iant@google.com>
 
        * descriptors.cc: Include "options.h".
        * main.cc (main): Create object of class "Garbage_collection".
        * object.cc (Relobj::copy_symbols_data): New function.
        (Relobj::is_section_name_included): New function.
-       (Sized_relobj::do_layout): Allow this function to be called twice 
-       during garbage collection and defer layout of section during the 
+       (Sized_relobj::do_layout): Allow this function to be called twice
+       during garbage collection and defer layout of section during the
        first call.
        * object.h (Relobj::get_symbols_data): New function.
        (Relobj::is_section_name_included): New function.
        (Symbol_table::gc_mark_symbol_for_shlib): New function.
        (Symbol_table::gc_mark_dyn_syms): New function.
        (Symbol_table::gc_): New data member.
-       * target.h (Sized_target::gc_process_relocs): New pure virtual 
+       * target.h (Sized_target::gc_process_relocs): New pure virtual
        function.
        * x86_64.cc (Target_x86_64::gc_process_relocs): New function.
        * testsuite/testfile.cc (Target_test::gc_process_relocs): New function.