aboutsummaryrefslogtreecommitdiff
path: root/gold/ChangeLog
AgeCommit message (Collapse)AuthorFilesLines
2010-06-252010-06-25 Doug Kwan <dougkwan@google.com>Doug Kwan1-0/+15
* 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-212010-06-21 Rafael Espindola <espindola@google.com>Rafael Ávila de Espíndola1-0/+13
* 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-21 Rafael Espindola <espindola@google.com> * plugin-api.h (ld_plugin_set_extra_library_path): New. (ld_plugin_tag): Add LDPT_SET_EXTRA_LIBRARY_PATH. (ld_plugin_tv): Add tv_set_extra_library_path.
2010-06-19 * layout.cc (gdb_sections): Add .debug_types.Cary Coutant1-0/+5
(lines_only_debug_sections): Likewise.
2010-06-182010-06-18 Rafael Espindola <espindola@google.com>Rafael Ávila de Espíndola1-0/+7
* plugin.h (ld_plugin_add_input_file, ld_plugin_add_input_library): Make argument const. 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-162010-06-16 Doug Kwan <dougkwan@google.com>Doug Kwan1-0/+6
* 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-152010-06-15 Viktor Kutuzov <vkutuzov@accesssoftek.com>Doug Kwan1-0/+5
* arm.cc: Allow combining objects with no EABI version information.
2010-06-152010-06-15 Rafael Espindola <espindola@google.com>Rafael Ávila de Espíndola1-0/+4
* plugin.cc (Plugin_hook::run): Set in_real_elf for the start symbol.
2010-06-15 * fileread.cc: Only #include <sys/uio.h> if HAVE_READV.Ian Lance Taylor1-0/+5
(struct iovec): Correct !HAVE_READV definition.
2010-06-10 * object.cc (Sized_relobj::do_layout): Defer layout for reloc sections.Cary Coutant1-0/+15
(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 * yyscript.y (input_list_element): Allow strings prefixed withNick Clifton1-33/+41
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-082010-06-07 Doug Kwan <dougkwan@google.com>Doug Kwan1-0/+6
* 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 * gold-threads.cc (Lock_impl_threads::Lock_impl_threads): CorrectIan Lance Taylor1-0/+5
#ifdef typo.
2010-06-03 PR gold/11658Sriraman Tallam1-0/+9
* 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 * gold.h (is_wildcard_string): New function.Sriraman Tallam1-0/+59
* 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-012010-06-01 Rafael Espindola <espindola@google.com>Rafael Ávila de Espíndola1-0/+4
* plugin-api.h (ld_plugin_tag): Add LDPT_OUTPUT_NAME. 2010-06-01 Rafael Espindola <espindola@google.com> * plugin.cc (Plugin::load): Pass the output name to the plugin.
2010-06-012010-06-01 Rafael Espindola <espindola@google.com>Rafael Ávila de Espíndola1-0/+5
* plugin.cc (Sized_pluginobj::::do_add_symbols): Correctly set the visibility of symbols.
2010-05-262010-05-27 Doug Kwan <dougkwan@google.com>Doug Kwan1-0/+6
* 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-262010-05-26 Rafael Espindola <espindola@google.com>Rafael Ávila de Espíndola1-0/+11
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-262010-05-26 Rafael Espindola <espindola@google.com>Rafael Ávila de Espíndola1-0/+5
* script-sections.cc (Output_section_definition::set_section_addresses): Check for --section-start.
2010-05-262010-05-26 Doug Kwan <dougkwan@google.com>Doug Kwan1-0/+12
* 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-26 * timer.cc: Only #include <sys/times.h> if HAVE_TIMES is defined.Ian Lance Taylor1-0/+4
2010-05-232010-05-23 Doug Kwan <dougkwan@google.com>Doug Kwan1-0/+79
* 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-22Add a cast to avoid a compilation error.H.J. Lu1-0/+6
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-192010-05-19 Rafael Espindola <espindola@google.com>Rafael Ávila de Espíndola1-0/+10
* 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-192010-05-14 Doug Kwan <dougkwan@google.com>Doug Kwan1-0/+45
* 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-18Fix define in gold.hRalf Wildenhues1-0/+5
gold/: * gold.h (Unordered_multimap, Unordered_map): Fix defines for when neither HAVE_TR1_UNORDERED_MAP nor HAVE_EXT_HASH_MAP are set.
2010-05-182010-05-18 Rafael Espindola <espindola@google.com>Rafael Ávila de Espíndola1-0/+6
* options.cc (General_options::finalize): Handle -nostdlib. * options.h (nostdlib): New option. * script.cc (script_add_search_dir): Handle -nostdlib.
2010-05-132010-05-12 Doug Kwan <dougkwan@google.com>Doug Kwan1-0/+20
elfcpp/ChangeLog * arm.h (Tag_FP_arch, Tag_ABI_align_needed, Tag_ABI_align_preserved, Tag_FP_HP_extension, Tag_MPextension_use_legacy): Rename from existing tags. (Tag_undefined40, Tag_undefined41, Tag_MPextension_use, Tag_undefined43): New tags. (Targ_VFP_arch, Tag_ABI_align8_needed, TAG_ABI_align8_preserved, Tag_VFP_HP_extension): Define aliases for backward compatiblity. gold/ChangeLog * 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-05Updated Spanish translations.Nick Clifton1-0/+4
2010-04-27Properly install gold/ld as default cross linker.H.J. Lu1-0/+6
gold/ 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. ld/ 2010-04-27 H.J. Lu <hongjiu.lu@intel.com> * Makefile.am (install-exec-local): Properly install ld as default cross linker. * Makefile.in: Regenerated.
2010-04-27gold:Nick Clifton1-0/+13
* 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. ld: * configure.in (install_as_default): Define and set to true unless --enable-gold=both/gold has been specified. * configure: Regenerate. * Makefile.am (transform): Use ld.bfd as the default name of the linker. (install-exec-local): Also install the executable as a binary named 'ld' if install_as_default is true. * Makefile.in: Regenerate.
2010-04-24 * layout.cc (Layout::layout_reloc): In relocatable link don'tIan Lance Taylor1-0/+5
combine reloc sections for grouped sections.
2010-04-232010-04-23 Sriraman Tallam <tmsriram@google.com>Sriraman Tallam1-0/+11
* 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-23 * expression.cc (Expression::Expression_eval_info): AddIan Lance Taylor1-0/+31
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-22Updated translation templates.Nick Clifton1-0/+5
Updated Bulgarian translation. Updated Finnish translations. Updated French translations. Updated Vietnamese translations.
2010-04-22Add icf_virtual_function_folding_test to check_PROGRAMS.H.J. Lu1-1/+7
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-212010-04-15 Andrew Haley <aph@redhat.com>Andrew Haley1-0/+14
* emultempl/armelf.em (merge_exidx_entries): New variable. (OPTION_NO_MERGE_EXIDX_ENTRIES): New definition. ("no-merge-exidx-entries"): New option. * ld.texinfo (merge-exidx-entries): Document this option. 2010-04-15 Andrew Haley <aph@redhat.com> * bfd-in.h (elf32_arm_fix_exidx_coverage): Add new flag: merge_exidx_entries. * bfd-in2.h: Likewise. * elf32-arm.c (elf32_arm_fix_exidx_coverage): Likewise. Use it to control merging of exidx entries. 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-202010-04-18 Sriraman Tallam <tmsriram@google.com>Sriraman Tallam1-0/+26
* 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-152010-04-14 Doug Kwan <dougkwan@google.com>Doug Kwan1-0/+7
* 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-132010-04-13 Doug Kwan <dougkwan@google.com>Doug Kwan1-0/+5
* arm.cc (Arm_input_section::set_final_data_size): Compute accurate final data size instead of using current data size.
2010-04-09Add back missing change log.Doug Kwan1-0/+52
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-09Add prototype to gold tests.H.J. Lu1-0/+5
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-092010-04-08 Doug Kwan <dougkwan@google.com>Doug Kwan1-0/+9
* 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-082010-04-07 Doug Kwan <dougkwan@google.com>Doug Kwan1-0/+9
* 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 * archive.cc (include_member): Destroy Read_symbols_data object beforeCary Coutant1-0/+14
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-072010-04-07 Doug Kwan <dougkwan@google.com>Doug Kwan1-0/+40
* 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-07Use Automake option no-dist in gold.Ralf Wildenhues1-0/+7
gold/: * configure.ac (AM_INIT_AUTOMAKE): Add option no-dist. * configure: Regenerate. * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate.
2010-04-06 gcc PR lto/42757Cary Coutant1-0/+11
* 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-06Updated binutils Vietnamese translation.Nick Clifton1-0/+4
New gold Vietnamese translation. New gas Russian translation.
2010-03-312010-03-30 Doug Kwan <dougkwan@google.com>Doug Kwan1-0/+4
* arm.cc (Target_arm::using_thumb_only): Handle v6-M