+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.