* int_encoding.cc (read_unsigned_LEB_128): Replaced with inline
[deliverable/binutils-gdb.git] / gold / ChangeLog
index 819f2509198d8758c060c59d2c16247b4f3aa82e..8ff80480f764db60f576bdb70e82b8e532c7ada4 100644 (file)
@@ -1,3 +1,996 @@
+2012-01-24  Cary Coutant  <ccoutant@google.com>
+
+       * int_encoding.cc (read_unsigned_LEB_128): Replaced with inline
+       definition and ...
+       (read_unsigned_LEB_128_x): ... this new function.
+       (read_signed_LEB_128): Replaced with inline definition and ...
+       (read_signed_LEB_128_x): ... this new function.
+       * int_encoding.h  (read_unsigned_LEB_128_x): New function.
+       (read_unsigned_LEB_128): Add inline definition.
+       (read_signed_LEB_128_x): New function.
+       (read_signed_LEB_128): Add inline definition.
+       * testsuite/Makefile.am (leb128_unittest): New unit test.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/leb128_unittest.cc: New unit test.
+
+2012-01-23  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/13617
+       * i386.cc (Target_i386::do_code_fill): When using a jmp
+       instruction, pad with nop instructions.
+       * x86_64.cc (Target_x86_64::do_code_fill): Likewise.
+
+2012-01-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * x86_64.cc (gc_process_relocs): Add typename on types used in
+       template.
+       (scan_relocs): Likewise.
+       (relocate_section): Likewise.
+       (apply_relocation): Likewise.
+
+2012-01-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * x86_64.cc (Scan::check_non_pic): Allow R_X86_64_32 for x32.
+       (Scan::local): Use R_X86_64_RELATIVE relocation for R_X86_64_32
+       under x32.
+
+2012-01-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * x86_64.cc: Initial support for x32.
+
+2012-01-03  Cary Coutant  <ccoutant@google.com>
+
+       * gold/incremental.cc (Sized_incremental_binary::do_process_got_plt):
+       Use abstract base class for GOT.
+       * gold/output.h (class Output_data_got_base): New abstract base class.
+       (class Output_data_got): Derive from new base class, adjust ctors.
+       (Output_data_got::reserve_slot): Make virtual; rename to
+       do_reserve_slot; Adjust callers.
+       * gold/target.h (Sized_target::init_got_plt_for_update): Return
+       pointer to abstract base class.
+       * gold/x86_64.cc (Target_x86_64::init_got_plt_for_update): Likewise.
+
+2011-12-18  Ian Lance Taylor  <iant@google.com>
+
+       * object.h (Relobj::local_symbol_value): New function.
+       (Relobj::local_plt_offset): New function.
+       (Relobj::local_has_got_offset): New function.
+       (Relobj::local_got_offset): New function.
+       (Relobj::set_local_got_offset): New function.
+       (Relobj::do_local_symbol_value): New pure virtual function.
+       (Relobj::do_local_plt_offset): Likewise.
+       (Relobj::do_local_has_got_offset): Likewise.
+       (Relobj::do_local_got_offset): Likewise.
+       (Relobj::do_set_local_got_offset): Likewise.
+       (Sized_relobj::do_local_has_got_offset): Rename from
+       local_has_got_offset.
+       (Sized_relobj::do_local_got_offset): Rename from local_got_offset.
+       (Sized_relobj::do_set_local_got_offset): Rename from
+       set_local_got_offset.
+       (Sized_relobj_file::do_local_plt_offset): Rename from
+       local_plt_offset.
+       (Sized_relobj_file::do_local_symbol_value): New function.
+       * object.cc (Sized_relobj_file::do_local_plt_offset): Rename from
+       local_plt_offset.
+       * output.cc (Output_data_got::Got_entry::write): Change object to
+       Relobj.  Use local_symbol_value.
+       (Output_data_got::add_global_with_rel): Change rel_dyn to
+       Output_data_reloc_generic*.  Use add_global_generic.
+       (Output_data_got::add_global_with_rela): Remove.  Change all
+       callers to use add_global_with_rel.
+       (Output_data_got::add_global_pair_with_rel): Change rel_dyn to
+       Output_data_reloc_generic*.  Use add_global_generic.
+       (Output_data_got::add_global_pair_with_rela): Remove.  Change all
+       callers to use add_global_pair_with_rel.
+       (Output_data_got::add_local): Change object to Relobj*.
+       (Output_data_got::add_local_plt): Likewise.
+       (Output_data_got::add_local_with_rel): Change object to Relobj*,
+       change rel_dyn to Output_data_reloc_generic*.  Use
+       add_local_generic.
+       (Output_data_got::add_local_with_rela): Remove.  Change all
+       callers to use all_local_with_rel.
+       (Output_data_got::add_local_pair_with_rel): Change object to
+       Relobj*, change rel_dyn to Output_data_reloc_generic*.  Use
+       add_output_section_generic.
+       (Output_data_got::add_local_pair_with_rela): Remove.  Change all
+       callers to use add_local_pair_with_rel.
+       (Output_data_got::reserve_local): Change object to Relobj*.
+       * output.h: (class Output_data_reloc_generic): Add pure virtual
+       declarations for add_global_generic, add_local_generic,
+       add_output_section_generic.
+       (class Output_data_reloc) [SHT_REL, SHT_RELA]: Implement new
+       functions for Output_data_reloc_generic.  Update declarations for
+       changes listed in output.cc.
+       (class Output_data_got): Change template parameter to got_size.
+       Don't define Rel_dyn or Rela_dyn.  Update declarations per above.
+       * incremental.h (Sized_relobj_incr::do_local_symbol_value): New
+       function.
+       (Sized_relobj_incr::do_local_plt_offset): New function.
+       * copy-relocs.cc (Copy_relocs::Copy_reloc_entry::emit): Call
+       add_global_generic.
+
+2011-12-17  Cary Coutant  <ccoutant@google.com>
+
+       * dwarf_reader.cc (Sized_dwarf_line_info::read_lines): Add casts.
+       * resolve.cc (Symbol_table::resolve): Likewise.
+       * i386.cc (Target_i386::do_code_fill): Use char constants for nop
+       arrays.
+       * x86_64.cc (Target_x86_64::do_code_fill): Likewise.
+
+2011-12-16  Ian Lance Taylor  <iant@google.com>
+
+       * output.h (Output_data_reloc_generic::add): Only call
+       add_dynamic_reloc if this is a dynamic reloc section.
+
+2011-12-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gold/13505
+       * target-reloc.h (apply_relocation): Replace <64, false> with
+       <size, big_endian>.
+
+2011-11-25  Nick Clifton  <nickc@redhat.com>
+
+       * po/it.po: New Italian translation.
+
+2011-11-17  Sterling Augustine  <saugustine@google.com>
+
+       * script.cc (script_include_directive): Implement.
+       (read_script_file): New local variables name and search_path. Update
+       comment. Call IS_ABSOLUTE_PATH and Dirsearch::find_file_in_dir_list.
+       * dirsearch.h (Dirsearch::find_file_in_dir_list): Declare new method.
+       * dirsearch.cc (Dirsearch::find_file_in_dir_list): Implement it.
+
+2011-11-11  Sterling Augustine  <saugustine@google.com>
+
+       * yyscript.y (section_cmd): Add support for INCLUDE directive.
+       (file_or_sections_cmd): Likewise.
+
+2011-11-11  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Target_arm::do_make_elf_object): Allow executable also
+       if --just-symbols is given.
+
+2011-11-10  Doug Kwan  <dougkwan@google.com>
+
+       PR gold/13362
+       * arm.cc (Target_arm::Relocate::relocate_tls): Do unaligned accesses
+       when processing data relocs.
+       * reloc.h (Relocate_functions::rel_unaligned): New method.
+       (Relocate_functions::pcrel_unaligned): Ditto.
+       (Relocate_functions::rel32_unaligned): Ditto.
+       (Relocate_functions::pcrel32_unaligned): Ditto.
+
+2011-11-09  Doug Kwan  <dougkwan@google.com>
+
+       PR gold/13362
+       * arm.cc (Arm_scan_relocatable_relocs::Default_scan_relocatable_relocs):
+       Use unaligned 4-byte relocs for static 32-bit data as required by EABI.
+       * reloc.h (Relocatable_relocs::Reloc_strategy): New enum
+       RELOC_ADJUST_FOR_SECTION_4_UNALIGNED.
+       (Relocate_functions::rel_unaligned): New.
+       (Relocate_functions::rel32_unaligned): New.
+       * target-reloc.h (relocate_for_relocatable): Add code to handle
+       RELOC_ADJUST_FOR_SECTION_4_UNALIGNED.
+       * testsuite/Makefile.am (arm_unaligned_reloc_r.stdout,
+       arm_unaligned_reloc_r): New targets.
+       * testsuite/Makefile.in: Regenerate.
+       * arm_unaligned_reloc.sh: Check unaligned relocs in relocatable
+       linking.
+
+2011-11-02  Ian Lance Taylor  <iant@google.com>
+
+       * configure.ac: Add --with-lib-path option.  Define LIB_PATH and
+       NATIVE_LINKER.
+       * Makefile.am (AM_CPPFLAGS): Define TOOLLIBDIR.
+       * options.cc (General_options::finalize): Use library search path
+       from configure script if specified.  If not native and no sysroot,
+       only search TOOLLIBDIR.
+       * options.h (Search_directory::Search_directory): Change name to
+       const std::string&.
+       (General_options::add_to_library_path_with_sysroot): Change arg to
+       const std::string&.
+       * configure, Makefile.in, config.in: Rebuild.
+
+2011-11-02  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       * arm.cc (Target_arm::may_use_v5t_interworking): Check whether
+       we are working around the ARM1176 Erratum.
+       * options.h (General_options::fix_arm1176): Add option.
+       * testsuite/Makefile.am: Add testcases, and keep current ones
+       working.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/arm_fix_1176.s: New file.
+       * testsuite/arm_fix_1176.sh: Likewise.
+
+2011-11-02  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       * arm.cc (Target_arm::Target_arm): Remove initialisation of
+       may_use_blx_.
+       (Target_arm::may_use_blx): Remove method.
+       (Target_arm::set_may_use_blx): Likewise.
+       (Target_arm::may_use_v4t_interworking): New method.
+       (Target_arm::may_use_v5t_interworking): Likewise.
+       (Target_arm::may_use_blx_): Remove member variable.
+       (Arm_relocate_functions::arm_branch_common): Check for v5T
+       interworking.
+       (Arm_relocate_functions::thumb_branch_common): Likewise.
+       (Reloc_stub::stub_type_for_reloc): Likewise.
+       (Target_arm::do_finalize_sections): Correct interworking checks.
+       * testsuite/Makefile.am: Add new tests.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/arm_farcall_arm_arm.s: New test.
+       * testsuite/arm_farcall_arm_arm.sh: Likewise.
+       * testsuite/arm_farcall_arm_thumb.s: Likewise.
+       * testsuite/arm_farcall_arm_thumb.sh: Likewise.
+       * testsuite/arm_farcall_thumb_arm.s: Likewise.
+       * testsuite/arm_farcall_thumb_arm.sh: Likewise.
+       * testsuite/arm_farcall_thumb_thumb.s: Likewise.
+       * testsuite/arm_farcall_thumb_thumb.sh: Likewise.
+
+2011-10-31  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/13023
+       * expression.cc (Expression::eval_with_dot): Add
+       is_section_dot_assignment parameter.
+       (Expression::eval_maybe_dot): Likewise.  Adjust value when rhs is
+       absolute and assigning to dot within a section.
+       * script-sections.cc
+       (Output_section_element_assignment::set_section_addresses): Pass
+       dot_section to set_if_absolute.
+       (Output_section_element_dot_assignment::finalize_symbols): Pass TRUE
+       as is_section_dot_assignment flag to eval_with_dot.
+       (Output_section_element_dot_assignment::set_section_addresses):
+       Likewise.
+       * script.cc (Symbol_assignment::set_if_absolute): Add dot_section
+       parameter.  Also set value if relative to dot_section; set the
+       symbol's output_section.
+       * script.h (Expression::eval_with_dot): Add is_section_dot_assignment
+       parameter.  Adjust all callers.
+       (Expression::eval_maybe_dot): Likewise.
+       (Symbol_assignment::set_if_absolute): Add dot_section parameter.
+       Adjust all callers.
+       * testsuite/script_test_2.t: Test assignment of an absolute value
+       to dot within an output section element.
+
+2011-10-31  Cary Coutant  <ccoutant@google.com>
+
+       * options.h (class General_options): Add --[no-]gnu-unique options.
+       * symtab.cc (Symbol_table::sized_write_globals): Convert
+       STB_GNU_UNIQUE to STB_GLOBAL if --no-gnu-unique.
+
+2011-10-31  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/13359
+       * i386.cc (Target_i386::Relocate::relocate_tls): Remove
+       unnecessary assertion.
+       * x86_64.cc (Target_x86_64::Relocate::relocate_tls): Likewise.
+
+2011-10-31 Sriraman Tallam  <tmsriram@google.com>
+
+       * symtab.h (Symbol_table::gc_mark_symbol_for_shlib): Rename to
+       gc_mark_symbol.
+       * symtab.cc (Symbol_table::gc_mark_symbol_for_shlib): Rename to
+       gc_mark_symbol.
+       Change to just keep the section associated with symbol.
+       (Symbol_table::add_from_relobj): Mark symbols as not garbage when
+       they are externally visible and --export-dynamic is turned on.
+       (Symbol_table::gc_mark_dyn_syms): Call gc_mark_symbol.
+
+2011-10-19  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/13163
+       * script-sections.cc
+       (Output_section_element_dot_assignment::needs_output_section): New
+       function.
+
+2011-10-19  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/13204
+       * layout.cc (Layout::segment_precedes): Don't assert failure if a
+       --section-start option was seen.
+       * options.h (General_options::any_section_start): New function.
+
+2011-10-18  David S. Miller  <davem@davemloft.net>
+
+       PR binutils/13301
+       * sparc.cc (Target_sparc::Relocate::reloc_adjust_addr_): New
+       member to track relocation locations that have moved during TLS
+       reloc optimizations.
+       (Target_sparc::Relocate::Relocate): Initialize to NULL.
+       (Target_sparc::Relocate::relocate): Adjust view down by 4
+       bytes if it matches reloc_adjust_addr_.
+       (Target_sparc::Relocate::relocate_tls): Always move the
+       __tls_get_addr call delay slot instruction forward 4 bytes when
+       performing relaxation.
+
+2011-10-18  Cary Coutant  <ccoutant@google.com>
+
+       * output.cc (posix_fallocate): Return 0 on success, errno on failure.
+       (Output_file::map_no_anonymous): Check for non-zero
+       return code from posix_fallocate.
+
+2011-10-17  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/13245
+       * plugin.cc (is_visible_from_outside): Check for symbols
+       referenced from dynamic objects.
+       * resolve.cc (Symbol_table::resolve): Don't count references
+       from dynamic objects as references from real ELF files.
+       * testsuite/plugin_test_2.sh: Adjust expected result.
+
+2011-10-17  Cary Coutant  <ccoutant@google.com>
+
+       * gold.cc: Include timer.h.
+       (queue_middle_tasks): Stamp time.
+       (queue_final_tasks): Likewise.
+       * main.cc (main): Store timer in parameters.  Print timers
+       for each pass.
+       * parameters.cc (Parameters::Parameters): Initialize timer_.
+       (Parameters::set_timer): New function.
+       (set_parameters_timer): New function.
+       * parameters.h (Parameters::set_timer): New function.
+       (Parameters::timer): New function.
+       (Parameters::timer_): New data member.
+       (set_parameters_timer): New function.
+       * timer.cc (Timer::stamp): New function.
+       (Timer::get_pass_time): New function.
+       * timer.h (Timer::stamp): New function.
+       (Timer::get_pass_time): New function.
+       (Timer::pass_times_): New data member.
+
+2011-10-17  Cary Coutant  <ccoutant@google.com>
+
+       * readsyms.cc (Read_symbols::run): Don't queue an unblocker
+       task for members of lib groups.
+
+2011-10-17  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/13288
+       * fileread.cc (File_read::find_view): Add assert.
+       (File_read::make_view): Move bounds check (replace with assert)...
+       (File_read::find_or_make_view): ... to here.
+
+2011-10-12  Cary Coutant  <ccoutant@google.com>
+
+       * output.cc (Output_file::open_base_file): Handle case where
+       ::read returns less than requested size.
+
+2011-10-10  Cary Coutant  <ccoutant@google.com>
+
+       * incremental.cc (Sized_relobj_incr::Sized_relobj_incr):
+       Initialize defined_count_.
+       (Sized_relobj_incr::do_add_symbols): Count defined symbols.
+       (Sized_relobj_incr::do_get_global_symbol_counts): Rewrite.
+       (Sized_incr_dynobj::Sized_incr_dynobj): Initialize defined_count_.
+       (Sized_incr_dynobj::do_add_symbols): Count defined symbols.
+       (Sized_incr_dynobj::do_get_global_symbol_counts): Rewrite.
+       * incremental.h (Sized_relobj_incr::defined_count_): New data
+       member.
+       (Sized_incr_dynobj::defined_count_): New data member.
+       * plugin.cc (Sized_pluginobj::do_get_global_symbol_counts):
+       Return zeroes instead of internal error.
+
+2011-10-10  Cary Coutant  <ccoutant@google.com>
+
+       PR gold/13249
+       * output.cc (Output_reloc::Output_reloc): Add use_plt_offset flag.
+       (Output_reloc::symbol_value): Return PLT offset if flag is set.
+       * output.h (class Output_reloc): Add use_plt_offset flag.
+       (Output_reloc::type_): Adjust size of bit field.
+       (Output_reloc::use_plt_offset_): New bit field.
+       (class Output_data_reloc): Adjust all calls to Output_reloc_type.
+       (Output_data_reloc::add_local_relative): (RELA only) Add use_plt_offset
+       flag.  Adjust all callers.
+       * x86_64.cc (Target_x86_64::Scan::local): Check for IFUNC when
+       creating RELATIVE relocations.
+
+2011-10-10  Nick Clifton  <nickc@redhat.com>
+
+       * po/es.po: Updated Spanish translation.
+       * po/fi.po: Updated Finnish translation.
+
+2011-10-03   Diego Novillo  <dnovillo@google.com>
+
+       * options.cc (parse_uint): Fix dereference of RETVAL.
+
+2011-09-29  Sriraman Tallam  <tmsriram@google.com>
+
+       * layout.h (section_order_map_): New member.
+       (get_section_order_map): New member function.
+       * output.cc (Output_section::add_input_section): Check for patterns
+       only when --section-ordering-file is specified.
+       * gold.cc (queue_middle_tasks): Delay updating order of sections till
+       output_sections have been formed.
+       * layout.cc (Layout_Layout): Initialize section_order_map_.
+       * plugin.cc (update_section_order): Store order in order_map. Do not
+       update the order.
+       * testsuite/Makefile.am: Add test case for plugin_final_layout.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/plugin_section_order.c: New file.
+       * testsuite/plugin_final_layout.cc: New file.
+       * testsuite/plugin_final_layout.sh: New file.
+
+2011-09-29  Cary Coutant  <ccoutant@google.com>
+
+       * incremental.cc (Sized_incremental_binary::do_process_got_plt):
+       Check for NULL.
+       * symtab.cc (Symbol_table::add_from_relobj): Ignore version
+       symbols during incremental update.
+       (Symbol_table::add_from_dynobj): Likewise.
+
+2011-09-27  Viktor Kutuzov  <vkutuzov@accesssoftek.com>
+           Ian Lance Taylor  <iant@google.com>
+
+       * symtab.cc (Symbol_table::define_special_symbol): Always
+       canonicalize version string.
+
+2011-09-26  Cary Coutant  <ccoutant@google.com>
+
+       * gold.cc (queue_initial_tasks): Move option checks ...
+       * options.cc (General_options::finalize): ... to here. Disable
+       some options; make others fatal.
+
+2011-09-26  Cary Coutant  <ccoutant@google.com>
+
+       gcc PR lto/47247
+       * plugin.cc (get_symbols_v2): New function.
+       (Plugin::load): Add LDPT_GET_SYMBOLS_V2.
+       (is_referenced_from_outside): New function.
+       (Pluginobj::get_symbol_resolution_info): Add version parameter, return
+       LDPR_PREVAILING_DEF_IRONLY_EXP when using new version.
+       (get_symbols): Pass version parameter.
+       (get_symbols_v2): New function.
+       * plugin.h (Pluginobj::get_symbol_resolution_info): Add version
+       parameter.
+       * testsuite/plugin_test.c (get_symbols_v2): New static variable.
+       (onload): Add LDPT_GET_SYMBOLS_V2.
+       (all_symbols_read_hook): Use get_symbols_v2; check for
+       LDPR_PREVAILING_DEF_IRONLY_EXP.
+       * testsuite/plugin_test_3.sh: Update expected results.
+
+2011-09-23  Simon Baldwin  <simonb@google.com>
+
+       * configure.ac: Add new --with-gold-ldadd and --with-gold-ldflags
+       configuration options.
+       * configure: Regenerate.
+       * Makefile.am: Handle GOLD_LDADD and GOLD_LDFLAGS.
+       * Makefile.in: Regenerate.
+       * testsuite/Makefile.in: Regenerate.
+
+2011-09-19  Sriraman Tallam  <tmsriram@google.com>
+
+       * plugin.h (should_defer_layout): Modify to check for any_claimed_.
+
+2011-09-19  Cary Coutant  <ccoutant@google.com>
+
+       * incremental.cc (can_incremental_update): Fix typo in comment.
+       * incremental.h (can_incremental_update): Likewise.
+
+2011-09-18  Cary Coutant  <ccoutant@google.com>
+
+       * incremental.cc (can_incremental_update): New function.
+       * incremental.h (can_incremental_update): New function.
+       * layout.cc (Layout::init_fixed_output_section): Call it.
+       (Layout::make_output_section): Don't allow patch space in .eh_frame.
+       * object.cc (Sized_relobj_file::do_layout): Call
+       can_incremental_update.
+
+2011-09-13  Cary Coutant  <ccoutant@google.com>
+
+       * configure.ac: Check for glibc support for gnu_indirect_function
+       support with static linking, setting automake conditional
+       IFUNC_STATIC.
+       * Makefile.in: Regenerate.
+       * configure: Regenerate.
+
+       * testsuite/Makefile.am (ifuncmain1static, ifuncmain2static)
+       (ifuncmain4static, ifuncmain5static, ifuncmain7static): Add check
+       for IFUNC_STATIC.
+       * testsuite/Makefile.in: Regenerate.
+
+2011-09-13  Cary Coutant  <ccoutant@google.com>
+
+       * incremental.cc (Sized_relobj_incr::do_layout): Call
+       report_comdat_group for kept comdat sections.
+       * testsuite/Makefile.am (incremental_comdat_test_1): New test.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/incr_comdat_test_1.cc: New source file.
+       * testsuite/incr_comdat_test_2_v1.cc: New source file.
+       * testsuite/incr_comdat_test_2_v2.cc: New source file.
+       * testsuite/incr_comdat_test_2_v3.cc: New source file.
+
+2011-09-13  Ian Lance Taylor  <iant@google.com>
+
+       * object.cc (Sized_relobj_file::do_layout): Remove unused local
+       variable external_symbols_offset.
+
+2011-09-12  Ian Lance Taylor  <iant@google.com>
+
+       * object.cc (Sized_relobj_file::do_layout): Remove assertion which
+       triggered if object has no symbols.
+
+2011-09-09  David S. Miller  <davem@davemloft.net>
+
+       * output.cc (Output_fill_debug_info::do_write): Use Swap_unaligned.
+       (Output_fill_debug_line::do_write): Likewise.
+
+2011-08-29  Cary Coutant  <ccoutant@google.com>
+
+       * output.cc: (Output_fill_debug_info::do_minimum_hole_size): Add
+       casts to match formatting specs.
+       (Output_fill_debug_line::do_minimum_hole_size): Likewise.
+
+2011-08-26  Cary Coutant  <ccoutant@google.com>
+
+       * layout.cc (Free_list::allocate): Provide guarantee of minimum
+       remaining hole size when allocating.
+       (Layout::make_output_section): Set fill methods for debug sections.
+       * layout.h (Free_list::Free_list_node): Move from private to
+       public.
+       (Free_list::set_min_hole_size): New function.
+       (Free_list::begin, Free_list::end): New functions.
+       (Free_list::min_hole_): New data member.
+       * output.cc: Include dwarf.h.
+       (Output_fill_debug_info::do_minimum_hole_size): New function.
+       (Output_fill_debug_info::do_write): New function.
+       (Output_fill_debug_line::do_minimum_hole_size): New function.
+       (Output_fill_debug_line::do_write): New function.
+       (Output_section::Output_section): Initialize new data member.
+       (Output_section::set_final_data_size): Ensure patch space is larger
+       than minimum hole size.
+       (Output_section::do_write): Fill holes in debug sections.
+       * output.h (Output_fill): New class.
+       (Output_fill_debug_info): New class.
+       (Output_fill_debug_line): New class.
+       (Output_section::set_free_space_fill): New function.
+       (Output_section::free_space_fill_): New data member.
+       * testsuite/Makefile.am (incremental_test_3): Add
+       --incremental-patch option.
+       (incremental_test_4): Likewise.
+       (incremental_test_5): Likewise.
+       (incremental_test_6): Likewise.
+       (incremental_copy_test): Likewise.
+       (incremental_common_test_1): Likewise.
+       * testsuite/Makefile.in: Regenerate.
+
+2011-08-26  Nick Clifton  <nickc@redhat.com>
+
+       * po/es.po: Updated Spanish translation.
+
+2011-08-01  Cary Coutant  <ccoutant@google.com>
+
+       * gold/testsuite/Makefile.am (justsyms_exec): New testcase.
+       * gold/testsuite/Makefile.in: Regenerate.
+       * gold/testsuite/justsyms_exec.c: New source file.
+       * gold/testsuite/justsyms_lib.c: New source file.
+
+2011-08-01  Cary Coutant  <ccoutant@google.com>
+
+       * layout.cc (Layout::set_segment_offsets): Don't realign text
+       segment if -Ttext was specified.
+       * object.cc (Sized_relobj_file::Sized_relobj_file): Store the ELF
+       file type.
+       * object.h (Sized_relobj_file::e_type): New function.
+       (Sized_relobj_file::e_type_): New data member.
+       * symtab.cc (Symbol_table::add_from_relobj): Don't add section
+       base address for ET_EXEC files.
+       * target.cc (Target::do_make_elf_object_implementation): Allow
+       ET_EXEC files with --just-symbols option.
+
+2011-07-28  Cary Coutant  <ccoutant@google.com>
+
+       * workqueue-internal.h (Workqueue_threader::should_cancel_thread):
+       Add thread_number parameter.
+       (Workqueue_threader_threadpool::should_cancel_thread): Likewise.
+       * workqueue-threads.cc
+       (Workqueue_threader_threadpool::should_cancel_thread): Cancel
+       current thread if its thread number is greater than desired thread
+       count.
+       * workqueue.cc (Workqueue_threader_single::should_cancel_thread):
+       Add thread_number parameter.
+       (Workqueue::should_cancel_thread): Likewise.
+       (Workqueue::find_runnable_or_wait): Pass thread_number to
+       should_cancel_thread.
+       * workqueue.h (Workqueue::should_cancel_thread): Add thread_number
+       parameter.
+
+2011-07-22  Sriraman Tallam  <tmsriram@google.com>
+
+       * symtab.cc (Symbol_table::add_from_relobj): Mark symbol as referenced
+       only after checking if it cannot be forced local.
+       * symtab.h (is_externally_visible): Check if the symbol is not forced
+       local.
+
+2011-07-15  Ian Lance Taylor  <iant@google.com>
+
+       * options.h (class General_options): Add --print-output-format.
+       Move -EL next to -EB, for  better --help output.
+       * target-select.cc: Include <cstdio>, "options.h", and
+       "parameters.h".
+       (Target_selector::do_target_bfd_name): New function.
+       (print_output_format): New function.
+       * target-select.h (class Target_selector): Update declarations.
+       (Target_selector::target_bfd_name): New function.
+       (print_output_format): Declare.
+       * main.cc: Include "target-select.h".
+       (main): Handle --print-output-format.
+       * gold.cc: Include "target-select.h".
+       (queue_initial_tasks): Handle --print-output-format when there are
+       no input files.
+       * parameters.cc (parameters_force_valid_target): Give a better
+       error message if -EB/-EL does not match target.
+       * freebsd.h (Target_selector_freebsd::do_target_bfd_name): New
+       function.
+
+2011-07-15  Ian Lance Taylor  <iant@google.com>
+
+       * i386.cc (class Output_data_plt_i386): Add layout_ field.
+       (Output_data_plt_i386::Output_data_plt_i386): Initialize layout_.
+       (Output_data_plt_i386::do_write): Write address of .dynamic
+       section to first entry in .got.plt section.
+       * x86_64.cc (class Output_data_plt_x86_64): Add layout_ field.
+       (Output_data_plt_x86_64::Output_data_plt_x86_64) [both versions]:
+       Initialize layout_.
+       (Output_data_plt_x86_64::do_write): Write address of .dynamic
+       section to first entry in .got.plt section.
+       * layout.h (Layout::dynamic_section): New function.
+
+2011-07-13  Sriraman Tallam  <tmsriram@google.com>
+
+       * archive.cc (Archive::get_elf_object_for_member): Add extra parameter
+       to claim_file call.
+       * layout.cc (Layout::Layout): Initialize section_ordering_specified_,
+       input_section_position_, and input_section_glob_.
+       (read_layout_from_file): Call function section_ordering_specified.
+       * layout.h (is_section_ordering_specified): New function.
+       (section_ordering_specified): New function.
+       (section_ordering_specified_): New boolean member.
+       * main.cc(main): Call load_plugins after layout object is defined.
+       * output.cc (Output_section::add_input_section): Use
+       function section_ordering_specified to check if section ordering is
+       needed.
+       * output.cc (Output_section::add_relaxed_input_section): Use
+       function section_ordering_specified to check if section ordering is
+       needed.
+       (Output_section::update_section_layout): New function.
+       (Output_section::sort_attached_input_sections): Check if input section
+       must be reordered.
+       * output.h (Output_section::update_section_layout): New function.
+       * plugin.cc (get_section_count): New function.
+       (get_section_type): New function.
+       (get_section_name): New function.
+       (get_section_contents): New function.
+       (update_section_order): New function.
+       (allow_section_ordering): New function. 
+       (Plugin::load): Add the new interfaces to the transfer vector.
+       (Plugin_manager::load_plugins): New parameter.
+       (Plugin_manager::all_symbols_read): New parameter.
+       (Plugin_manager::claim_file): New parameter. Save the elf object for
+       unclaimed objects.
+       (Plugin_manager::get_elf_object): New function.
+       (Plugin_manager::get_view): Change to directly use the bool to check
+       if get_view is called from claim_file_hook.
+       * plugin.h (input_objects): New function
+       (Plugin__manager::load_plugins): New parameter.
+       (Plugin_manager::claim_file): New parameter.
+       (Plugin_manager::get_elf_object): New function.
+       (Plugin_manager::in_claim_file_handler): New function.
+       (Plugin_manager::in_claim_file_handler_): New member.
+       (layout): New function.
+       * readsyms.cc (Read_symbols::do_read_symbols): Call the claim_file
+       handler with an extra parameter. Make the elf object before calling
+       claim_file handler.
+       * testsuite/plugin_test.c (get_section_count): New function pointer.
+       (get_section_type): New function pointer.
+       (get_section_name): New function pointer.
+       (get_section_contents): New function pointer.
+       (update_section_order): New function pointer.
+       (allow_section_ordering): New function pointer.
+       (onload): Check if the new interfaces exist.
+
+2011-07-13  Ian Lance Taylor  <iant@google.com>
+
+       * i386.cc (Target_i386::got_section): If -z now, make .got.plt a
+       relro section.
+       * x86_64.cc (Target_x86_64::got_section): Likewise.
+       * testsuite/Makefile.am (check_PROGRAMS): Add relro_now_test.
+       (relro_now_test_SOURCES): New variable.
+       (relro_now_test_DEPENDENCIES): New variable.
+       (relro_now_test_LDFLAGS): New variable.
+       (relro_now_test_LDADD): New variable.
+       (relro_now_test.so): New target.
+       * testsuite/Makefile.in: Rebuild.
+
+2011-07-12  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/12980
+       * i386.cc (Target_i386::Scan::global): For a GOT reloc, use a
+       GLOB_DAT relocation rather than a RELATIVE relocation for a
+       protected symbol when creating a shared library.
+       * x86_64.cc (Target_x86_64::Scan::global): Likewise.
+       * testsuite/protected_1.cc (f2, get_f2_addr): New functions.
+       * testsuite/protected_main_1.cc (main): Test that protected
+       function has same address.
+
+2011-07-11  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/12979
+       * options.h (class General_options): Add -Bgroup.
+       * options.cc (General_options::finalize): If -Bgroup is set,
+       default to --unresolved-symbols=report-all.
+       * layout.cc (Layout::finish_dynamic_section): Implement -Bgroup.
+       * target-reloc.h (issue_undefined_symbol_error): Handle
+       --unresolved-symbols=report-all.
+
+2011-07-08  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/11985
+       * layout.cc (Layout::create_initial_dynamic_sections): Don't crash
+       if linker script discards key sections.
+       (Layout::create_dynamic_symtab): Likewise.
+       (Layout::assign_local_dynsym_offsets): Likewise.
+       (Layout::sized_create_version_sections): Likewise.
+       (Layout::create_interp): Likewise.
+       (Layout::finish_dynamic_section): Likewise.
+       (Layout::set_dynamic_symbol_size): Likewise.
+
+2011-07-08  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/12386
+       * options.h (class General_options): Add --unresolved-symbols.
+       * target-reloc.h (issue_undefined_symbol_error): Check
+       --unresolved-symbols.  Add comments.
+
+2011-07-08  Ian Lance Taylor  <iant@google.com>
+
+       * testsuite/odr_violation2.cc (Ordering::operator()): Make
+       expression more complex.
+
+2011-07-08  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/11317
+       * target-reloc.h (issue_undefined_symbol_error): New inline
+       function, broken out of relocate_section.
+       (relocate_section): Call issue_undefined_symbol_error.
+       * i386.cc (Target_i386::Relocate::relocate_tls): Don't crash if
+       there is no TLS segment if we are about to issue an undefined
+       symbol error.
+       * x86_64.cc (Target_x86_64::relocate_tls): Likewise.
+
+2011-07-08  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/12279
+       * resolve.cc (Symbol_table::should_override): Add fromtype
+       parameter.  Change all callers.  Give error when linking together
+       TLS and non-TLS symbol.
+       (Symbol_table::should_override_with_special): Add fromtype
+       parameter.  Change all callers.
+       * i386.cc (Target_i386::Relocate::relocate_tls): Don't crash if
+       there is no TLS segment if we have reported some errors.
+       * x86_64.cc (Target_x86_64::relocate_tls): Likewise.
+
+2011-07-08  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/12372
+       * target.h (Target::plt_address_for_global): New function.
+       (Target::plt_address_for_local): New function.
+       (Target::plt_section_for_global): Remove.
+       (Target::plt_section_for_local): Remove.
+       (Target::do_plt_address_for_global): New virtual function.
+       (Target::do_plt_address_for_local): New virtual function.
+       (Target::do_plt_section_for_global): Remove.
+       (Target::do_plt_section_for_local): Remove.
+       (Target::register_global_plt_entry): Add Symbol_table and Layout
+       parameters.
+       * output.cc (Output_data_got::Got_entry::write): Use
+       plt_address_for_global and plt_address_for_local.
+       * layout.cc (Layout::add_target_dynamic_tags): Use size and
+       address of output section.
+       * i386.cc (class Output_data_plt_i386): Add irelative_rel_,
+       got_irelative_, and irelative_count_ fields.  Update
+       declarations.
+       (Output_data_plt_i386::has_irelative_section): New function.
+       (Output_data_plt_i386::entry_count): Add irelative_count_.
+       (Output_data_plt_i386::set_final_data_size): Likewise.
+       (class Target_i386): Add got_irelative_ and rel_irelative_
+       fields.  Update declarations.
+       (Target_i386::Target_i386): Initialize new fields.
+       (Target_i386::do_plt_address_for_global): New function replacing
+       do_plt_section_for_global.
+       (Target_i386::do_plt_address_for_local): New function replacing
+       do_plt_section_for_local.
+       (Target_i386::got_section): Create got_irelative_.
+       (Target_i386::rel_irelative_section): New function.
+       (Output_data_plt_i386::Output_data_plt_i386): Initialize new
+       fields.  Don't define __rel_iplt_{start,end}.
+       (Output_data_plt_i386::add_entry): Add symtab and layout
+       parameters.  Change all callers.  Use different PLT and GOT for
+       IFUNC symbols.
+       (Output_data_plt_i386::add_local_ifunc_entry): Add symtab and
+       layout parameters.  Change all callers.  Use different PLT and
+       GOT.
+       (Output_data_plt_i386::rel_tls_desc): Fix formatting.
+       (Output_data_plt_i386::rel_irelative): New function.
+       (Output_data_plt_i386::address_for_global): New function.
+       (Output_data_plt_i386::address_for_local): New function.
+       (Output_data_plt_i386::do_write): Write out IRELATIVE area.  Use
+       IRELATIVE GOT when changing IFUNC GOT entries.
+       (Target_i386::Scan::global): Use IRELATIVE GOT for IRELATIVE
+       reloc.
+       (Target_i386::do_finalize_sections): Create the __rel_iplt symbols
+       if we didn't create an IRELATIVE GOT.
+       (Target_i386::Relocate::relocate): Use plt_address_for_global and
+       plt_address_for_local.
+       (Target_i386::do_dynsym_value): Use plt_address_for_global.
+       * x86_64.cc (class Output_data_plt_x86_64): Add irelative_rel_,
+       got_irelative_, and irelative_count_ fields.  Update
+       declarations.
+       (Output_data_plt_x86_64::Output_data_plt_x86_64) [both versions]:
+       Initialize new fields.  Remove symtab parameter.  Change all
+       callers.
+       (Output_data_plt_x86_64::get_tlsdesc_plt_offset): Add
+       irelative_count_.
+       (Output_data_plt_x86_64::has_irelative_section): New function.
+       (Output_data_plt_x86_64::entry_count): Add irelative_count_.
+       (class Target_x86_64): Add got_irelative_ and rel_irelative_
+       fields.  Update declarations.
+       (Target_x86_64::Target_x86_64): Initialize new fields.
+       (Target_x86_64::do_plt_address_for_global): New function replacing
+       do_plt_section_for_global.
+       (Target_x86_64::do_plt_address_for_local): New function replacing
+       do_plt_section_for_local.
+       (Target_x86_64::got_section): Create got_irelative_.
+       (Target_x86_64::rela_irelative_section): New function.
+       (Output_data_plt_x86_64::init): Remove symtab parameter.  Change
+       all callers.  Don't create __rel_iplt_{start,end}.
+       (Output_data_plt_x86_64::add_entry): Add symtab and layout
+       parameters.  Change all callers.  Use different PLT and GOT for
+       IFUNC symbols.
+       (Output_data_plt_x86_64::add_local_ifunc_entry): Add symtab and
+       layout parameters.  Change all callers.  Use different PLT and
+       GOT.
+       (Output_data_plt_x86_64::add_relocation): Add symtab and layout
+       parameters.  Change all callers.  Use different PLT and GOT for
+       IFUNC symbols.
+       (Output_data_plt_x86_64::rela_tlsdesc): Fix formatting.
+       (Output_data_plt_x86_64::rela_irelative): New function.
+       (Output_data_plt_x86_64::address_for_global): New function.
+       (Output_data_plt_x86_64::address_for_local): New function.
+       (Output_data_plt_x86_64::set_final_data_size): Likewise.
+       (Output_data_plt_x86_64::do_write): Write out IRELATIVE area.
+       (Target_x86_64::init_got_plt_for_update): Create got_irelative_.
+       (Target_x86_64::register_global_plt_entry): Add symtab and layout
+       parameters.
+       (Target_x86_64::Scan::global): Use IRELATIVE GOT for IRELATIVE
+       reloc.
+       (Target_x86_64::do_finalize_sections): Create the __rela_iplt
+       symbols if we didn't create an IRELATIVE GOT.
+       (Target_x86_64::Relocate::relocate): Use plt_address_for_global and
+       plt_address_for_local.
+       (Target_x86_64::do_dynsym_value): Use plt_address_for_global.
+       * testsuite/ifuncvar1.c: New test file.
+       * testsuite/ifuncvar2.c: New test file.
+       * testsuite/ifuncvar3.c: New test file.
+       * testsuite/Makefile.am (check_PROGRAMS): Add ifuncvar.
+       (ifuncvar1_pic.o, ifuncvar2_pic.o, ifuncvar.so): New targets.
+       (ifuncvar_SOURCES, ifuncvar_DEPENDENCIES): New variables.
+       (ifuncvar_LDFLAGS, ifuncvar_LDADD): New variables.
+       * testsuite/Makefile.in: Rebuild.
+
+2011-07-07  Cary Coutant  <ccoutant@google.com>
+
+       * testsuite/Makefile.am (two_file_test_1_v1_ndebug.o): New target.
+       (two_file_test_1_ndebug.o): Likewise.
+       (two_file_test_1b_ndebug.o): Likewise.
+       (two_file_test_2_ndebug.o): Likewise.
+       (two_file_test_main_ndebug.o): Likewise.
+       (incremental_test_2): Link with no-debug versions.
+
+2011-07-06  Cary Coutant  <ccoutant@google.com>
+
+       * gold/incremental.cc
+       (Output_section_incremental_inputs::write_info_blocks): Check for
+       hidden and internal symbols.
+
+2011-07-06  Cary Coutant  <ccoutant@google.com>
+
+       * incremental.cc (Sized_incremental_binary::do_file_has_changed):
+       Check disposition for startup file.
+       (Incremental_inputs::report_command_line): Ignore
+       --incremental-startup-unchanged option.
+       * options.cc (General_options::parse_incremental_startup_unchanged):
+       New function.
+       (General_options::General_options): Initialize new data member.
+       * options.h (Incremental_disposition): Add INCREMENTAL_STARTUP.
+       (General_options): Add --incremental-startup-unchanged option.
+       (General_options::incremental_startup_disposition): New function.
+       (General_options::incremental_startup_disposition_): New data member.
+
+2011-07-06  Cary Coutant  <ccoutant@google.com>
+
+       * incremental.cc (Sized_incremental_binary::setup_readers): Pass
+       input file index to Script_info ctor.
+       (Sized_incremental_binary::do_file_has_changed): Find the
+       command-line argument for files named in scripts.
+       * incremental.h (Script_info::Script_info): New ctor
+       with input file index.
+       (Script_info::input_file_index): New function.
+       (Script_info::input_file_index_): New data member.
+       (Incremental_binary::get_library): Add const.
+       (Incremental_binary::get_script_info): Add const.
+       * readsyms.cc (Read_member::is_runnable): Check for this_blocker_.
+       * testsuite/Makefile.am (incremental_test_5): New test case.
+       (incremental_test_6): New test case.
+       * testsuite/Makefile.in: Regenerate.
+
+2011-07-06  Cary Coutant  <ccoutant@google.com>
+
+       * incremental.cc (Sized_incremental_binary::do_check_inputs): Add
+       debug output when command lines differ.
+
+2011-07-06  Cary Coutant  <ccoutant@google.com>
+
+       * incremental.cc (Incremental_inputs::report_command_line): Ignore
+       --incremental-patch option.
+       * layout.cc (Free_list::allocate): Extend allocation beyond original
+       end if enabled.
+       (Layout::make_output_section): Mark sections that should get
+       patch space.
+       * options.cc (parse_percent): New function.
+       * options.h (parse_percent): New function.
+       (DEFINE_percent): New macro.
+       (General_options): Add --incremental-patch option.
+       * output.cc (Output_section::Output_section): Initialize new data
+       members.
+       (Output_section::add_input_section): Print section name when out
+       of patch space.
+       (Output_section::add_output_section_data): Likewise.
+       (Output_section::set_final_data_size): Add patch space when
+       doing --incremental-full.
+       (Output_section::do_reset_address_and_file_offset): Remove patch
+       space.
+       (Output_segment::set_section_list_addresses): Print debug output
+       only if --incremental-update.
+       * output.h (Output_section::set_is_patch_space_allowed): New function.
+       (Output_section::is_patch_space_allowed_): New data member.
+       (Output_section::patch_space_): New data member.
+       * parameters.cc (Parameters::incremental_full): New function.
+       * parameters.h (Parameters::incremental_full): New function
+       * testsuite/Makefile.am (incremental_test_2): Add test for
+       --incremental-patch option.
+       * testsuite/Makefile.in: Regenerate.
+       * testsuite/two_file_test_1_v1.cc (t1, t2, t3): Add comments.
+       (t18): Remove function body.
+
+2011-07-05  Doug Kwan  <dougkwan@google.com>
+
+       PR gold/12771
+       * arm.cc (Arm_relocate_functions::abs8): Use int32_t for addend and
+       Arm_Address type for relocation result.
+       (Arm_relocate_functions::abs16): Use unaligned access.  Also fix
+       overflow check.
+       (Arm_relocate_functions::abs32): Use unaligned access.
+       (Arm_relocate_functions::rel32): Ditto.
+       (Arm_relocate_functions::prel31): Ditto.
+       (Arm_exidix_cantunwind::do_fixed_endian_write): Ditto.
+       * testsuite/Makefile.am: Add new test arm_unaligned_reloc for unaligned
+       static data relocations.
+       * testsuite/Makefile.in: Regnerate.
+       * testsuite/arm_unaligned_reloc.{s,sh}: New files.
+
+2011-07-05  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/12392
+       * i386.cc (Target_i386::do_finalize_sections): Define __rel_iplt
+       symbols if necessary.
+       * x86_64.cc (Target_x86_64::do_finalize_sections): Likewise.
+
+2011-07-05  Ian Lance Taylor  <iant@google.com>
+
+       PR gold/12952
+       * resolve.cc (Symbol::override_base_with_special): Simply override
+       version with special symbol version, ignoring previous version.
+
 2011-07-05  Ian Lance Taylor  <iant@google.com>
 
        * object.cc (Sized_relobj_file::include_section_group): Add
        * testsuite/Makefile.am (final_layout.stdout): Use -n option with nm.
        * testsuite/Makefile.in: Regenerate.
 
-2010-03-23  Rafael Ávila de Espíndola <respindola@mozilla.com>
+2011-03-23  Rafael Ávila de Espíndola <respindola@mozilla.com>
 
        * plugin.cc (get_view): New.
        (Plugin::load): Pass get_view to the plugin.
        the toolchain building binutils.
        * configure: Rebuild.
 
-2010-02-18  Rafael Ávila de Espíndola <respindola@mozilla.com>
+2011-02-18  Rafael Ávila de Espíndola <respindola@mozilla.com>
 
        * symtab.cc (Symbol::should_add_dynsym_entry) Return false for
        plugin only symbols.
        * reloc.cc (Sized_relobj::do_relocate): Don't call
        clear_local_symbols.
 
-2010-02-08  Rafael Ávila de Espíndola <respindola@mozilla.com>
+2011-02-08  Rafael Ávila de Espíndola <respindola@mozilla.com>
 
        * plugin.cc (is_visible_from_outside): Return true for symbols
        in the -u option.
This page took 0.035872 seconds and 4 git commands to generate.