-2009-06-21 Ian Lance Taylor <ian@airs.com>
+2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.in: Regenerate.
+ * aclocal.m4: Likewise.
+ * config.in: Likewise.
+ * configure: Likewise.
+ * testsuite/Makefile.in: Likewise.
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Add foreign.
+ * testsuite/Makefile.am (AUTOMAKE_OPTIONS): Add foreign.
+ * Makefile.in: Regenerate.
+ * testsuite/Makefile.in: Regenerate.
+
+2009-08-19 Cary Coutant <ccoutant@google.com>
+
+ * resolve.cc (Symbol_table::resolve): Don't complain about defined
+ symbols in shared libraries overridden by hidden or internal symbols
+ in the main program.
+
+2009-08-19 Chris Demetriou <cgd@google.com>
+
+ * testsuite/debug_msg.sh: Match .* rather than ${srcdir} when
+ checking source file names in error messages.
+
+2009-08-18 Doug Kwan <dougkwan@google.com>
+
+ * dynobj.cc (Sized_dynobj::setup): Take a Target object instead of
+ an elcpp::Ehdr as parameter. Adjust call to set_target.
+ * dynobj.h (Sized_dynobj::setup): Take a Target object instead of
+ an elfcpp::Ehdr as parameter.
+ * object.cc (Object::set_target): Remove the version that looks up
+ a target and sets it.
+ (Sized_relobj::setup): Take a Target object instead of
+ an elfcpp::Ehdr as parameter. Adjust call to set_target.
+ (make_elf_sized_object): Find target and ask target to
+ make an ELF object.
+ * object.h: (Object::set_target): Remove the version that looks up
+ a target and sets it.
+ (Sized_relobj::setup): Take a Target object instead of
+ an elfcpp:Ehdr as parameter.
+ * target.cc: Include dynobj.h.
+ (Target::do_make_elf_object_implementation): New.
+ (Target::do_make_elf_object): New.
+ * target.h (Target::make_elf_object): New template declaration.
+ (Target::do_make_elf_object): New method declarations.
+ (Target::do_make_elf_object_implementation): New template declaration.
+
+2009-08-14 Ian Lance Taylor <iant@google.com>
+
+ * gold.h (FUNCTION_NAME): Define.
+ (gold_unreachable): Use FUNCTION_NAME.
+
+2009-08-12 Sriraman Tallam <tmsriram@google.com>
+
+ * icf.cc (Icf::find_identical_sections): Issue a warning when a
+ symbol in the --keep-unique list is not found.
+
+2009-08-12 Sriraman Tallam <tmsriram@google.com>
+
+ * icf.cc (Icf::find_identical_sections): Unfold symbols that have
+ been maked as --keep-unique.
+ (Icf::unfold_section): New function.
+ * icf.h (Icf::unfold_section): New function.
+ * options.h (General_options::keep_unique): New option.
+ * testsuite/Makefile.am: Add commands to build icf_keep_unique_test.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/icf_keep_unique_test.sh: New file.
+ * testsuite/icf_keep_unique_test.cc: New file.
+
+2009-08-12 Cary Coutant <ccoutant@google.com>
+
+ PR 10471
+ * resolve.cc (Symbol_table::resolve): Check for references from
+ dynamic objects to hidden and internal symbols.
+ * testsuite/Makefile.am (hidden_test.sh): New test.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/hidden_test.sh: New script.
+ * testsuite/hidden_test_1.c: New test source.
+ * testsuite/hidden_test_main.c: New test source.
+
+2009-08-11 Doug Kwan <dougkwan@google.com>
+
+ * arm.cc: Update comments.
+ (Target_arm::do_finalize_sections): Add a special PT_ARM_EXIDX
+ segment to locate the .ARM.exidx section if present.
+
+2009-08-09 Doug Kwan <dougkwan@google.com>
+
+ * dynobj.h (Sized_dynobj::do_section_entsize): Revert the previous
+ patch.
+
+2009-08-07 Sriraman Tallam <tmsriram@google.com>
+ * dynobj.h (Sized_dynobj::do_section_entsize): Add return to avoid
+ compiler warnings.
+
+2009-08-06 Sriraman Tallam <tmsriram@google.com>
+
+ * x86_64.cc (Target_x86_64::Relocate::relocate_tls): Check for a
+ valid tls_segment only for non-debug-section relocations.
+ * testsuite/Makefile.am: Add gc_tls_test.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/gc_tls_test.cc: New file.
+ * 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.
+ (HFILES): Add icf.h
+ * Makefile.in: Regenerate.
+ * dynobj.h (Sized_dynobj::do_section_entsize): New function.
+ * gc.h (gc_process_relocs): Populate lists used by icf to contain
+ section, symbol and addend information for the relocs.
+ * gold.cc (queue_middle_tasks): Call identical code folding.
+ * gold.h: Add defines for multimap.
+ * layout.cc (Layout::create_symtab_sections): Add symtab as parameter
+ to the call of finalize_local_symbols.
+ * main.cc (main): Create object of class Icf.
+ * object.cc (Sized_relobj::do_layout): Allow this function to be
+ called twice during icf.
+ (Sized_relobj::do_finalize_local_symbols): Fold symbols corresponding
+ to sections marked as identical by icf.
+ (Sized_relobj::do_section_flags): Get section_flags from Symbols_data
+ when available.
+ (Sized_relobj::do_section_entsize): New function.
+ * object.h (Object::section_entsize): New function.
+ (Object::do_section_entsize): New pure virtual function.
+ (Relobj::finalize_local_symbols): Add new parameter.
+ (Relobj::do_section_entsize): New function.
+ * options.h (General_options::icf): New option.
+ (General_options::icf_iterations): New option.
+ (General_options::print_icf_sections): New option.
+ * plugin.cc (Sized_pluginobj::do_section_entsize): New function.
+ * plugin.h (Sized_pluginobj::do_section_entsize): New function.
+ * reloc.cc (Read_relocs::run): Delay scanning relocs when doing
+ icf.
+ * symtab.cc (Symbol_table::is_section_folded): New function.
+ (Symbol_table::sized_finalize_symbol): Fold symbols corresponding
+ to sections marked as identical by icf.
+ * symtab.h (Symbol_table::set_icf): New function.
+ (Symbol_table::icf): New function.
+ (Symbol_table::is_section_folded): New function.
+ (Symbol_table::icf_): New data member.
+ * target-reloc.h (relocate_section): Ignore sections folded by icf.
+ * testsuite/Makefile.am: Add commands to build icf_test.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/icf_test.sh: New file.
+ * testsuite/icf_test.cc: New file.
+
+2009-07-24 Chris Demetriou <cgd@google.com>
+
+ * layout.cc (is_compressible_debug_section): Fix incorrect
+ comment about compressed section names.
+
+2009-07-20 Ian Lance Taylor <ian@airs.com>
+
+ PR 10419
+ * x86_64.cc (Target_x86_64::do_code_fill): Correct nop sequences.
+
+2009-07-16 Ian Lance Taylor <iant@google.com>
+
+ PR 10400
+ * layout.h: #include <map>.
+ (class Kept_section): Change from struct to class. Add accessors
+ and setters. Add section size to Comdat_group mapping. Change
+ Comdat_group to std::map. Add is_comdat_ field. Add
+ linkonce_size field in union.
+ (class Layout): Update declaration of find_or_add_kept_section.
+ Don't declare find_kept_object.
+ * layout.cc (Layout::find_or_add_kept_section): Remove candidate
+ parameter. Add object, shndx, is_comdat, and is_group_name
+ parameters. Change all callers. Adjust for new Kept_section.
+ (Layout::find_kept_object): Remove.
+ * object.cc (Sized_relobj::include_section_group): Update use of
+ Kept_section. Rename secnum to shndx. Only record
+ Kept_comdat_section if sections are the same size.
+ (Sized_relobj::include_linkonce_section): Update use of
+ Kept_section. Only record Kept_comdat_section if sections are the
+ same size. Set size of linkonce section.
+ (Sized_relobj::map_to_kept_section): Update call to
+ get_kept_comdat_section.
+ * object.h (class Sized_relobj): Rename fields in
+ Kept_comdat_section to drop trailing underscores; change object
+ field to Relobj*. Change Kept_comdat_section_table to store
+ struct rather than pointer.
+ (Sized_relobj::set_kept_comdat_section): Remove kept parameter.
+ Add kept_object and kept_shndx parameters. Change all callers.
+ (Sized_relobj::get_kept_comdat_section): Change return type to
+ bool. Add kept_object and kept_shndx parameters. Change all
+ callers.
+ * plugin.cc (Pluginobj::include_comdat_group): Update call to
+ Layout::find_or_add_kept_section.
+
+2009-07-09 Ian Lance Taylor <iant@google.com>
+
+ * merge.cc (Object_merge_map::initialize_input_to_output_map):
+ Reserve space in the hash table.
+
+2009-07-06 Mikolaj Zalewski <mikolajz@google.com>
+
+ * fileread.cc (File_read::get_mtime): New method.
+ * fileread.h (Timespec): New structure.
+ (File_read::get_mtime): New method.
+ * incremental.cc (Incremental_inputs_entry_data::timestamp_usec):
+ Renamed from timestamp_nsec.
+ (Incremental_inputs_entry_write::timestamp_sec): Fix argument to
+ Elf_Xword.
+ (Incremental_inputs_entry_write::timestamp_usec): Renamed from
+ timestamp_nsec.
+ (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.
+ (Incremental_inputs::finalize): Style fix.
+ (Incremental_inputs::create_input_section_data): Store inputs
+ mtime.
+ * incremental.h (Incremental_inputs::report_script): Add mtime
+ argument.
+ (Incremental_inputs::Input_info::Input_info): Intialize only one
+ union member.
+ (Incremental_inputs::Input_info::archive): Move to nameless
+ union.
+ (Incremental_inputs::Input_info::obejct): Move to nameless union.
+ (Incremental_inputs::Input_info::script): Move to nameless union.
+ (Incremental_inputs::mtime): New field.
+ * script.cc (read_input_script): Pass file mtime to
+ Incremental_input.
+ * script.h (Script_info::inputs): Style fix.
+
+2009-07-01 Ian Lance Taylor <ian@airs.com>
+
+ * freebsd.h (Target_freebsd::do_adjust_elf_header): Use size
+ instead of 32.
+
+2009-06-24 Ian Lance Taylor <iant@google.com>
+
+ PR 10156
+ * layout.cc (Layout::choose_output_section): If we find an
+ existing section, update the flags.
+ (Layout::create_notes): New function, broken out of
+ Layout::finalize.
+ (Layout::finalize): Don't create note sections.
+ (Layout::create_note): Don't crash if linker script discards
+ section.
+ (Layout::create_gold_note): Likewise.
+ (Layout::create_build_id): Likewise. Don't set
+ after_input_sections on the section.
+ (Layout::create_executable_stack_info): Remove target parameter.
+ Change caller.
+ * layout.h (class Layout): Declare create_notes. Update
+ declaration of create_executable_stack_info.
+ * gold.cc (queue_middle_tasks): Call create_notes.
+ * output.cc (Output_section::update_flags_for_input_section): Move
+ here from output.h. If SHF_ALLOC flag is newly set, mark address
+ invalid.
+ * output.h (Output_data::mark_address_invalid): New function.
+ (class Output_section): Only declare, not define,
+ update_flags_for_input_section. Remove set_flags.
+
+2009-06-24 Ian Lance Taylor <iant@google.com>
+
+ * script-sections.cc (Output_section_definition::
+ set_section_addresses): Rename shadowing local load_address to
+ laddr.
+
+2009-06-24 Ian Lance Taylor <iant@google.com>
+
+ PR 10244
+ * reloc.cc (relocate_sections): Skip empty relocation sections.
+
+2009-06-23 Ian Lance Taylor <iant@google.com>
+
+ PR 10156
+ * layout.cc (Layout::create_note): Use choose_output_section
+ rather than make_output_section.
+
+2009-06-23 Ian Lance Taylor <iant@google.com>
+
+ PR 10237
+ * options.cc (General_options::parse_V): Set printed_version_.
+ (General_options::General_options): Initialize printed_version_.
+ * options.h (class General_options): Add printed_version_ field.
+ * gold.cc (queue_initial_tasks): If there are no input files,
+ don't give a fatal error if we printed the version information.
+ (queue_middle_tasks): If using -r with a shared object, give a
+ fatal error rather than an ordinary error.
+
+2009-06-23 Ian Lance Taylor <iant@google.com>
+
+ PR 10219
+ * layout.cc (Layout::Layout): Initialize have_stabstr_section_.
+ (Layout::make_output_section): Set have_stabstr_section_ if we see
+ a .stab*str section.
+ (Layout::finalize): Call link_stabs_sections.
+ (Layout::link_stabs_sections): New file.
+ * layout.h (class Layout): Add have_stabstr_section_ field.
+ Declare link_stabs_sections.
+
+2009-06-23 Doug Kwan <dougkwan@google.com>
+
+ * Makefile.am (libgold_a_LIBADD): New.
+ (ld_new_DEPENDENCIES, ld_new_LDADD): Remove LIBOBJS
+ * Makefile.in: Regenerate.
+ * config.in (HAVE_DECL_MEMMEM, HAVE_DECL_STRNDUP): New.
+ * configure: Regenerate.
+ * configure.ac (AC_CHECK_DECLS): Add strndup and memmem.
+ * fileread.cc: Include sys/state.h
+ * gold.h: Declare memmem and strndup if found missing.
+ * gold_reloc.h: Include byteswap.h if HAVE_BYTESWAP_H is defined.
+
+2009-06-23 Ian Lance Taylor <iant@google.com>
+
+ * configure.ac: Call AC_CHECK_DECLS using C, not C++.
+ * configure: Rebuild.
+
+2009-06-23 Ian Lance Taylor <iant@google.com>
+
+ PR 10147
+ * object.cc (Object::section_contents): Don't try to get a view if
+ the section has length zero.
+ (Object::handle_gnu_warning_section): If the section is empty, use
+ the name of the section as the warning.
+
+2009-06-23 Ian Lance Taylor <iant@google.com>
+
+ PR 10133
+ * stringpool.h (class Stringpool_template): Add optimize_ field.
+ (Stringpool_template::set_optimize): New function.
+ * stringpool.cc (Stringpool_template::Stringpool_template):
+ Initialize optimize_ field.
+ (Stringpool_template::set_string_offsets): Test local optimize
+ fild rather than parameter.
+ * layout.cc (Layout::Layout): Call set_optimize on the section
+ name stringpool.
+
+2009-06-22 Ian Lance Taylor <iant@google.com>
+
+ PR 10030
+ * yyscript.y: Parse TARGET.
+ * script.cc (script_set_target): New function.
+ * script-c.h (script_set_target): Declare.
+ * options.cc (General_options::string_to_object_format): Rename
+ from string_to_object_format in anonymous namespace. Change
+ callers.
+ * options.h (class General_options): Declare
+ string_to_object_format.
+
+2009-06-22 Ian Lance Taylor <iant@google.com>
+
+ * script-sections.cc (Script_sections::create_segments): Don't put
+ program headers in a PT_LOAD segment if -n or -N.
+
+2009-06-22 Ian Lance Taylor <iant@google.com>
+
+ PR 10141
+ * options.h (class General_options): Add -z lazy and -z now. Sort
+ -z options into alphabetical order.
+ * layout.cc (Layout::finish_dynamic_section): Handle -z now.
+
+2009-06-21 Ian Lance Taylor <iant@google.com>
* layout.cc (Layout::make_output_section): Call
Target::new_output_section.