daily update
[deliverable/binutils-gdb.git] / gold / ChangeLog
index 4a08b4778a37a24a3121aa6de95703e72edabd39..5df876fae86eefe448969e1de23aad29cbcb97f1 100644 (file)
@@ -1,3 +1,288 @@
+2009-04-27  Ian Lance Taylor  <iant@google.com>
+
+       * x86_64.cc (do_adjust_output_section): Set entsize to
+       plt_entry_size.
+
+2008-04-23  Elliott Hughes  <enh@google.com>
+
+       * output.cc (Output_file::close): After short writes, continue
+       writing from the correct offset in the buffer being written.
+
+2009-04-23  Chris Demetriou  <cgd@google.com>
+
+       * configure.ac (HAVE_TR1_UNORDERED_MAP_REHASH): New define.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+       * gold.h: Avoid std::tr1::unordered_map and std::tr1::unordered_set
+       if HAVE_TR1_UNORDERED_MAP_REHASH is not defined.
+
+2009-04-21  Mikolaj Zalewski  <mikolajz@google.com>
+
+       * incremental.cc (Incremental_inputs_header_data): Renamed from
+       Incremental_input_header_data.
+       (Incremental_inputs_header_data::data_size): New field.
+       (Incremental_inputs_header_data::put_input_file_count): Renamed
+       from input_file_count.
+       (Incremental_inputs_header_data::put_command_line_offset): Renamed
+       from command_line_offset.
+       (Incremental_inputs_header_data::put_reserved): Renamed from
+       put_reserved.
+       (Incremental_inputs_entry_data): Renamed from
+       Incremental_input_entry_data.
+       (Incremental_inputs_entry_data::data_size): New field.
+       (Incremental_inputs::report_command_line): New method.
+       (Incremental_inputs::finalize): New method.
+       (Incremental_inputs::create_incremental_inputs_data): New method.
+       (Incremental_inputs::sized_create_incremental_inputs_data): New method.
+       * incremental.h: New file.
+       * layout.cc (Layout::Layout): Handle new incremental_inputs_.
+       (Layout::finalize): Create incremental inputs section in
+       incremental builds.
+       (Layout::create_incremental_info_sections): New method.
+       * layout.h (Layout::incremental_inputs): New method.
+       (Layout::create_incremental_info_sections): New method.
+       (Layout::incremental_inputs_): New field.
+       * main.cc (main): Notify Incremental_input of the command line.
+
+2009-04-01  Ian Lance Taylor  <iant@google.com>
+           Mikolaj Zalewski  <mikolajz@google.com>
+
+       * gold.h (reserve_unordered_map): Define, three versions, one for
+       each version of Unordered_map.
+       * layout.cc (Layout::Layout): Remove options parameter.  Add
+       number_of_input_files parameter.  Don't initialize options_.
+       Initialize number_of_input_files_ and resized_signatures_.  Move
+       sections_are_attached_.
+       (Layout::layout_group): Reserve space for group_signatures_.
+       (Layout::find_or_add_kept_section): Change name parameter to be a
+       reference.  Resize signatures_ map when it gets large enough.
+       (Layout::layout_eh_frame): Use parameters->options() instead of
+       this->options_.
+       (Layout::make_output_section): Likewise.
+       (Layout::attach_allocated_section_to_segment): Likewise.
+       (Layout::finalize, Layout::create_executable_stack): Likewise.
+       (Layout::set_segment_offsets, Layout::create_interp): Likewise.
+       (Layout::finish_dynamic_section, Layout::write_binary): Likewise.
+       * layout.h (class Layout): Update declarations.  Remove options_
+       field.  Add number_of_input_files_ and resized_signatures_
+       fields.  Move sections_are_attached_ field.
+       * main.cc (main): Pass number of input files to Layout
+       constructor.  Don't pass options.
+
+2009-03-30  Ian Lance Taylor  <iant@google.com>
+
+       * ffsll.c (ffsll): Correct implementation.
+
+2009-03-27  Ian Lance Taylor  <iant@google.com>
+
+       * ffsll.c: New file.
+       * configure.ac: Call AC_REPLACE_FUNCS on ffsll.
+       * gold.h (ffsll): Declare if HAVE_FFSLL is not defined.
+       * ftruncate.c (ftruncate): Declare before definition.
+       * mremap.c (mremap): Likewise.
+       * pread.c (pread): Likewise.
+       * configure, Makefile.in, config.in: Rebuild.
+
+       * mremap.c: New file.
+       * configure.ac: Call AC_REPLACE_FUNCS on mremap.
+       * gold.h (MREMAP_MAYMOVE): Define if HAVE_MREMAP is not defined.
+       (mremap): Declare if HAVE_MREMAP is not defined.
+       * configure, Makefile.in, config.in: Rebuild.
+
+2009-03-27  Cary Coutant  <ccoutant@google.com>
+
+       * powerpc.cc (Target_powerpc::check_non_pic): Assert that output is
+       position independent.
+       * sparc.cc (Target_sparc::check_non_pic): Likewise.
+       * x86_64.cc (Target_x86_64::check_non_pic): Likewise.
+
+2009-03-24  Cary Coutant  <ccoutant@google.com>
+
+       * symtab.h (needs_plt_entry): Check for unsatisfied reference from
+       an executable.
+       (needs_dynamic_reloc): Likewise.
+
+2009-03-24  Ian Lance Taylor  <iant@google.com>
+
+       * yyscript.y (file_cmd): Recognize EXTERN.
+       (extern_name_list, extern_name_list_body): New nonterminals.
+       * script.cc (script_add_extern): Define.
+       * script-c.h (script_add_extern): Declare.
+
+2009-03-24  Rafael Avila de Espindola  <espindola@google.com>
+
+       * object.cc (is_elf_object): Define.
+       * object.h (is_elf_object): Declare.
+       * archive.cc (Archive::get_elf_object_for_member): Call
+       is_elf_object.
+       * readsyms.cc (Read_symbols::do_read_symbols): Likewise.
+
+2009-03-24  Elliott Hughes  <enh@google.com>
+
+       * output.cc (Output_file::map_anonymous): Define.
+       (Output_file::map): Use map_anonymous.  If the regular mmap fails,
+       try an anonymous one.  Report the size if the mmap fails.
+       * output.h (class Output_file): Declare map_anonymous.
+
+2009-03-24  Ian Lance Taylor  <iant@google.com>
+
+       * target-select.cc (instantiate_target): Don't acquire the lock if
+       the instantiated_target_ field has already been set.
+
+2009-03-23  Ian Lance Taylor  <iant@google.com>
+
+       * gold-threads.h (class Initialize_lock): Define.
+       * gold-threads.cc (class Initialize_lock_once): Define.
+       (initialize_lock_control): New static variable.
+       (initialize_lock_pointer): New static variable.
+       (initialize_lock_once): New static function.
+       (Initialize_lock::Initialize_lock): Define.
+       (Initialize_lock::initialize): Define.
+       * target-select.h: Include "gold-threads.h".
+       (class Target_selector): Add lock_ and initialize_lock_ fields.
+       Don't define instantiate_target, just declare it.
+       * target-select.cc (Target_selector::Target_selector): Initialize
+       new fields.
+       (Target_selector::instantiate_target): Define.
+       * descriptors.h: Include "gold-threads.h".
+       (class Descriptors): Add initialize_lock_ field.
+       * descriptors.cc (Descriptors::Descriptors): Initialize new
+       field.
+       (Descriptors::open): Use initialize_lock_ field
+       * errors.h (class Errors): Add initialize_lock_ field.
+       * errors.cc (Errors::Errors): Initialize new field.
+       (Errors::initialize_lock): Use initialize_lock_ field.
+       * powerpc.cc (class Target_selector_powerpc): Remove
+       instantiated_target_ field.  In do_recognize call
+       instantiate_target rather than do_instantiate_target.  In
+       do_instantiate_target just allocate a new target.
+       * sparc.cc (class Target_selector_sparc): Likewise.
+
+       * freebsd.h: New file.
+       * i386.cc: Include "freebsd.h".
+       (Target_i386): Derive from Target_freebsd rather than
+       Sized_target.
+       (Target_selector_i386): Derive from Target_selector_freebsd rather
+       than Target_selector.
+       * x86_64.cc: Include "freebsd.h".
+       (Target_x86_64): Derive from Target_freebsd rather than
+       Sized_target.
+       (Target_selector_x86_64): Derive from Target_selector_freebsd
+       rather than Target_selector.
+       * target.h (class Target): Add adjust_elf_header and
+       do_adjust_elf_header.
+       * output.cc (Output_file_header:: do_sized_write): Call target
+       adjust_elf_header routine.
+       * configure.tgt: Set targ_osabi.
+       * configure.ac: Define GOLD_DEFAULT_OSABI.
+       * parameters.cc (Parameters::default_target): Pass
+       GOLD_DEFAULT_OSABI to select_target.
+       * target-select.h (class Target_selector): Make instantiate_target
+       protected rather than private.
+       * Makefile.am (HFILES): Add freebsd.h.
+       * configure, Makefile.in, config.in: Rebuild.
+
+       * merge.cc (do_add_input_section): Correct pend value.  Change
+       message about last entry not being null terminated from error to
+       warning.
+
+2009-03-20  Mikolaj Zalewski  <mikolajz@google.com>
+
+       * incremental.cc: New file.
+       * Makefile.am (CCFILES): Add incremental.cc.
+       * Makefile.in: Rebuild.
+
+2009-03-19  Paul Pluzhnikov  <ppluzhnikov@google.com>
+
+       * layout.cc (Layout::output_section_name): Preserve names
+       of '.note.' sections.
+       
+2009-03-19  Ian Lance Taylor  <iant@google.com>
+
+       * descriptors.cc (Descriptors::open): Check that the options are
+       valid before using them.
+
+2009-03-18  Ian Lance Taylor  <iant@google.com>
+
+       * script-sections.h: Include <list>.
+       (class Script_sections): Change Sections_elements from std::vector
+       to std::list.  Typedef public Elements_iterator.  Add
+       orphan_section_placement_, data_segment_align_start_, and
+       saw_data_segment_align_ fields.  Remove data_segment_align_index_
+       field.
+       * script-sections.cc (class Orphan_section_placement): New class.
+       (class Sections_element): Add virtual functions is_relro and
+       orphan_section_init.  Remove virtual function place_orphan_here.
+       (class Output_section_definition): Add is_relro and
+       orphan_section_init.  Remove place_orphan_here.
+       (class Orphan_output_section): Likewise.
+       (Script_sections::Script_sections): Update for field changes.
+       (Script_sections::data_segment_align): Set saw_data_segment_align_
+       and data_segment_align_start_, not data_segment_align_index.
+       (Script_sections::data_segment_relro_end): Check
+       saw_data_segment_align_.  Use data_segment_align_start_ rather
+       than data_segment_align_index_.
+       (Script_sections::place_orphan): Rewrite to use
+       Orphan_section_placement.
+
+2009-03-17  Ian Lance Taylor  <iant@google.com>
+
+       * archive.cc (Archive::add_symbols): Check for a version attached
+       to the symbol name in the archive map.
+       * testsuite/Makefile.am (check_PROGRAMS): Add ver_test_11.
+       (ver_test_11_SOURCES, ver_test_11_DEPENDENCIES): Define.
+       (ver_test_11_LDFLAGS, ver_test_11_LDADD): Define.
+       (ver_test_11.a): New target.
+       * testsuite/Makefile.in: Rebuild.
+
+       * configure.ac: Check for chsize and posix_fallocate.  Replace
+       ftruncate.
+       * ftruncate.c: New file, from gnulib.
+       * output.cc (posix_fallocate): Define dummy version if not
+       HAVE_POSIX_FALLOCATE.
+       (Output_file::map): Call posix_fallocate rather than lseek and
+       write.
+       * gold.h (ftruncate): Declare if not HAVE_FTRUNCATE.
+       * configure, Makefile.in, config.in: Rebuild.
+
+2009-03-17  Paul Pluzhnikov  <ppluzhnikov@google.com>
+       
+       * layout.h (Layout::create_note): Add section_name parameter.
+       * layout.cc (Layout::create_note): Likewise.
+       (Layout::create_build_id, Layout::create_gold_note): Fix callers.
+       
+2009-03-17  Ian Lance Taylor  <iant@google.com>
+
+       * descriptors.cc: Include "options.h".
+       (FD_CLOEXEC, O_CLOEXEC): Define if not defined.
+       (Descriptors::open): Always use O_CLOEXEC when opening a new
+       descriptor.  If we have a plugin, and O_CLOEXEC was not defined,
+       then set FD_CLOEXEC.
+
+       * sparc.cc (class Target_sparc): Add has_got_section.
+       (Target_sparc::Scan::global): If we see _GLOBAL_OFFSET_TABLE_,
+       make sure we have a GOT section.
+
+       * sparc.cc (optimize_tls_reloc): Recognize R_SPARC_TLS_IE_ADD.
+       (Target_sparc::Scan::local): Likewise.
+       (Target_sparc::Scan::global): Likewise.
+       (Target_sparc::Relocate::relocate): Likewise.
+       (Target_sparc::Relocate::relocate_tls): Likewise.
+
+       * symtab.cc (Symbol_table::define_default_version): New function,
+       broken out of add_from_object.
+       (Symbol_table::add_from_object): Call define_default_version.
+       (Symbol_table::define_special_symbol): Add resolve_oldsym
+       parameter.  Change all callers.  If the version for a symbol comes
+       from a version script, resolve it with the symbol with the same
+       name with no version.  Also add the symbol without a version if
+       appropriate.
+       (do_define_in_output_data): If resolving with oldsym, don't delete
+       sym.
+       (do_define_in_output_segment): Likewise.
+       (do_define_as_constant): Likewise.
+       * symtab.h (class Symbol_table): Update declarations.
+
 2009-03-13  Ian Lance Taylor  <iant@google.com>
 
        * readsyms.cc (Read_symbols::incompatible_warning): New function.
This page took 0.026285 seconds and 4 git commands to generate.