elfcpp:/
[deliverable/binutils-gdb.git] / gold / ChangeLog
index 8d7526961c8a1e464764363e4693a21a11f79f56..d19a5be24661603568eb18af4357845ed9a6cb69 100644 (file)
@@ -1,3 +1,290 @@
+2010-08-04  Ian Lance Taylor  <iant@google.com>
+
+       * x86_64.cc (Target_x86_64::Scan::local): Use
+       R_X86_64_GNU_VTINHERIT instead of R_386_GNU_VTINHERIT and
+       R_X86_64_GNU_VTENTRY instead of R_386_GNU_VTENTRY.
+       (Target_x86_64::Scan::global): Likewise.
+       (Target_x86_64::Relocate::relocate): Likewise.
+       (Target_x86_64::Relocatable_size_for_reloc::get_size_for_reloc):
+       Likewise.
+
+2010-08-03  Cary Coutant  <ccoutant@google.com>
+
+       * merge.cc (Output_merge_string::do_add_input_section): Count strings
+       to reserve space in merged_strings vector. Keep total input size
+       for stats.
+       (Output_merge_string::do_print_merge_stats): Print total input size.
+       * merge.h (Output_merge_string): Add input_size_ field.
+       * stringpool.cc (Stringpool_template::string_length): Move
+       implementations out of Stringpool_template class and place in
+       stringpool.h.
+       * stringpool.h (string_length): Move out of Stringpool_template.
+
+2010-08-03  Ian Lance Taylor  <iant@google.com>
+
+       PR 11712
+       * layout.cc (relaxation_loop_body): If address of load segment is
+       set, adjust address to include headers if possible.
+
+2010-08-03  Ian Lance Taylor  <iant@google.com>
+
+       * version.cc (version_string): Bump to 1.10.
+
+2010-08-03  Ian Lance Taylor  <iant@google.com>
+
+       PR 11805
+       * layout.h (enum Output_section_order): Define.
+       (class Layout): Update declarations.
+       * layout.cc (Layout::get_output_section): Add order parameter.
+       Remove is_interp, is_dynamic_linker_section, is_last_relro, and
+       is_first_non_relro parameters.  Change all callers.
+       (Layout::choose_output_section): Likewise.
+       (Layout::add_output_section_data): Likewise.
+       (Layout::make_output_section): Likewise.  Set order.
+       (Layout::default_section_order): New function.
+       (Layout::layout_eh_frame): Call add_output_section_to_nonload.
+       * output.cc (Output_section::Output_section): Initialize order_.
+       Don't initialize deleted fields.
+       (Output_segment::Output_segment): Don't initialize deleted
+       fields.
+       (Output_segment::add_output_section_to_load): New function
+       replacing add_output_section.  Change all callers to call this or
+       add_output_section_to_nonload.
+       (Output_segment::add_output_section_to_nonload): New function.
+       (Output_segment::remove_output_section): Rewrite.
+       (Output_segment::add_initial_output_data): Likewise.
+       (Output_segment::has_any_data_sections): Likewise.
+       (Output_segment::is_first_section_relro): Likewise.
+       (Output_segment::maximum_alignment): Likewise.
+       (Output_segment::has_dynamic_reloc): New function replacing
+       dynamic_reloc_count.  Change all callers.
+       (Output_segment::has_dynamic_reloc_list): New function replacing
+       dynamic_reloc_count_list.  Change all callers.
+       (Output_segment::set_section_addresses): Rewrite.
+       (Output_segment::set_offset): Rewrite.
+       (Output_segment::find_first_and_last_list): Remove.
+       (Output_segment::set_tls_offsets): Rewrite.
+       (Output_segment::first_section_load_address): Likewise.
+       (Output_segment::output_section_count): Likewise.
+       (Output_segment::section_with_lowest_load_address): Likewise.
+       (Output_segment::write_section_headers): Likewise.
+       (Output_segment::print_sections_to_map): Likewise.
+       * output.h (class Output_data): Remove dynamic_reloc_count_
+       field.  Add has_dynamic_reloc_ field.  Make bools into bitfields.
+       (Output_data::add_dynamic_reloc): Rewrite.
+       (Output_data::has_dynamic_reloc): New function.
+       (Output_data::dynamic_reloc_count): Remove.
+       (class Output_section): Add order_ field.  Remvoe is_relro_local_,
+       is_last_relro_, is_first_non_relro_, is_interp_,
+       is_dynamic_linker_section_ fields.  Add order and set_order
+       functions.  Remove is_relro_local, set_is_relro_local,
+       is_last_relro, set_is_last_relro, is_first_non_relro,
+       set_is_first_non_relro functions, is_interp, set_is_interp,
+       is_dynamic_linker_section, and set_is_dynamic_linker_section
+       functions.
+       (class Output_segment): Change Output_data_list from std::list to
+       std:;vector.  Add output_lists_ field.  Remove output_data_ and
+       output_bss_ fields.  Update declarations.
+
+2010-08-02  Ian Lance Taylor  <iant@google.com>
+
+       * arm.cc (Target_arm::gc_process_relocs): Use typename.
+       * powerpc.cc (Target_powerpc::gc_process_relocs): Likewise.
+       * sparc.cc (Target_sparc::gc_process_relocs): Likewise.
+
+2010-08-02  Ian Lance Taylor  <iant@google.com>
+
+       PR 11855
+       * script.cc (Script_options::Script_options): Initialize
+       symbol_definitions_ and symbol_references_.
+       (Script_options::add_symbol_assignment): Update
+       symbol_definitions_ and symbol_references_.
+       (Script_options::add_symbol_reference): New function.
+       (script_symbol): New function.
+       * script.h (class Script_options): Add symbol_definitions_ and
+       symbol_references_ fields.
+       (Script_options::referenced_const_iterator): New type.
+       (Script_options::referenced_begin): New function.
+       (Script_options::referenced_end): New function.
+       (Script_options::is_referenced): New function.
+       (Script_options::any_unreferenced): New function.
+       * script-c.h (script_symbol): Declare.
+       * yyscript.y (exp): Call script_symbol.
+       * symtab.cc: Include "script.h".
+       (Symbol_table::gc_mark_undef_symbols): Add layout parameter.
+       Change all callers.  Check symbols referenced by scripts.
+       (Symbol_table::add_undefined_symbols_from_command_line): Add
+       layout parameter.  Change all callers.
+       (Symbol_table::do_add_undefined_symbols_from_command_line):
+       Likewise.  Break out loop body.  Check symbols referenced by
+       scripts.
+       (Symbol_table::add_undefined_symbol_from_command_line): New
+       function broken out of
+       do_add_undefined_symbols_from_command_line.
+       * symtab.h (class Symbol_table): Update declarations.
+       * archive.cc: Include "layout.h".
+       (Archive::should_include_member): Add layout parameter.  Change
+       all callers.  Check for symbol mentioned in expression.
+       * archive.h (class Archive): Update declaration.
+       * object.cc (Sized_relobj::do_should_include_member): Add layout
+       parameter.
+       * object.h (Object::should_include_member): Add layout parameter.
+       Change all callers.
+       (Object::do_should_include_member): Add layout parameter.
+       (class Sized_relobj): Update declaration.
+       * dynobj.cc (Sized_dynobj::do_should_include_member): Add layout
+       parameter.
+       * dynobj.h (class Sized_dynobj): Update declaration.
+       * plugin.cc (Sized_pluginobj::do_should_include_member): Add
+       layout parameter.
+       * plugin.h (class Sized_pluginobj): Update declaration.
+
+2010-08-02  Ian Lance Taylor  <iant@google.com>
+
+       PR 11866
+       * output.cc (Output_segment::set_offset): Search for the first and
+       last sections rather than assuming that the list is in order.
+       (Output_segment::find_first_and_last_list): New function.
+       * output.h (class Output_segment): Update declarations.
+       * testsuite/Makefile.am (check_PROGRAMS): Add relro_strip_test.
+       (relro_strip_test_SOURCES): New variable.
+       (relro_strip_test_DEPENDENCIES): New variable.
+       (relro_strip_test_LDFLAGS): New variable.
+       (relro_strip_test_LDADD): New variable.
+       (relro_strip_test.so): New target.
+
+2010-08-02  Ian Lance Taylor  <iant@google.com>
+
+       * i386.cc (class Target_i386): Add got_tlsdesc_ field.
+       (Target_i386::Target_i386):: Initialize got_tlsdesc_.
+       (Target_i386::got_tlsdesc_section): New function.
+       (Target_i386::got_section): Create space for GOT entries for
+       TLSDESC relocations.
+       (Target_i386::Scan::local): Use TLSDESC GOT for unoptimized
+       R_386_TLS_GOTDESC.
+       (Target_i386::Scan::global): Likewise.
+       (Target_i386::Relocate::relocate_tls): Adjust GOT offset when
+       using TLSDESC GOT.
+       * x86_64.cc (class Target_x86_64): Add got_tlsdesc_ field.
+       (Target_x86_64::Target_x86_64):: Initialize got_tlsdesc_.
+       (Target_x86_64::got_tlsdesc_section): New function.
+       (Target_x86_64::got_section): Create space for GOT entries for
+       TLSDESC relocations.
+       (Target_x86_64::Scan::local): Use TLSDESC GOT for unoptimized
+       R_386_TLS_GOTDESC.
+       (Target_x86_64::Scan::global): Likewise.
+       (Target_x86_64::Relocate::relocate_tls): Adjust GOT offset when
+       using TLSDESC GOT.
+
+2010-08-02  Ian Lance Taylor  <iant@google.com>
+
+       * testsuite/final_layout.sh: Use dc to convert from hex to
+       decimal.
+
+2010-07-29  Sriraman Tallam  <tmsriram@google.com>
+
+       * arm.cc (Target_arm<big_endian>::gc_process_relocs): Add template
+       paramter to the call to gold::gc_process_relocs.
+       * i386.cc (Target_i386<big_endian>::gc_process_relocs): Add template
+       paramter to the call to gold::gc_process_relocs.
+       * x86_64.cc (Target_x86_64<big_endian>::gc_process_relocs): Add template
+       parameter to the call to gold::gc_process_relocs.
+       * powerpc.cc (Target_powerpc<big_endian>::gc_process_relocs): Add
+       template parameter to the call to gold::gc_process_relocs.
+       * sparc.cc (Target_sparc<big_endian>::gc_process_relocs): Add template
+       paramter to the call to gold::gc_process_relocs.
+       * gc.h (get_embedded_addend_size): New function.
+       (gc_process_relocs): Save the size of the reloc for use by ICF.
+       * icf.cc (get_section_contents): Get the addend from the text section
+       for SHT_REL relocation sections.
+       * icf.h (Icf::Reloc_addend_size_info): New typedef.
+       (Icf::Reloc_info): Add new member reloc_addend_size_info.
+       * int_encoding.h (read_from_pointer): New overloaded function.
+       * testsuite/Makefile.am (icf_sht_rel_addend_test): New test.
+       * testsuite/icf_sht_rel_addend_test.sh: New file.
+       * testsuite/icf_sht_rel_addend_test_1.cc: New file.
+       * testsuite/icf_sht_rel_addend_test_2.cc: New file.
+
+2010-07-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * configure.ac (AM_INIT_AUTOMAKE): Use parallel-tests option.
+       * Makefile.in: Regenerate.
+       * testsuite/Makefile.in: Regenerate.
+
+2010-07-27  Jeffrey Yasskin  <jyasskin@google.com>
+
+       * testsuite/debug_msg.sh: Test mixed weak/strong symbol behavior.
+       * gold/testsuite/debug_msg.cc: Likewise.
+       * gold/testsuite/odr_violation1.cc
+       * gold/testsuite/odr_violation2.cc
+
+2010-07-21  Cary Coutant  <ccoutant@google.com>
+
+       * merge.h (Output_merge_string::Merged_string): Remove object, shndx,
+       string, and length fields.
+       (Output_merge_string::Merged_strings_list): New type.
+       (Output_merge_string::Merged_strings_lists): New typedef.
+       (Output_merge_string): Replace merged_strings_ with
+       merged_strings_lists_.
+       * merge.cc (Output_merge_string::do_add_input_section): Allocate new
+       Merged_strings_list per input object and section.  Don't store pointer
+       to the string.  Don't store length with each merged string entry.
+       (Output_merge_string::finalize_merged_data): Loop over list of merged
+       strings lists.  Recompute length of each merged string.
+
+2010-07-15  Cary Coutant  <ccoutant@google.com>
+
+       * plugin.cc (Plugin_finish::run): Don't call cleanup handlers from
+       here.
+
+2010-07-14  Ian Lance Taylor  <iant@google.com>
+
+       * descriptors.cc (Descriptors::open): Report correct name in error
+       message.
+
+2010-07-13  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Arm_input_section::Arm_input_section): For a
+       SHT_ARM_EXIDX section, always keeps the input sections.
+       (Arm_input_section::set_exidx_section_link): New method.
+       (Arm_exidx_input_section::Arm_exidx_input_section): Initialize
+       has_errors_ to false.
+       (Arm_exidx_input_section::has_errors,
+       Arm_exidx_input_section::set_has_errors): New methods.
+       (Arm_exidx_input_section::has_errors_): New data member.
+       (Arm_relobj::get_exidx_shndx_list): New method.
+       (Arm_output_section::append_text_sections_to_list): Do not skip
+       section without SHF_EXECINSTR.
+       (Arm_output_section::fix_exidx_coverage): Skip input sections with
+       errors.
+       (Arm_relobj::make_exidx_input_section): Add new parameter for text
+       section header.  Make error messages more verbose.  Check for
+       a non-executable section linked to an EXIDX section.
+       (Arm_relobj::do_read_symbols): Remove error checking, which has been
+       moved to Arm_relobj::make_exidx_input_section.  Add an assertion to
+       check that there is no deferred EXIDX section if we exit early.
+       Instead of not making an EXIDX section in case of an error, make one
+       and set the has_errors flag of it.
+       (Target_arm::do_finalize_sections): Fix up links of EXIDX sections
+       in a relocatable link.
+       (Target_arm::do_relax): Look for the EXIDX output section instead of
+       assuming that it is called .ARM.exidx.
+       (Target_arm::fix_exidx_coverage): Add a new parameter for input
+       section list.  Do not check for SHF_EXECINSTR section flags but
+       skip any input section with errors.
+       * output.cc (Output_section::Output_section): Initialize
+       always_keeps_input_sections_ to false.
+       (Output_section::add_input_section): Check for
+       always_keeps_input_sections_.
+       *  output.h (Output_section::always_keeps_input_sections,
+       Output_section::set_always_keeps_input_sections): New methods.
+       (Output_section::always_keeps_input_sections): New data member.
+
+2010-07-13  Rafael Espindola  <espindola@google.com>
+
+       * fileread.cc (try_extra_search_path, find_file): Move to Input_file.
+       * fileread.h (Input_file): Add try_extra_search_path and find_file.
+
 2010-07-13  Philip Herron  <herron.philip@googlemail.com>
            Ian Lance Taylor  <iant@google.com>
 
This page took 0.028288 seconds and 4 git commands to generate.