PR 11297: Add support for 8-bit relocations to the AVR toolchain.
[binutils-gdb.git] / bfd / ChangeLog
index 7aecf5122305a437a206f6630d6f2bb87d808152..1ecd0346d7f7d6f1d2ce04ec33419e9db7fdbe3e 100644 (file)
@@ -1,3 +1,200 @@
+2010-02-23  Andrew Zabolotny  <anpaza@mail.ru>
+
+       PR binutils/11297
+       * elf32-avr.c (elf_avr_howto_table): Add R_AVR_8.
+       (avr_reloc_map): Map BFD_RELOC_8 to R_AVR_8.
+
+2010-02-22  Alan Modra  <amodra@gmail.com>
+
+       * reloc.c (bfd_check_overflow): When forming addrmask, shift
+       fieldmask left by rightshift.
+       (_bfd_relocate_contents): Likewise.  Use rightshift addrmask in all
+       overflow checks.
+
+2010-02-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf64-x86-64.c (elf64_x86_64_add_symbol_hook): Don't check
+       STT_GNU_IFUNC on large common symbol.
+
+2010-02-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_add_symbol_hook): Don't set
+       has_ifunc_symbols if the symbol comes from a shared library.
+       * elf32-ppc.c (ppc_elf_add_symbol_hook): Likewise.
+       * elf32-sparc.c (elf32_sparc_add_symbol_hook): Likewise.
+       * elf64-ppc.c (ppc64_elf_add_symbol_hook): Likewise.
+       * elf64-sparc.c (elf64_sparc_add_symbol_hook): Likewise.
+       * elf64-x86-64.c (elf64_x86_64_add_symbol_hook): Likewise.
+
+2010-02-19  Alan Modra  <amodra@gmail.com>
+
+       * elf.c (_bfd_elf_fixup_group_sections): New function, split out from..
+       (_bfd_elf_copy_private_header_data): ..here.
+       * elflink.c (_bfd_elf_size_group_sections): New function.
+       (bfd_elf_size_dynamic_sections): Call it.
+       * elf-bfd.h (_bfd_elf_size_group_sections): Declare.
+       (_bfd_elf_fixup_group_sections): Declare.
+
+2010-02-18  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       * elf32-arm.c (elf32_arm_merge_eabi_attributes): Add support for
+       merging Tag_DIV_use, Tag_MPextension_use, and
+       Tag_MPextension_use_legacy tags.
+
+2010-02-18  Alan Modra  <amodra@gmail.com>
+
+       * elf.c (bfd_elf_set_group_contents): Revert accidental 2009-01-15
+       commit.  Don't write zeros for removed group members.
+       (_bfd_elf_copy_private_header_data): Adjust size of group section
+       when group members are removed by objcopy.
+
+2010-02-15  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       PR binutils/11280
+       * configure.host (*-*-solaris2.11):  Add host define to select
+       valid default code page for windres/windmc on solaris.
+
+2010-02-15  Nick Clifton  <nickc@redhat.com>
+
+       * po/vi.po: Updated Vietnamese translation.
+
+2010-02-12  Daniel Gutson  <dgutson@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_output_arch_local_syms): add
+       missing mapping symbol to data only sections.
+
+2010-02-11  David S. Miller  <davem@davemloft.net>
+
+       * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): For R_SPARC_GOTDATA_OP_HIX22
+       and R_SPARC_GOTDATA_OP_LOX10, only bump the GOT refcount for global
+       symbols.
+       (_bfd_sparc_elf_gc_sweep_hook): Likewise only decrement the GOT count for
+       these relocs on global symbols.
+       (gdopoff): New.
+       (_bfd_sparc_elf_relocate_section): Perform GOTDATA optimizations on
+       local symbol references which are not STT_GNU_IFUNC.  Handle
+       relocation of them like R_SPARC_HIX22 and R_SPARC_LOX10 respectively,
+       and deal with negative vs. non-negative values properly.
+
+2010-02-09  Tristan Gingold  <gingold@adacore.com>
+
+       * mach-o.c (bfd_mach_o_canonicalize_one_reloc): Adjust addend for
+       non-external relocation.
+
+2010-02-09  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (merge_got_entries): Move earlier in file.
+       (allocate_dynrelocs): Merge got entries here if not doing multi-toc.
+       (ppc64_elf_size_dynamic_sections): Similarly merge tlsld_got.
+       (ppc64_elf_layout_multitoc): Don't resize if we have already
+       merged got entries.
+
+2010-02-09  Michael Holzheu  <holzheu@de.ibm.com>
+
+       * elf-bfd.h (elfcore_write_s390_timer, elfcore_write_s390_todcmp,
+       elfcore_write_s390_todpreg, elfcore_write_s390_ctrs,
+       elfcore_write_s390_prefix): New.
+       * elf.c (elfcore_write_s390_timer, elfcore_write_s390_todcmp,
+       elfcore_write_s390_todpreg, elfcore_write_s390_ctrs,
+       elfcore_write_s390_prefix): New.
+       (elfcore_grok_note): Handle NT_S390_TIMER, NT_S390_TODCMP,
+       NT_S390_TODPREG, NT_S390_CTRS and NT_S390_PREFIX.
+       (elfcore_write_register_note): Handle .reg-s390-timer, 
+       .reg-s390-todcmp, .reg-s390-todpreg, .reg-s390-ctrs,
+       .reg-s390-prefix section.
+
+2010-02-09  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (struct got_entry): Make tls_type and is_indirect
+       unsigned char.  Update variables and code using them throughout file.
+       (struct ppc_link_hash_entry): Likewise for tls_mask.
+
+       * elf64-ppc.c (ppc64_elf_layout_multitoc): Don't merge local got ents.
+
+       * elf64-ppc.c (has_small_toc_reloc): Don't define.
+       (makes_toc_func_call, call_check_in_progress): Shuffle flags.
+       (struct ppc64_elf_obj_tdata): Add has_small_toc_reloc.  Update
+       code setting the flag.
+       (ppc64_elf_next_toc_section): Group big-toc sections in
+       0x80008000 chunks.
+
+2010-02-08  David S. Miller  <davem@davemloft.net>
+
+       * elfxx-sparc.h (struct _bfd_sparc_elf_link_hash_table): Remove sgot,
+       srelgot, splt, srelplt, and sgotplt members in favor of generic copies.
+
+       * elfxx-sparc.c (create_got_section): Delete.
+       (_bfd_sparc_elf_create_dynamic_sections): Don't call, the dynamic
+       section creator does that work for us.  Use ->elf.foo instead of
+       ->foo where applicable.
+       (_bfd_sparc_elf_check_relocs): Use ->elf.foo instead of ->foo
+       where applicable.
+       (allocate_dynrelocs): Likewise.
+       (_bfd_sparc_elf_size_dynamic_sections): Likewise.
+       (_bfd_sparc_elf_relocate_section): Likewise.
+       (sparc_vxworks_build_plt_entry): Likewise.
+       (_bfd_sparc_elf_finish_dynamic_symbol): Likewise.
+       (sparc_finish_dyn): Likewise.
+       (sparc_vxworks_finish_exec_plt): Likewise.
+       (sparc_vxworks_finish_shared_plt): Likewise.
+       (_bfd_sparc_elf_finish_dynamic_sections): Likewise.
+
+       * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Use the SYMBOL_*
+       macros for visibilty and locality checks.
+       (_bfd_sparc_elf_adjust_dynamic_symbol): Likewise.
+       (allocate_dynrelocs): Likewise.
+       (_bfd_sparc_elf_relocate_section): Likewise.
+       (_bfd_sparc_elf_finish_dynamic_symbol):Likewise.
+
+       * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Remove set
+       but never used local var 'dynobj'.
+
+       * elfxx-sparc.c (_bfd_sparc_elf_adjust_dynamic_symbol): Handle
+       nocopyreloc.
+
+       * reloc.c (BFD_RELOC_SPARC_JMP_IREL): New.
+       (BFD_RELOC_SPARC_IRELATIVE): Likewise.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+       * elfxx-sparc.h (_bfd_sparc_elf_link_hash_table): Add loc_hash_table
+       and loc_hash_memory.
+       (_bfd_sparc_elf_link_hash_table_free): Declare.
+       * elf32-sparc.c (elf32_sparc_add_symbol_hook): New.
+       (elf_backend_add_symbol_hook, elf_backend_post_process_headers,
+       bfd_elf32_bfd_link_hash_table_free): Define.
+       * elf64-sparc.c (elf64_sparc_add_symbol_hook): Set
+       has_ifunc_symbols if STT_GNU_IFUNC.
+       (bfd_elf64_bfd_link_hash_table_free): Define.
+       (elf_backend_post_process_headers): Define always.
+       * elfxx-sparc.c (sparc_jmp_irel_howto, sparc_irelative_howto): New.
+       (sparc_reloc_map): Add entries for new IFUNC relocs.
+       (_bfd_sparc_elf_reloc_type_lookup): Handle new IFUNC relocs.
+       (_bfd_sparc_elf_info_to_howto_ptr): Likewise.
+       (elf_sparc_local_htab_hash, elf_sparc_local_htab_eq,
+       elf_sparc_get_local_sym_hash): New.
+       (_bfd_sparc_elf_create_dynamic_sections): Move PLT ops initialization
+       from here...
+       (_bfd_sparc_elf_link_hash_table_create): ... to here.  Allocate
+       local hash table.
+       (_bfd_sparc_elf_link_hash_table_free): New.
+       (create_ifunc_sections): New.
+       (_bfd_sparc_elf_check_relocs): Unconditionally assign htab->elf.dynobj
+       and call create_ifunc_sections().  For local STT_GNU_IFUNC symbols
+       cons up a fake local hash table entry for it.  Unconditionally add
+       a PLT refcount for STT_GNU_IFUNC symbols when h->def_regular.  Count
+       dyn relocs for ifunc.
+       (_bfd_sparc_elf_adjust_dynamic_symbol): Handle ifunc.
+       (allocate_dynrelocs):  Unconditionally emit a PLT entry when
+       STT_GNU_IFUNC and h->def_regular.  Count GOT dyn relocs for ifunc.
+       (allocate_local_dynrelocs): New function.
+       (_bfd_sparc_elf_size_dynamic_sections): Invoke it over the local hash
+       table.  Emit dynamic relocs to irelplt when not shared.  Treat iplt
+       like splt.
+       (_bfd_sparc_elf_relocate_section): Handle ifunc relocations by hand.
+       (_bfd_sparc_elf_finish_dynamic_symbol): Adjust for non-dynamic ifunc
+       plt in iplt/irelplt.
+
 2010-02-08  Richard Sandiford  <r.sandiford@uk.ibm.com>
 
        * xcofflink.c (_bfd_xcoff_bfd_final_link): When calculating