+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
+ default cross linker.
+ * Makefile.in: Regenerated.
+
+2010-04-27 H.J. Lu <hongjiu.lu@intel.com>
+ Nick Clifton <nickc@redhat.com>
+
+ * configure.ac (install_as_default): Define and set to false
+ unless --enable-gold or --enable-gold=both/gold has been
+ specified.
+ * configure: Regenerate.
+
+ * Makefile.am (install-exec-local): Install the executable as
+ 'ld.gold'. If install_as_default is true then also install it as
+ 'ld'.
+ * Makefile.in: Regenerated.
+
+2010-04-24 Ian Lance Taylor <iant@google.com>
+
+ * layout.cc (Layout::layout_reloc): In relocatable link don't
+ combine reloc sections for grouped sections.
+
+2010-04-23 Sriraman Tallam <tmsriram@google.com>
+
+ * gc.h (gc_process_relocs): Pass information on relocs pointing to
+ sections that are not ordinary to icf.
+ * icf.cc (get_section_contents): Handle relocation pointing to section
+ with no object or shndx information.
+ * testsuite/Makefile.am: Remove icf_virtual_function_folding_test.sh
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/icf_virtual_function_folding_test.cc: Remove printf.
+ * testsuite/icf_virtual_function_folding_test.sh: Delete file.
+
+2010-04-22 Ian Lance Taylor <iant@google.com>
+
+ * expression.cc (Expression::Expression_eval_info): Add
+ result_alignment_pointer field.
+ (Expression::eval_with_dot): Add result_alignment_pointer
+ parameter. Change all callers.
+ (Expression::eval_maybe_dot): Likewise.
+ (class Binary_expression): Add alignment_pointer parameter to
+ left_value and right_value. Change all callers.
+ (BINARY_EXPRESSION): Set result alignment.
+ (class Trinary_expression): Add alignment_pointer parameter to
+ arg2_value and arg3_value. Change all callers.
+ (Trinary_cond::value): Set result alignment.
+ (Max_expression::value, Min_expression::value): Likewise.
+ (Align_expression::value): Likewise.
+ * script-sections.cc (class Sections_element): Add dot_alignment
+ parameter to set_section_addresses virtual function. Update
+ instantiations.
+ (class Output_section_element): Likewise.
+ (Script_sections::create_segments): Add dot_alignment parameter.
+ Change all callers.
+ (Script_sections::create_segments_from_phdrs_clause): Likewise.
+ (Script_sections::set_phdrs_clause_addresses): Likewise.
+ * script-sections.h: Update declarations.
+ * script.h: Update declarations.
+ * output.h (Output_segment::set_minimum_p_align): Don't decrease
+ min_p_align.
+ * testsuite/script_test_3.t: Set large alignment.
+ * testsuite/script_test_3.sh: Make sure that at least one LOAD
+ segment has expected alignment.
+
+2010-04-22 Nick Clifton <nickc@redhat.com>
+
+ * po/gold.pot: Updated by the Translation project.
+ * po/vi.po: Updated Vietnamese translation.
+
+2010-04-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/Makefile.am (check_PROGRAMS): Add
+ icf_virtual_function_folding_test.
+ * testsuite/Makefile.in: Regenerated.
+
+2010-04-15 Andrew Haley <aph@redhat.com>
+
+ * options.h (merge_exidx_entries): New option.
+ * arm.cc (class Arm_exidx_fixup): Add new arg, merge_exidx_entries.
+ (class Arm_exidx_fixup::merge_exidx_entries_): New member.
+ (Output_section::fix_exidx_coverage): Add new arg, merge_exidx_entries.
+ (Target_arm::merge_exidx_entries): New function.
+ (process_exidx_entry): Don't merge if merge_exidx_entries_ is false.
+ (Arm_output_section::fix_exidx_coverage): Pass merge_exidx_entries
+ to Arm_exidx_fixup constructor.
+ Add new arg, merge_exidx_entries.
+ (Target_arm::fix_exidx_coverage): pass merge_exidx_entries to
+ Arm_output_section::fix_exidx_coverage.
+
+2010-04-18 Sriraman Tallam <tmsriram@google.com>
+
+ * icf.cc (get_section_contents): Check for preemptible functions.
+ Ignore addend when appropriate.
+ * symtab.cc (should_add_dynsym_entry): Add new parameter. Check for
+ section folded.
+ (add_from_relobj): Check for section folded.
+ (set_dynsym_indexes): Fix call to should_add_dynsym_entry.
+ * symtab.h (should_add_dynsym_entry): Add new parameter.
+ * target-reloc.h (scan_relocs): Check for section folded.
+ * x86_64.cc (Target_x86_64::Scan::possible_function_pointer_reloc):
+ Check reloc types for function pointers in shared objects.
+ * testsuite/Makefile.am (icf_virtual_function_folding_test): New test
+ case.
+ (icf_preemptible_functions_test): New test case.
+ (icf_string_merge_test): New test case.
+ * testsuite.Makefile.in: Regenerate.
+ * testsuite/icf_safe_so_test.sh: Change to not fold foo_glob and
+ bar_glob. Refactor code.
+ * testsuite/icf_preemptible_functions_test.cc: New file.
+ * testsuite/icf_preemptible_functions_test.sh: New file.
+ * testsuite/icf_string_merge_test.cc: New file.
+ * testsuite/icf_string_merge_test.sh: New file.
+ * testsuite/icf_virtual_function_folding_test.cc: New file.
+ * testsuite/icf_virtual_function_folding_test.sh: New file.
+
+2010-04-14 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Arm_output_section::fix_exidx_coverage): Mark object
+ for local symbol recounting if we remove a section due to ICF.
+ * gold.cc (queue_middle_gc_tasks): Create a dummy blocker if
+ there are no regular objects in input.
+
+2010-04-13 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Arm_input_section::set_final_data_size): Compute
+ accurate final data size instead of using current data size.
+
+2010-04-09 Doug Kwan <dougkwan@google.com>
+
+ * layout.cc (Layout::choose_output_section): Handle script section
+ types.
+ (Layout::make_output_section_for_script): Add section type parameter.
+ Handle script section types.
+ * layout.h (Layout::make_output_section_for_script): Add section
+ type parameter.
+ * output.cc (Output_section::Output_section): Initialize data member
+ is_noload_.
+ (Output_section::do_reset_address_and_file_offset): Do not set address
+ to 0 if section is a NOLOAD section.
+ * output.h (Output_section::is_noload): New method.
+ (Output_section::set_is_noload): Ditto.
+ (Output_section::is_noload_): New data member.
+ * script-c.h (Script_section_type): New enum type.
+ (struct Parser_output_section_header): Add new file section_type.
+ * script-sections.cc (Sections_element::output_section_name): Add
+ parameter for returning script section type.
+ (Output_section_definition::output_section_name): Ditto.
+ (Output_section_definition::section_type)P; New method.
+ (Output_section_definiton::script_section_type_name): Ditto.
+ (Output_section_definition::script_section_type_): New data member.
+ (Output_section_definition::Output_section_definition): Initialize
+ data member Output_section_definition::script_section_type_.
+ (Output_section_definition::create_sections): Pass script section type
+ to Layout::make_output_section_for_script.
+ (Output_section_definition::output_section_name): Return script
+ section type to caller.
+ (Output_section_definition::set_section_address): Do not advance
+ dot value and load address if section type is NOLOAD. Set address
+ of NOLOAD sections regardless of section flags.
+ (Output_section_definition::print): Print section type if it is
+ not SCRIPT_SECTION_TYPE_NONE.
+ (Output_section_definition::section_type): New method.
+ (Output_section_definition::script_section_type_name): Ditto.
+ (Script_sections::output_section_name): Add new parameter
+ PSECTION_TYPE for returning script section type. Pass it to
+ section elements. Handle discard sections.
+ (Sort_output_sections::operator()): Handle NOLOAD sections.
+ * script-sections.h (Script_sections::Section_type): New enum type.
+ (Script_sections::output_section_name): Add a new parameter for
+ returning script section type.
+ * script.cc (script_keyword_parsecodes): Add keywords COPY, DSECT,
+ INFO and NOLOAD.
+ * yyscript.y (union): Add new field SECTION_TYPE.
+ (COPY, DSECT, INFO, NOLOAD): New tokens.
+ (opt_address_and_section_type): Change type to output_section_header.
+ (section_type): New non-terminal
+ (section_header): Handle section type.
+ (opt_address_and_section_type): Return section type value.
+
+2010-04-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ * testsuite/plugin_common_test_1.c (foo): Add prototype.
+ * testsuite/plugin_common_test_2.c (foo): Likewise.
+
+2010-04-08 Doug Kwan <dougkwan@google.com>
+
+ * merge.cc (Output_merge_data::set_final_data_size): Handle empty
+ 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
+ returns true.
+
+2010-04-07 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Arm_relobj::scan_section_for_cortex_a8_erratum): Warn
+ if section is marked as containing instructions but has no mapping
+ symbols.
+ (Arm_relobj::do_count_local_symbols): Call adjust_sym_shndx to get
+ correct section index.
+ (Arm_relobj::find_linked_text_section): Ditto.
+
+2010-04-07 Cary Coutant <ccoutant@google.com>
+
+ * archive.cc (include_member): Destroy Read_symbols_data object before
+ releasing file.
+ * object.cc (Read_symbols_data::~Read_symbols_data) New destructor.
+ * object.h (Read_symbols_data::Read_symbols_data) New constructor.
+ (Read_symbols_data::~Read_symbols_data) New destructor.
+ (Section_relocs::Section_relocs) New constructor.
+ (Section_relocs::~Section_relocs) New destructor.
+ (Read_relocs_data::Read_relocs_data) New constructor.
+ (Read_relocs_data::~Read_relocs_data) New destructor.
+ * testsuite/binary_unittest.cc (Sized_binary_test): Set sd member
+ pointers to NULL after deleting.
+
+2010-04-07 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc: Replace "endianity" with "endianness" in comments.
+ (Arm_exidx_cantunwind): Ditto.
+ (Arm_relobj::Arm_relobj): Initialize merge_flags_and_attribures.
+ (Arm_relobj::merge_flags_and_attributes): New method.
+ (Arm_relobj::merge_flags_and_attributes_): New data member.
+ (Arm_exidx_cantunwind::do_fixed_endian_write): Fix formatting.
+ (Arm_relobj::scan_sections_for_stubs): Ditto.
+ (Arm_relobj::do_read_symbols): Check to see if we really want to
+ merge processor-specific flags and attributes. Exit early if
+ an object is empty except for section names and the undefined symbol.
+ (Target_arm::do_finalize_sections): Move check for ELF format to
+ Arm_relobj::do_read_symbols. Merge processor specific flags and
+ attributes from a regular object only when we have determined that
+ it is aapropriate. Do not create an .ARM.attributes section in
+ output if there is no regular input object.
+ (Target_arm::merge_processor_specific_flags): Check
+ --warn-mismatch before printing any error.
+ (Target_arm::merge_object_attributes): Ditto.
+ * gold.cc (queue_middle_tasks): Handle the case in which there is
+ no regular object in input.
+ * options.cc (General_options::parse_EB): New method.
+ (General_options::parse_EL): Same.
+ (General_options::General_options): Initialize endianness_.
+ * options.h (-EB, -EL, -no-pipeline-knowledge, -p, --warn-mismatch):
+ New options.
+ (General_options::Endianness): New enum.
+ (General_options::endianness): New method.
+ (General_options::endianness_): New data member.
+ * parameters.cc (Parameters::set_options): Check target endianness.
+ (Parameters::set_target_once): Ditto.
+ (Parameters::check_target_endianness): New method.
+ (parameters_force_valid_target): If either -EL or -EB is specified,
+ use it to define endianness of default target.
+ * parameters.h (Parameters::check_target_endianness): New method
+ declaration.
+ * target.h (class Target): Change "endianity" to "endianness"
+ in comments.
+
+2010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure.ac (AM_INIT_AUTOMAKE): Add option no-dist.
+ * configure: Regenerate.
+ * Makefile.in: Regenerate.
+ * testsuite/Makefile.in: Regenerate.
+
+2010-04-06 Cary Coutant <ccoutant@google.com>
+
+ gcc PR lto/42757
+ * plugin.cc (Pluginobj::get_symbol_resolution_info): Check for
+ prevailing definitions of common symbols.
+ * testsuite/plugin_test_6.sh: New test case.
+ * testsuite/plugin_common_test_1.c: New test case.
+ * testsuite/plugin_common_test_2.c: New test case.
+ * testsuite/Makefile.am (plugin_test_6): New test case.
+ * testsuite/Makefile.in: Regenerate.
+
+2010-04-06 Nick Clifton <nickc@redhat.com>
+
+ * po/vi.po: New Vietnamese translation.
+
+2010-03-30 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Target_arm::using_thumb_only): Handle v6-M
+
+2010-03-25 Doug Kwan <dougkwan@google.com>
+
+ * gold/arm.cc (Arm_exidx_fixup::update_offset_map): Rearrange code
+ to avoid a conversion warning on a 32-bit host.
+
+2010-03-24 Ian Lance Taylor <iant@google.com>
+
+ * testsuite/script_test_3.t: Add a TLS segment.
+ * testsuite/Makefile.am (check_PROGRAMS): Add
+ tls_phdrs_script_test.
+ (tls_phdrs_script_test_SOURCES): Define.
+ (tls_phdrs_script_test_DEPENDENCIES): Define.
+ (tls_phdrs_script_test_LDFLAGS): Define.
+ (tls_phdrs_script_test_LDADD): Define.
+ * testsuite/Makefile.in: Rebuild.
+
+2010-03-23 Cary Coutant <ccoutant@google.com>
+
+ * fileread.cc (find_or_make_view): Fix comment.
+
+2010-03-23 Ian Lance Taylor <iant@google.com>
+
+ * script-sections.cc (class Orphan_section_placement): Define
+ PLACE_TLS and PLACE_TLS_BSS.
+ (Orphan_section_placement::Orphan_section_placement): Initialize
+ new places.
+ (Orphan_section_placement::find_place): Handle SHF_TLS sections.
+ * testsuite/Makefile.am (check_PROGRAMS): Add tls_script_test.
+ (tls_script_test_SOURCES): Define.
+ (tls_script_test_DEPENDENCIES): Define.
+ (tls_script_test_LDFLAGS): Define.
+ (tls_script_test_LDADD): Define.
+ * testsuite/Makefile.in: Rebuild.
+
+2010-03-22 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Arm_relocate_functions::abs8,
+ Arm_relocate_functions::abs16): Use correct check for overflow
+ specified in the ARM ELF specs.
+ (Arm_relocate_functions): thumb_branch_common. Handle bit 1 of branch
+ target of a BLX instruction specially.
+ (Reloc_stub::stub_type_for_reloc): Ditto.
+ (Relocate::relocate): Use symbolic names instead of numeric relocation
+ codes to report error.
+ (Target_arm::do_relox): Reduce default stub-group size for Cortex-A8
+ workaround.
+ * testsuite/Makefile.am (check_DATA): add thumb_blx_in_range.stdout,
+ thumb_blx_out_of_range.stdout, thumb2_blx_in_range.stdout and
+ thumb2_blx_out_of_range.stdout
+ (thumb_bl_out_of_range, thumb_bl_out_of_range.o,
+ thumb2_bl_out_of_range, thumb2_bl_out_of_range.o): Fix dependenices.
+ (thumb_blx_in_range.stdout, thumb_blx_in_range, thumb_blx_in_range.o,
+ thumb_blx_out_of_range.stdout, thumb_blx_out_of_range,
+ thumb_blx_out_of_range.o, thumb2_blx_in_range.stdout,
+ thumb2_blx_in_range, thumb2_blx_in_range.o,
+ thumb2_blx_out_of_range.stdout, thumb2_blx_out_of_range,
+ thumb2_blx_out_of_range.o): New rules.
+ (MOSTLYCLEANFILES): Add thumb_blx_in_range, thumb_blx_out_of_range,
+ thumb2_blx_in_range and thumb2_blx_out_of_range.
+ * testsuite/Makefile.in: Regenerate.
+ * arm_branch_in_range.sh: Add tests for THUMB BLX.
+ * testsuite/thumb_blx_in_range.s: New file.
+ * testsuite/thumb_blx_out_of_range.s: New file.
+
+2010-03-22 Rafael Espindola <espindola@google.com>
+
+ * archive.cc (Should_include): Move to archive.h.
+ (should_include_member): Make it a member of Archive.
+ (Lib_group): New.
+ (Add_lib_group_symbols): New.
+ * archive.h: Include options.h.
+ (Archive_member): Moved from Archive.
+ (Should_include): Moved from archive.cc.
+ (Lib_group): New.
+ (Add_lib_group_symbols): New.
+ * dynobj.cc (do_should_include_member): New.
+ * dynobj.h (do_should_include_member): New.
+ * gold.cc (queue_initial_tasks): Update call to queue.
+ * main.cc (main): Print lib group stats.
+ * object.cc (do_should_include_member): New.
+ * object.h: Include archive.h.
+ (Object::should_include_member): New.
+ (Object::do_should_include_member): New.
+ (Sized_relobj::do_should_include_member): New.
+ * options.cc (General_options::parse_start_lib): New.
+ (General_options::parse_end_lib): New.
+ (Input_arguments::add_file): Handle lib groups.
+ (Input_arguments::start_group): Check we are not in a lib.
+ (Input_arguments::start_lib): New.
+ (Input_arguments::end_lib): New.
+ * options.h (General_options): Add start_lib and end_lib.
+ (Input_argument::lib_): New.
+ (Input_argument::lib): New.
+ (Input_argument::is_lib): New.
+ (Input_file_lib): New.
+ (Input_arguments::in_lib_): New.
+ (Input_arguments::in_lib): New.
+ (Input_arguments::start_lib): New.
+ (Input_arguments::end_lib_): New.
+ * plugin.cc (Pluginobj::get_symbol_resolution_info): Mark symbols
+ in unused members as preempted.
+ (Sized_pluginobj::do_should_include_member): New.
+ * plugin.h (Sized_pluginobj::do_should_include_member): New.
+ * readsyms.cc (Read_symbols::locks): If we are just reading a member,
+ return the blocker.
+ (Read_symbols::do_whole_lib_group): New.
+ (Read_symbols::do_lib_group): New.
+ (Read_symbols::do_read_symbols): Handle lib groups.
+ (Read_symbols::get_name): Handle lib groups.
+ * readsyms.h (Read_symbols): Add an archive member pointer.
+ (Read_symbols::do_whole_lib_group): New.
+ (Read_symbols::do_lib_group): New.
+ (Read_symbols::member_): New.
+ * script.cc (read_input_script): Update call to queue_soon.
+
+2010-03-19 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Stub_table::Stub_table): Initialize new data members
+ Stub_table::reloc_stubs_size_ and Stub_table::reloc_stubs_addralign_.
+ (Stub_table::add_reloc_stub): Assign stub offset and update
+ Stub_table::reloc_stubs_size_ and Stub_table::reloc_stubs_addralign_.
+ (Stub_table::reloc_stubs_size_, Stub_table::reloc_stubs_addralign_):
+ New data members.
+ (Stub_table::update_data_size_and_addralign): Use
+ Stub_table::reloc_stubs_size_ and Stub_table::reloc_stubs_addralign_
+ instead of going over all reloc stubs.
+ (Stub_table::finalize_stubs): Do not assign reloc stub offsets.
+ * stringpool.cc (Stringpool_template::Stringpool_template): Initialize
+ Stringpool_template::offset_ to size of Stringpool_char.
+ (Stringpool_template::new_key_offset): Remove code to initialize
+ Stringpool_template::offset_.
+ * stringpool.h (Stringpool_template::set_no_zero_null): Set
+ Stringpool_template::offset_ to zero.
+
+2010-03-15 Doug Kwan <dougkwan@google.com>
+
+ * stringpool.cc (Stringpool_template::Stringpool_template): Initialize
+ offset_.
+ (Stringpool_template::new_key_offset): New method.
+ (Stringpool_template::add_string): Assign offsets when adding new
+ strings.
+ (Stringpool_template::set_string_offsets): Do not set string offsets
+ when not optimizing.
+ * stringpool.h (Chunked_vector::Chunked_vector): Initialize data
+ member size_.
+ (Chunked_vector::clear): Clear size_.
+ (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.
+ (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.
+
+2010-03-15 Rafael Espindola <espindola@google.com>
+
+ * readsyms.cc (Read_symbols::do_read_symbols): Update calls to
+ Add_symbols' constructor.
+ * readsyms.h (Add_symbols): Remove the input_group member.
+
+2010-03-10 Ian Lance Taylor <iant@google.com>
+
+ * reloc.cc (Sized_relobj::split_stack_adjust_reltype): Call the
+ target to ask whether a reference to a symbol requires a stack
+ split.
+ * target.h (Target::is_call_to_non_split): New function.
+ (Target::do_is_call_to_non_split): Declare virtual function.
+ * target.cc: Include "symtab.h".
+ (Target::do_is_call_to_non_split): New function.
+ * i386.cc (Target_i386::do_is_call_to_non_split): New function.
+
+2010-03-10 Cary Coutant <ccoutant@google.com>
+
+ * fileread.cc (File_read::~File_read): Don't delete whole_file_view_.
+ (File_read::open[1]): Remove initial mapping of whole_file_view_.
+ (File_read::open[2]): Add whole_file_view_ to list of views.
+ (File_read::make_view): Remove test of whole_file_view_.
+ (File_read::find_or_make_view): Create whole_file_view_ if
+ necessary.
+ (File_read::clear_views): Replace bool parameter with enum;
+ adjust all callers. Don't delete views with permanent data;
+ do delete cached views and views from archives if
+ --no-keep-files-mapped is set. Set whole_file_view_ to NULL
+ if clearing the corresponding view.
+ * fileread.h (File_read::Clear_views_mode): New enum.
+ (File_read::View::is_permanent_view): New method.
+ (File_read::clear_views): Replace bool parameter
+ with enum; adjust all callers.
+ * options.h (General_options): Change keep_files_mapped option;
+ add map_whole_files.
+ * readsyms.cc (Add_symbols::run): Delete sd_ object before
+ releasing the file.
+ * reloc.cc (Scan_relocs::run): Delete rd_ object before releasing
+ the file.
+
+2010-03-10 David S. Miller <davem@davemloft.net>
+
+ * sparc.cc (Target_sparc::Scan::local): Accept R_SPARC_WPLT30.
+
+2010-03-09 Sriraman Tallam <tmsriram@google.com>
+
+ * icf.cc (get_section_contents): Add '@' marker after processing the
+ merge reloc.
+
+2010-03-08 Doug Kwan <dougkwan@google.com>
+
+ * gold/arm.cc (Arm_exidx_fixup::update_offset_map): Fix build breakage
+ due to a conversion warning.
+ (Arm_relobj::update_output_local_symbol_count): Check for local
+ symbol with unset output index.
+
+2010-03-05 Ian Lance Taylor <iant@google.com>
+
+ * options.h (class General_options): Add --spare-dynamic-tags.
+ * output.cc (Output_data_dynamic::set_final_data_size): Implement
+ --spare-dynamic-tags.
+
+2010-03-05 Ian Lance Taylor <iant@google.com>
+
+ * incremental.cc: Include "libiberty.h".
+
+2010-03-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * dynobj.h (Verdef::Verdef): Add is_info arg, is_info member
+ function, is_info_ member.
+ * dynobj.cc (Verdef::write): Set VER_FLG_INFO if this->is_info_.
+ (Versions::Versions): Update caller.
+ (Versions::define_base_version): Likewise.
+ (Versions::add_def): Likewise.
+
+2010-03-03 Sriraman Tallam <tmsriram@google.com>
+
+ * i386.cc (Target_i386::can_check_for_function_pointers): New function.
+ (Scan::possible_function_pointer_reloc): New function.
+ (Scan::local_reloc_may_be_function_pointer): Change to call
+ possible_function_pointer_reloc.
+ (Scan::global_reloc_may_be_function_pointer): Ditto.
+ * icf.h (Icf::check_section_for_function_pointers): Change to reject
+ relocations in ".data.rel.ro._ZTV" section.
+ * testsuite/icf_safe_so_test.sh: Change to pass i386.
+ * testsuite/icf_safe_so_test.cc: Ditto.
+ * testsuite/icf_safe_test.cc: Ditto.
+ * testsuite/icf_safe_test.sh: Ditto.
+
+2010-03-03 Viktor Kutuzov <vkutuzov@accesssoftek.com>
+ Ian Lance Taylor <iant@google.com>
+
+ * target-reloc.h (relocate_section): Check the symbol table index
+ for -1U before setting the local symbol index.
+ (scan_relocatable_relocs): If copying the relocation, record that
+ the local symbol is required.
+ * object.h (Symbol_value::is_output_symtab_index_set): New
+ function.
+ (Symbol_value::may_be_discarded_from_output_symtab): New
+ function.
+ (Symbol_value::has_output_symtab_entry): New function.
+ (Symbol_value::needs_output_symtab_entry): Remove.
+ (Symbol_value::output_symtab_index): Make sure the symbol index is
+ set.
+ (Symbol_value::set_output_symtab_index): Make sure the symbol
+ index is not set. Make sure the new index is valid.
+ (Symbol_value::set_must_have_output_symtab_entry): New function.
+ (Symbol_value::has_output_dynsym_entry): New function.
+ (Symbol_value::set_output_dynsym_index): Make sure the new index
+ is valid.
+ (Sized_relobj::set_must_have_output_symtab_entry): New function.
+ * object.cc (Sized_relobj::do_count_local_symbols): Only discard a
+ local symbol if permitted.
+ (Sized_relobj::do_finalize_local_symbols): Call
+ is_output_symtab_index_set rather than needs_output_symtab_entry.
+ (Sized_relobj::write_local_symbols): Call has_output_symtab_entry
+ rather than needs_output_symtab_entry. Call
+ has_output_dynsym_entry rather than needs_output_dynsym_entry.
+ * arm.cc (Arm_relobj::update_output_local_symbol_count): Call
+ is_output_symtab_index_set rather than needs_output_symtab_entry.
+ * testsuite/discard_locals_relocatable_test.c: New file.
+ * testsuite/discard_locals_test.sh: Test -r.
+ * testsuite/Makefile.am (check_DATA): Add
+ discard_locals_relocatable_test1.syms,
+ discard_local_relocatable_test2.syms.
+ (MOSTLYCLEANFILES): Likewise. Also add
+ discard_locals_relocatable_test1.lout and
+ discard_locals_relocatable_test2.out.
+ (discard_locals_relocatable_test1.syms): New target.
+ (discard_locals_relocatable_test.o): New target.
+ (discard_locals_relocatable_test1.out): New target.
+ (discard_locals_relocatable_test2.syms): New target.
+ (discard_locals_relocatable_test2.out): New target.
+ (various): Add missing ../ld-new dependencies.
+ * testsuite/Makefile.in: Rebuild.
+
+2010-03-03 Nick Clifton <nickc@redhat.com>
+
+ * po/fi.po: New Finnish translation.
+
+2010-03-01 Doug Kwan <dougkwan@google.com>
+
+ * layout.cc (Layout::Layout): Force section types of .init_array*,
+ .preinit_array* and .fini_array* sections.
+ * output.cc (Output_section::Input_section_sort_entry::has_priority):
+ Fix check of return value of std::string::find.().
+ (Output_section::Input_section_sort_compare::operator()): Remove
+ comment about .init_array.
+ (Output_section::Input_section_sort_init_fini_compare::operator()):
+ New method.
+ (Output_section::sort_attached_input_sections): Handle .init_array
+ and .fini_array specially.
+ * output.h (Output_section::Inut_section_sort_compare): Update
+ comment.
+ (Output_section::Input_section_sort_init_fini_compare): New struct.
+
+2010-02-26 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Target_arm::Relocate::reloc_is_non_pic): Treat
+ R_ARM_PREL31 and R_ARM_SBREL31 as position independent.
+ * testsuite/debug_msg.sh: Avoid matching source line number for
+ use of global variable undef_int.
+
+2010-02-26 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Target_arm::scan_reloc_for_stub): Move code handling
+ R_ARM_V4BX to Target_arm::scan_reloc_section_for_stubs.
+ (Target_arm::scan_reloc_section_for_stubs): Instead of calling
+ scan_reloc_for_stub, do all processing of R_ARM_V4BX here.
+ * options.cc (General_options::General_options): Initialize member
+ fix_v4bx_.
+ * testsuite/Makefile.am (check_SCRIPTS): Add arm_fix_v4bx.sh
+ (check_DATA): Add arm_fix_v4bx.stdout, arm_fix_v4bx_interworking.stdout
+ and rm_no_fix_v4bx.stdout
+ (arm_fix_v4bx.stdout, arm_fix_v4bx, arm_fix_v4bx.o,
+ arm_fix_v4bx_interworking.stdout, arm_fix_v4bx_interworking,
+ arm_no_fix_v4bx.stdout, arm_no_fix_v4bx): New make rules.
+ (MOSTLYCLEANFILES): Add arm_fix_v4bx, arm_fix_v4bx_interworking
+ and arm_no_fix_v4bx.
+ * Makefile.in: Regenerate.
+ * testsuite/arm_fix_v4bx.s: New file.
+ * testsuite/arm_fix_v4bx.sh: Ditto.
+
+2010-02-24 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Target_arm::got_section): Make the .got section the first
+ non RELRO section in the data segment.
+ * testsuite/script_test_5.sh: Fix match patterns to avoid matching
+ suffixes of section names.
+
+2010-02-24 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Target_arm::do_finalize_sections): Skip processor specific
+ flags and attributes merging if an input file is a binary file.
+ * fileread.cc (Input_file::open): Record format of original file.
+ * fileread.h (Input_file::Format): New enum type.
+ (Input_file::Input_file): Initialize data member format_.
+ (Input_file::format): New method definition.
+ (Input_file::format_):: New data member.
+
+2010-02-24 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Arm_output_data_got): New class.
+ (ARM_TCB_SIZE): New constant
+ (Target_arm): Use Arm_output_data_got instead of Output_data_got.
+ (Arm_output_section::fix_exidx_coverage): Add a parameter for layout.
+ If user uses a script with a SECTIONS clause, issue only a warning
+ for a misplaced EXIDX input section. Otherwise, issue an error.
+ (Arm_relobj::do_gc_process_relocs): Exit early if we are not doing
+ garbage collection.
+ (Target_arm::got_mode_index_entry): Handle static linking.
+ (Target_arm::Scan::local): Ditto.
+ (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
+ Arm_output_section::fix_exidx_coverage.
+ * layout.cc (Layout::section_name_mapping): Remove trailing dots
+ from ".ARM.exidx." and ".ARM.extab.".
+
+2010-02-23 Viktor Kutuzov <vkutuzov@accesssoftek.com>
+
+ * arm.cc (Target_arm::do_finalize_sections): Create attribute
+ section if it does not already exist.
+ * attributes.cc (Attributes_section_data::Attributes_section_data):
+ Don't crash if size is zero.
+
+2010-02-23 Viktor Kutuzov <vkutuzov@accesssoftek.com>
+ Ian Lance Taylor <iant@google.com>
+
+ * gold.cc (queue_middle_tasks): If no input files were opened,
+ exit.
+ * workqueue.h (Task_function::Task_function): Assert that there is
+ a blocker.
+
+2010-02-22 Doug Kwan <dougkwan@google.com>
+
+ * gold-threads.h (Once::~Once): Explicitly define virtual destructor.
+ * icf.cc (get_section_contents): Cast snprintf arguments to long long
+ types to avoid warnings due to different uint64_t implementations
+ on different hosts.
+
+2010-02-21 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Arm_relocate_functions::arm_branch_common): Fix bug in
+ handling of the maximum backward branch offset.
+ (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,
+ 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,
+ arm_bl_out_of_range.o, thumb_bl_in_range.stdout, thumb_bl_in_range,
+ thumb_bl_in_range.o, thumb_bl_out_of_range.stdout,
+ thumb_bl_out_of_range thumb_bl_out_of_range.o,
+ thumb2_bl_in_range.stdout, thumb2_bl_in_range, thumb2_bl_in_range.o
+ thumb2_bl_out_of_range.stdout, thumb2_bl_out_of_range,
+ thumb2_bl_out_of_range.o): New rules.
+ (MOSTLYCLEANFILES): Add arm_bl_in_range, arm_bl_out_of_range,
+ thumb_bl_in_range, thumb_bl_out_of_range, thumb2_bl_in_range and
+ thumb2_bl_out_of_range
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/arm_bl_in_range.s: New file.
+ * testsuite/arm_bl_out_of_range.s: Ditto.
+ * testsuite/arm_branch_in_range.sh: Ditto.
+ * testsuite/arm_branch_range.t: Ditto.
+ * testsuite/thumb2_branch_range.t: Ditto.
+ * testsuite/thumb_bl_in_range.s: Ditto.
+ * testsuite/thumb_bl_out_of_range.s: Ditto.
+ * testsuite/thumb_branch_range.t: Ditto.
+
+2010-02-20 Sriraman Tallam <tmsriram@google.com>
+
+ * gc.h (gc_process_relocs): Change vectors to point to the new list.
+ Add reloc offset information.
+ * icf.cc (get_section_contents): Change iterators to point to the new
+ vectors. Add reloc offset information to the contents.
+ * icf.h (Icf::Sections_reachable_info): New typedef.
+ (Icf::Sections_reachable_list): New typedef.
+ (Icf::Offset_info): New typedef.
+ (Icf::Reloc_info): New struct typedef.
+ (Icf::Reloc_info_list): New typedef.
+ (Icf::symbol_reloc_list): Delete method.
+ (Icf::addend_reloc_list): Delete method.
+ (Icf::section_reloc_list): Delete method.
+ (Icf::reloc_info_list): New method.
+ (Icf::reloc_info_list_): New member.
+
+2010-02-19 Doug Kwan <dougkwan@google.com>
+
+ * arm-reloc.def: Mark R_ARM_TLS_GD32, R_ARM_TLS_LDM32,
+ R_ARM_TLS_LDO32, R_ARM_TLS_IE32 and R_ARM_TLS_LE32 are implemented.
+ * arm.cc (Arm_relocation_functions): New forward declaration.
+ (Target_arm::Target_arm): Initialize new data members
+ got_mod_index_offset_ and tls_base_symbol_defined_.
+ (Target_arm::Relocate::relocate_tls): New method.
+ (Target_arm::optimize_tls_reloc, Target_arm::define_tls_base_symbol,
+ Target_arm::got_mod_index_entry, Target_arm::rel_tls_desc_section):
+ New methods.
+ (Target_arm::Got_type): Add GOT_TYPE_TLS_NOFFSET, GOT_TYPE_OFFSET,
+ GOT_TYPE_TLS_PAIR and GOT_TYPE_TLS_DESC.
+ (Target_arm::got_mod_index_offset_,
+ Target_arm::tls_base_symbol_defined_): New data members.
+ (Target_arm::Scan::local, Target::Scan::global,
+ Target_arm::Relocate::relocate): Handle 32-bit initial TLS
+ relocations.
+
+2010-02-18 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Arm_relobj::find_linked_text_section): New method.
+ (Arm_relobj::make_exidx_input_section): Pass section index of linked
+ text section as a parameter becuase some broken tools may not set
+ the link in section header.
+ (Target_arm::has_got_section): New method.
+ (Target_arm::scan_section_for_cortex_a8_stubs): Treat an input section
+ without any mapping symbol as data only. Remove warning.
+ (Arm_relobj::do_read_synbols): If an EXIDX input section has no
+ link in its section header, try to discover the link by inspecting the
+ REL31 relocation at the beginning of the section.
+ (Target_arm::Scan::check_non_pic): Report name of offending relocation
+ in error message.
+ (Target_arm::Scan::global): Treat any reference to the symbol
+ _GLOBAL_OFFSET_TABLE_ as a GOT access.
+
+2010-02-12 Sriraman Tallam <tmsriram@google.com>
+
+ * arm.cc (Scan::local_reloc_may_be_function_pointer): New function.
+ (Scan::global_reloc_may_be_function_pointer): New function.
+ * sparc.cc (Scan::local_reloc_may_be_function_pointer): New function.
+ (Scan::global_reloc_may_be_function_pointer): New function.
+ * powerpc.cc (Scan::local_reloc_may_be_function_pointer): New function.
+ (Scan::global_reloc_may_be_function_pointer): New function.
+ * i386.cc (Scan::local_reloc_may_be_function_pointer): New function.
+ (Scan::global_reloc_may_be_function_pointer): New function.
+ * x86_64.cc (Scan::local_reloc_may_be_function_pointer): New function.
+ (Scan::global_reloc_may_be_function_pointer): New function.
+ (Scan::possible_function_pointer_reloc): New function.
+ (Target_x86_64::can_check_for_function_pointers): New function.
+ * gc.h (gc_process_relocs): Scan relocation types to determine if
+ function pointers were taken for targets that support it.
+ * icf.cc (Icf::find_identical_sections): Include functions for
+ folding in safe ICF whose pointer is not taken.
+ * icf.h (Secn_fptr_taken_set): New typedef.
+ (fptr_section_id_): New member.
+ (section_has_function_pointers): New function.
+ (set_section_has_function_pointers): New function.
+ (check_section_for_function_pointers): New function.
+ * options.h: Fix comment for safe ICF option.
+ * target.h (can_check_for_function_pointers): New function.
+ * testsuite/Makefile.am: Add icf_safe_so_test test case.
+ Modify icf_safe_test for X86-64.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/icf_safe_so_test.cc: New file.
+ * testsuite/icf_safe_so_test.sh: New file.
+ * testsuite/icf_safe_test.cc (kept_func_3): New function.
+ (main): Change to take pointer to function kept_func_3.
+ * testsuite/icf_safe_test.sh (arch_specific_safe_fold): Check if safe
+ folding is done correctly for X86-64.
+
+2010-02-12 David S. Miller <davem@davemloft.net>
+
+ * output.h (Output_reloc<SHT_REL>::Output_reloc): Add
+ is_symbolless parameter.
+ (Output_reloc<SHT_REL>::is_symbolless): New.
+ (Output_reloc<SHT_REL>::is_symbolless_): New.
+ (Output_reloc<SHT_REL>::type_): Decrease to 29 bits.
+ (Output_reloc<SHT_RELA>::Output_reloc): Add is_symbolless parameter.
+ (Output_reloc<SHT_RELA>::is_symbolless): New.
+ (Output_data_reloc::add_global): Handle is_symbolless.
+ (Output_data_reloc::add_global_relative): Likewise.
+ (Output_data_reloc::add_local): Likewise.
+ (Output_data_reloc::add_local_relative): Likewise.
+ (Output_data_reloc::add_symbolless_global_addend): New.
+ (Output_data_reloc::add_symbolless_local_addend): New.
+ * output.cc (Output_reloc<SHT_REL>::Output_reloc): Handle
+ is_symbolless.
+ (Output_reloc::set_needs_dynsym_index): Test ->is_symbolless_
+ instead of ->is_relative_
+ (Output_reloc::write): Likewise.
+ (Output_reloc::get_symbol_index): Return 0 when ->is_symbolless_
+ (Output_reloc::write_rel): Simplify.
+
+ * sparc.cc (Target_sparc::Scan::local): Use
+ ->add_symbolless_local_addend as needed.
+ (Target_sparc::Scan::global): Use ->add_symbolless_global_addend as
+ needed. Also, emit appropriate unaligned vs. aligned dynamic reloc
+ based upon relocation offset.
+
+2010-02-11 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Target_arm::Scan::local): Fix bugs in relocation handling.
+ (Target_arm::Scan::global): Ditto. Also remove a comment before the
+ beginning of function.
+ (Target_arm::Relocate::relocate): Remove error messages for MOVW_ABS
+ and MOVT_ABS relocations. Those are non issued in scanning. Fix
+ parameter is_32bit in calls to should_apply_static_reloc.
+ * testsuite/Makefile.am (check_SCRIPTS): Add arm_abs_global.sh.
+ (check_DATA): Add arm_abs_global.stdout.
+ (arm_abs_lib.o, libarm_abs.so, arm_abs_global.o, arm_abs_global,
+ arm_abs_global.stdout): New rules.
+ (MOSTLLYCLEANFILES): Add arm_abs_global
+ * Makefile.in: Regenerate.
+ * testsuite/arm_abs_global.s: New file.
+ * testsuite/arm_abs_global.sh: Ditto.
+ * testsuite/arm_abs_lib.s: Ditto.
+
+2010-02-11 Ian Lance Taylor <iant@google.com>
+
+ * gold.cc (queue_middle_gc_tasks): Use a separate blocker for each
+ Read_relocs task.
+ (queue_middle_tasks): Likewise, and also for Scan_relocs. Run
+ Allocate_commons_task first.
+ * reloc.cc (Read_relocs::run): Pass next_blocker_ down to next
+ task, rather than symtab_lock_.
+ (Gc_process_relocs::~Gc_process_relocs): New function.
+ (Gc_process_relocs::is_runnable): Check this_blocker_.
+ (Gc_process_relocs::locks): Use next_blocker_ rather than
+ blocker_.
+ (Scan_relocs::~Scan_relocs): New function.
+ (Scan_relocs::is_runnable): Check this_blocker_ rather than
+ symtab_lock_.
+ (Scan_relocs::locks): Drop symtab_lock_ and blocker_. Add
+ next_blocker_.
+ * reloc.h (class Read_relocs): Drop symtab_lock_ and blocker_
+ fields. Add this_blocker_ and next_blocker_ fields. Adjust
+ constructor accordingly.
+ (class Gc_process_relocs): Likewise.
+ (class Scan_relocs): Likewise.
+ * common.h (class Allocate_commons_task): Remove symtab_lock_
+ field, and corresponding constructor parameter.
+ * common.cc (Allocate_commons_tasK::is_runnable): Remove use of
+ symtab_lock_.
+ (Allocate_commons_task::locks): Likewise.
+
+2010-02-11 Ian Lance Taylor <iant@google.com>
+
+ * gold-threads.h (class Once): Define.
+ (class Initialize_lock): Rewrite as child of Once.
+ * gold-threads.cc (class Once_initialize): Define.
+ (once_pointer_control): New static variable.
+ (once_pointer, once_arg): New static variables.
+ (c_run_once): New static function.
+ (Once::Once, Once::run_once, Once::internal_run): New functions.
+ (class Initialize_lock_once): Remove.
+ (initialize_lock_control): Remove.
+ (initialize_lock_pointer): Remove.
+ (initialize_lock_once): Remove.
+ (Initialize_lock::Initialize_lock): Move to gold-threads.h.
+ (Initialize_lock::initialize): Rewrite.
+ (Initialize_lock::do_run_once): New function.
+ * archive.cc (Archive::interpret_header): Only clear name if it is
+ not already empty.
+ * fileread.cc: Include "gold-threads.h"
+ (file_counts_lock): New static variable.
+ (file_counts_initialize_lock): Likewise.
+ (File_read::release): Only increment counts when using --stats.
+ Use a lock around the increment.
+ * parameters.cc (class Set_parameters_target_once): Define.
+ (set_parameters_target_once): New static variable.
+ (Parameters::Parameters): Move here from parameters.h.
+ (Parameters::set_target): Rewrite.
+ (Parameters::set_target_once): New function.
+ (Parameters::clear_target): Move here and rewrite.
+ * parameters.h (class Parameters): Update declarations. Add
+ set_parameters_target_once_ field.
+ (Parameters::Parameters): Move to parameters.cc.
+ (Parameters::clear_target): Likewise.
+ * readsyms.cc (Read_symbols::do_group): Create a Start_group
+ task.
+ (Start_group::~Start_group): New function.
+ (Start_group::is_runnable): New function.
+ (Start_group::locks, Start_group::run): New functions.
+ (Finish_group::run): Change saw_undefined to size_t.
+ * readsyms.h (class Start_group): Define.
+ (class Finish_group): Change saw_undefined_ field to size_t.
+ (Finish_group::Finish_group): Remove saw_undefined and
+ this_blocker parameters. Change all callers.
+ (Finish_group::set_saw_undefined): New function.
+ (Finish_group::set_blocker): New function.
+ * symtab.h (class Symbol_table): Change saw_undefined to return
+ size_t. Change saw_undefined_ field to size_t.
+ * target-select.cc (Set_target_once::do_run_once): New function.
+ (Target_selector::Target_selector): Initialize set_target_once_
+ field. Don't initialize lock_ and initialize_lock_ fields.
+ (Target_selector::instantiate_target): Rewrite.
+ (Target_selector::set_target): New function.
+ * target-select.h (class Set_target_once): Define.
+ (class Target_selector): Update declarations. Make
+ Set_target_once a friend. Remove lock_ and initialize_lock_
+ fields. Add set_target_once_ field.
+
+2010-02-10 Ian Lance Taylor <iant@google.com>
+
+ * dirsearch.cc (Dirsearch::initialize): Add all blockers before
+ queueing any tasks.
+ * gold.cc (queue_middle_gc_tasks): Likewise. Fix final blocker.
+ (queue_middle_tasks): Add all blockers before queueing any tasks.
+ (queue_final_tasks): Likewise.
+ * token.h (Task_token::add_blockers): New function.
+ * object.h (Input_objects::number_of_relobjs): New function.
+
+2010-02-10 Ian Lance Taylor <iant@google.com>
+
+ * i386.cc (Relocate::relocate_tls): A local symbol is final if not
+ shared, not if not position independent.
+ * x86_64.cc (Relocate::relocate_tls): Likewise.
+ * testsuite/Makefile.am (check_PROGRAMS): Add tls_pie_pic_test.
+ (tls_pie_pic_test): New target.
+ * testsuite/Makefile.in: Rebuild.
+
+ * testsuite/Makefile.am (check_PROGRAMS): Add tls_pie_test.
+ (tls_test_main_pie.o, tls_test_pie.o): New targets.
+ (tls_test_file2_pie.o, tls_test_c_pie.o, tls_pie_test): Likewise.
+ * testsuite/Makefile.in: Rebuild.
+
2010-02-09 David S. Miller <davem@davemloft.net>
* sparc.cc (Target_sparc::Scan::local): Do not emit relocs other than
(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.