elfcpp/
[binutils-gdb.git] / gold / ChangeLog
index a21b2176a08b57ddd649d31482ebebdfc8c4967b..f0ec8938f2a83faef08bd3540c7cd1662668507f 100644 (file)
@@ -1,3 +1,319 @@
+2012-03-12  Cary Coutant  <ccoutant@google.com>
+
+       * reduced_debug_output.cc
+       (Output_reduced_debug_info_section::get_die_end): Add new FORM
+       codes to switch.
+
+2012-02-29  Cary Coutant  <ccoutant@google.com>
+
+       * object.cc (need_decompressed_section): Add #ifdef ENABLE_THREADS.
+
+2012-02-29  Cary Coutant  <ccoutant@google.com>
+
+       * dwarf_reader.cc (Sized_dwarf_line_info::Sized_dwarf_line_info):
+       Call Object::decompressed_section_contents.
+       * dwarf_reader.h (Sized_dwarf_line_info::~Sized_dwarf_line_info):
+       New dtor.
+       (Sized_dwarf_line_info::buffer_start_): New data member.
+       * merge.cc (Output_merge_data::do_add_input_section): Call
+       Object::decompressed_section_contents.
+       (Output_merge_string::do_add_input_section): Likewise.
+       * object.cc (need_decompressed_section): New function.
+       (build_compressed_section_map): Decompress sections needed later.
+       (Sized_relobj_file::do_decompressed_section_contents): New function.
+       (Sized_relobj_file::do_discard_decompressed_sections): New function.
+       * object.h (Object::decompressed_section_contents): New function.
+       (Object::discard_decompressed_sections): New function.
+       (Object::do_decompressed_section_contents): New function.
+       (Object::do_discard_decompressed_sections): New function.
+       (Compressed_section_info): New type.
+       (Compressed_section_map): Include decompressed section contents.
+       (Sized_relobj_file::do_decompressed_section_contents): New function.
+       (Sized_relobj_file::do_discard_decompressed_sections): New function.
+
+2012-02-16  Cary Coutant  <ccoutant@google.com>
+
+       * testsuite/Makefile.am (initpri2): Add --ctors-in-init-array option.
+       * testsuite/Makefile.in: Regenerate.
+
+2012-02-14  Cary Coutant  <ccoutant@google.com>
+
+       * options.cc (General_options::finalize): Disallow -pie and -static.
+
+2012-02-03  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Arm_relocate_functions::abs8,
+       Arm_relocate_functions::abs16): Use
+       Bits::has_signed_unsigned_overflow32.
+       (Arm_relocate_functions::thm_abs8): Correct range of
+       overflow check.
+       * reloc.h (Bits class): Change minimum number of bits from 0 to 1
+       in assertions.
+
+2012-02-02  Doug Kwan  <dougkwan@google.com>
+
+       * arm.cc (Reloc_stub::stub_type_for_reloc): Use PIC stubs in all
+       position independent outputs, not just shared objects.
+
+2012-01-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure.ac: Check if -fpic -mtls-dialect=gnu2 works.
+       * configure: Regenerated.
+
+2012-01-27  Ian Lance Taylor  <iant@google.com>
+
+       * reloc.h (Bits): New class with static functions, copied from
+       namespace utils in arm.cc.
+       * arm.cc (namespace utils): Remove.  Rewrite all uses to use Bits
+       instead.
+
+2012-01-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * incremental.cc (write_info_blocks): Correct relocation offset.
+
+2012-01-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * x86_64.cc (Relocate::tls_gd_to_ie): Support x32.
+       (Relocate::tls_gd_to_le): Likewise.
+
+2012-01-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * x86_64.cc (Scan::global): Support x32 IFUNC function pointer.
+
+2012-01-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure.ac: Check if -mcmodel=medium works.
+       * configure: Regenerated.
+
+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