* gold.h (is_wildcard_string): New function.
[deliverable/binutils-gdb.git] / gold / ChangeLog
index c9ecbe7994e805d39f6c99375f59cfb3b04325fa..95e683f4152c27a92ccc34447fdc690e16a2be9f 100644 (file)
@@ -1,3 +1,188 @@
+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
This page took 0.0262869999999999 seconds and 4 git commands to generate.