+2009-11-10 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Arm_relobj::do_relocate_sections): Remove options parameter
+ in method declaration.
+ (Target_arm::relocate_stub): New method declaration.
+ (Target_arm::default_target): Change to return a pointer instead of
+ a const reference.
+ (Reloc_stub::stub_type_for_reloc): Adjust for the change in
+ Target_arm::default_target.
+ (Arm_Relobj::do_relocate_sections): Remove options paramater in
+ method definition.
+ (Target_arm::relocate_section): Adjust view.
+ (Target_arm::relocate_stub): New method definition.
+
+2009-11-10 Doug Kwan <dougkwan@google.com>
+
+ * i386.cc (Target_i386::do_calls_non_split): Add a cast to avoid
+ a format warning.
+ * incremental.cc (open_incremental_binary): Initialized local
+ variables to avoid warnings.
+ * 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
+ * testsuite/plugin_test.c: Include "config.h".
+
+2009-11-09 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Target_arm::fake_relnum_for_stubs): New constant.
+ (arm_symbol_value): Remove.
+ (Arm_relocate_functions::arm_branch_common,
+ Arm_relocate_functions::abs8, Arm_relocate_functions::thm_abs5,
+ Arm_relocate_functions::abs12, Arm_relocate_functions::abs16,
+ Arm_relocate_functions::abs32, Arm_relocate_functions::rel32,
+ Arm_relocate_functions::thm_call, Arm_relocate_functions::plt32,
+ Arm_relocate_functions::call, Arm_relocate_functions::jump24,
+ Arm_relocate_functions::prel31, Arm_relocate_functions::mov_abs_nc,
+ Arm_relocate_functions::movt_abs, Arm_relocate_functions::movw_abs_nc,
+ Arm_relocate_functions::thm_mobw_abs_nc,
+ Arm_relocate_functions::thm_mov_abs,
+ Arm_relocate_functions::movw_prel_nc,
+ Arm_relocate_functions::thm_movt_abs,
+ Arm_relocate_functions::movt_prel,
+ Arm_relocate_functions::thm_movw_prel_nc,
+ Arm_relocate_functions::thm_movt_prel): Adjust callers of the above.
+ (Target_arm::Relocate::relocate): Only decompose address into two
+ parts if relocation type uses the thumb-bit and pass the actual
+ bit instead of a flag indicating that the thumb-bit is used. Adjust
+ calls to methods in Arm_relocate_functions for this change.
+
+2009-11-08 Ian Lance Taylor <ian@airs.com>
+
+ PR 10925
+ * reloc.cc: Instantiate
+ Sized_relobj::initialize_input_to_output_maps and
+ Sized_relobj:free_input_to_output_maps.
+
+2009-11-06 Ian Lance Taylor <iant@google.com>
+
+ PR 10876
+ * defstd.cc (in_segment): Set only_if_ref true for "end".
+
+2009-11-06 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (class Reloc_stub): Correct a comment.
+ (Target_arm::Target_arm): Initialize arm_input_section_map_.
+ (Target_arm::scan_section_for_stubs): New method declaration.
+ (Target_arm::do_make_elf_object, Target_arm::do_make_output_section):
+ Change methods from private to protected.
+ (Target_arm::do_may_relax): New method definition.
+ (Target_arm::do_relax, Target_arm::group_sections,
+ Target_arm::scan_reloc_for_stub,
+ Target_arm::scan_reloc_section_for_stubs): New method declarations.
+ (Target_arm::arm_input_section_map_): New data member declaration.
+ (Target_arm::scan_reloc_for_stub,
+ Target_arm::scan_reloc_section_for_stubs,
+ Target_arm::scan_section_for_stubs, Target_arm::group_sections,
+ Target_arm::do_relax): New method definitions.
+
+2009-11-06 Mikolaj Zalewski <mikolaj@google.com>
+
+ * configure.ac: Check for (struct stat)::st_mtim
+ * fileread.cc (File_read::get_mtime): Use st_mtim if available.
+ * config.in: Regenerate.
+ * configure: Regenerate.
+
+2009-11-05 Ian Lance Taylor <iant@google.com>
+
+ PR 10910
+ * output.cc (Output_segment::add_output_section): Add missing
+ return statement.
+
+2009-11-04 Ian Lance Taylor <iant@google.com>
+
+ PR 10880
+ * object.h (class Object): Add is_needed and set_is_needed
+ methods. Add is_needed_ field. Make bool fields into bitfields.
+ * symtab.cc (Symbol_table::set_dynsym_indexes): If a symbol is
+ defined in a dynamic object and referenced by a regular object,
+ set is_needed for the dynamic object.
+ * layout.cc (Layout::finish_dynamic_section): Don't add DT_NEEDED
+ if the file is marked with as_needed and it is not needed.
+
+2009-11-04 Ian Lance Taylor <iant@google.com>
+
+ PR 10887
+ * arm.cc (Target_arm::do_finalize_sections): Don't add dynamic
+ tags if data is discarded by linker script.
+ * i386.cc (Target_i386::do_finalize_sections): Likewise.
+ * powerpc.cc (Target_powerpc::do_finalize_sections): Likewise.
+ * sparc.cc (Target_sparc::do_finalize_sections): Likewise.
+ * x86_64.cc (Target_x86_64::do_finalize_sections): Likewise.
+
+2009-11-04 Ian Lance Taylor <iant@google.com>
+
+ * layout.cc (Layout::get_output_section): Add is_interp and
+ is_dynamic_linker_section parameters. Change all callers.
+ (Layout::choose_output_section): Likewise.
+ (Layout::make_output_section): Likewise.
+ (Layout::add_output_section_data): Add is_dynamic_linker_section
+ parameter. Change all callers.
+ * layout.h (class Layout): Update declarations.
+ * output.h (class Output_section): Add is_interp, set_is_interp,
+ is_dynamic_linker_section, set_is_dynamic_linker_section methods.
+ Add is_interp_, is_dynamic_linker_section_ fields. Change
+ generate_code_fills_at_write_ to a bitfield.
+ * output.cc (Output_section::Output_sections): Initialize new
+ fields.
+ (Output_segment::add_output_section): Add do_sort parameter.
+ Change all callers.
+
+2009-11-03 Ian Lance Taylor <iant@google.com>
+
+ PR 10860
+ * options.h (class General_options): Add --warn-common.
+ * resolve.cc (Symbol_table::resolve): Handle --warn-common when
+ merging two common symbols.
+ (Symbol_table::should_override): Handle --warn-common when merging
+ a common symbol with a defined symbol. Use report_resolve_problem
+ for multiple definitions.
+ (Symbol_table::report_resolve_problem): New function.
+ * symtab.h (class Symbol_table): Declare report_resolve_problem.
+
+2009-11-03 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Target_arm::Target_arm): Initialize stub_tables_ and
+ stub_factory_.
+ (Target_arm::stub_factory): New method definition.
+ (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):
+ New type definitions.
+ (Target_arm::stub_tables_, Target_arm::stub_factory_): New data
+ member declarations.
+ (Target_arm::reloc_uses_thumb_bit, Target_arm::new_arm_input_section,
+ Target_arm::find_arm_input_section, Target_arm::new_stub_table):
+ New method definitions.
+
+2009-11-03 Ian Lance Taylor <iant@google.com>
+
+ * options.h (class General_options): Add --warn_constructors.
+
+2009-11-03 Ian Lance Taylor <iant@google.com>
+
+ PR 10893
+ * defstd.cc (in_section): Add entries for __rel_iplt_start,
+ __rel_iplt_end, __rela_iplt_start, __rela_iplt_end, and __stack.
+
+2009-11-03 Ian Lance Taylor <iant@google.com>
+
+ PR 10895
+ * po/Make-in ($(srcdir)/$(PACKAGE).pot): Pass -C and
+ --msgid-bugs-address.
+ (install-pdf): New target.
+ (install-data_yes): Look up one directory to find mkinstalldirs.
+
+2009-11-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * po/Make-in (.po.gmo): Don't generate .gmo files in source
+ tree.
+
+2009-10-30 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Stub_addend_reader): Fix bug in previouls check-in.
+
+2009-10-30 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Stub_addend_reader): New struct template definition
+ and partial specializations.
+ (Stub_addend_reader::operator()): New method definition for a
+ partially specialized template.
+
+2009-10-30 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Arm_relobj::processor_specific_flags): New method
+ definition.
+ (Arm_relobj::do_read_symbols): New method declaration.
+ (Arm_relobj::processor_specific_flags_): New data member declaration.
+ (Arm_dynobj): New class definition.
+ (Target_arm::do_finalize_sections): Add input_objects parameter.
+ (Target_arm::do_adjust_elf_header): New method declaration.
+ (Target_arm::are_eabi_versions_compatible,
+ (Target_arm::merge_processor_specific_flags): New method declaration.
+ (Target_arm::do_make_elf_object): New overloaded method definitions
+ and declaration.
+ (Arm_relobj::do_read_symbols): New method definition.
+ (Arm_dynobj::do_read_symbols): Ditto.
+ (Target_arm::do_finalize_sections): Add input_objects parameters.
+ Merge processor-specific flags from all input objects.
+ (Target_arm::are_eabi_versions_compatible,
+ Target_arm::merge_processor_specific_flags,
+ Target_arm::do_adjust_elf_header, Target_arm::do_make_elf_object):
+ New method definitions.
+ * i386.cc (Target_i386::do_finalize_sections): Add unnamed
+ Input_objects pointer type parameter.
+ * layout.cc (Layout::finalize): Pass input objects to target's.
+ finalize_sections function.
+ * output.cc (Output_file_header::do_sized_write): Set ELF file
+ header's processor-specific flags.
+ * powerpc.cc (Target_powerpc::do_finalize_sections): Add unnamed
+ Input_objects pointer type parameter.
+ * sparc.cc (Target_sparc::do_finalize_sections): Same.
+ * target.h (Input_objects): New forward class declaration.
+ (Target::processor_specific_flags,
+ Target::are_processor_specific_flags_sect): New method definitions.
+ (Target::finalize_sections): Add input_objects parameter.
+ (Target::Target): Initialize processor_specific_flags_ and
+ are_processor_specific_flags_set_.
+ (Target::do_finalize_sections): Add unnamed Input_objects pointer type
+ parameter.
+ (Target::set_processor_specific_flags): New method definition.
+ (Target::processor_specific_flags_,
+ Target::are_processor_specific_flags_set_): New data member
+ declarations.
+ * x86_64.cc (Target_x86_64::do_finalize_sections): Add unnamed
+ Input_objects pointer type parameter.
+
+2009-10-30 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc: Use Arm_address instead of elfcpp::Elf_types<32>::Elf_Addr.
+
+2009-10-28 Ian Lance Taylor <iant@google.com>
+
+ * object.h (class Relobj): Drop options parameter from
+ gc_process_relocs, scan_relocs, relocate, do_gc_process_relocs,
+ do_scan_relocs, do_relocate. Change all callers.
+ (class Sized_relobj): Drop options parameters from
+ do_gc_process_relocs, do_scan_relocs, do_relocate,
+ do_relocate_sections, relocate_sections, emit_relocs_scan,
+ emit_relocs_scan_reltype. Change all callers.
+ (struct Relocate_info): Remove options field and all references to
+ it.
+ * reloc.h (class Read_relocs): Remove options constructor
+ parameter and options_ field. Change all callers.
+ (class Gc_process_relocs, class Scan_relocs): Likewise.
+ (class Relocate_task): Likewise.
+ * target-reloc.h (scan_relocs): Remove options parameter. Change
+ all callers.
+ (scan_relocatable_relocs): Likewise.
+ * target.h (class Sized_target): Remove options parameter from
+ gc_process_relocs, scan_relocs, scan_relocatable_relocs. Change
+ all callers.
+ * gc.h (gc_process_relocs): Remove options parameter. Change all
+ callers.
+ * arm.cc: Update functions to remove options parameters.
+ * i386.cc: Likewise.
+ * powerpc.cc: Likewise.
+ * sparc.cc: Likewise.
+ * x86_64.cc: Likewise.
+ * testsuite/testfile.cc: Likewise.
+
+2009-10-28 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Arm_relobj): New class definition.
+ (Arm_relobj::scan_sections_for_stubs,
+ Arm_relobj::do_count_local_symbols, Arm_relobj::do_relocate_sections):
+ New method definitions.
+
+2009-10-28 Cary Coutant <ccoutant@google.com>
+
+ * plugin.h (Plugin::Plugin): Initialize cleanup_done_.
+ (Plugin::cleanup_done_): New member.
+ (Plugin_manager::Plugin_manager): Remove cleanup_done_.
+ (Plugin_manager::cleanup_done_): Remove.
+ (Plugin_manager::add_input_file): Edit error message.
+ * plugin.cc (Plugin::cleanup): Test and set cleanup_done_.
+ (Plugin_manager::cleanup): Remove use of cleanup_done_.
+
+2009-10-27 Mikolaj Zalewski <mikolajz@google.com>
+
+ * fileread.cc: (File_read::View::~View): Use the new
+ data_ownership_ filed.
+ (File_read::~File_read): Dispose the new whole_file_view_.
+ (File_read::open): Mmap the whole file if needed.
+ (File_read::open): Use whole_file_view_ instead of contents_.
+ (File_read::find_view): Use whole_file_view_ if applicable.
+ (File_read::do_read): Use whole_file_view_ instead of contents_.
+ (File_read::make_view): Use whole_file_view_ instead of contents_,
+ update File_read::View::View call.
+ (File_read::find_or_make_view): Update File_read::View::View
+ call.
+ * fileread.h: (File_read::File_read): Initialize whole_file_view_,
+ remove contents_
+ (File_read::View::Data_ownership): New enum.
+ (File_read::View::View): Replace bool mapped_ with Data_ownership
+ argument.
+ (File_read::View::mapped_): Remove (replaced by data_ownership_).
+ (File_read::View::data_ownership_): New field.
+ (File_read::contents_): Remove (replaced by whole_file_view_).
+ (File_read::whole_file_view_): New field.
+ * options.h (class General_options): Add --keep-files-mapped.
+
+2009-10-27 Cary Coutant <ccoutant@google.com>
+
+ * symtab.cc (add_from_pluginobj): Pass correct value for is_ordinary.
+ * testsuite/Makefile.am (plugin_test_5): New test case.
+ * testsuite/Makefile.in: Regenerate.
+
+2009-10-25 Doug Kwan <dougkwan@google.com>
+
+ * object.h (Sized_relobj::View_size, Sized_relobj::Views): Change
+ 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
+ Sized_relobj::relocate_sections. Instantiate template explicitly
+ for different target sizes and endianity.
+
+2009-10-24 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc (Arm_output_section, Arm_relobj): Forward class declarations.
+ (Arm_input_section::as_arm_input_section): New method.
+ (Arm_output_section): New class definition.
+ (Arm_output_section::create_stub_group,
+ Arm_output_section::group_sections): New method definitions.
+