+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
+ max_contents_size, only consider sections whose contents must
+ be swapped in.
+
+2010-02-09 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (allocate_dynrelocs): Remove unused got structs here..
+ (ppc64_elf_size_dynamic_sections): ..and here..
+ (merge_got_entries): ..rather than here.
+
+2010-02-09 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (struct ppc_link_hash_table): Add do_multi_toc.
+ (has_small_toc_reloc): Define.
+ (ppc64_elf_check_relocs): Set the above flags.
+ (ppc64_elf_edit_opd): Delete obfd param.
+ (ppc64_elf_tls_optimize): Likewise.
+ (ppc64_elf_edit_toc): Likewise.
+ (ppc64_elf_tls_setup): Likewise. Add no_multi_toc param.
+ * elf64-ppc.h: Update prototypes.
+
+2010-02-08 Alan Modra <amodra@gmail.com>
+
+ * section.c (struct bfd_section): Delete has_tls_reloc,
+ has_tls_get_addr_call, has_gp_reloc, need_finalize_relax, reloc_done.
+ Add sec_flg0 thru sec_flg5.
+ (BFD_FAKE_SECTION): Update for changed flags.
+ * ecoff.c (bfd_debug_section): Likewise.
+ * elf32-ppc.c (has_tls_reloc, has_tls_get_addr_call): Define.
+ * elf64-ppc.c (has_tls_reloc, has_tls_get_addr_call): Define.
+ (has_toc_reloc, makes_toc_func_call, call_check_in_progress): Update.
+ * elf32-xtensa.c (reloc_done): Define.
+ * elfxx-ia64.c (skip_relax_pass_0, skip_relax_pass_1): Update.
+ * bfd-in2.h: Regenerate.
+
+2010-02-08 Tristan Gingold <gingold@adacore.com>
+
+ * mach-o.c (bfd_mach_o_canonicalize_one_reloc): Set reloc.r_extern
+ for non-scattered relocations.
+
2010-02-08 Nathan Sidwell <nathan@codesourcery.com>
* elf32-ppc.c (ppc_elf_begin_write_processing): Allow empty