+
+ Merge cegcc and mingw32ce target name changes from
+ CeGCC project:
+
+
+ * config.bfd: Add arm*-*-cegcc* target.
+
+
+ * config.bfd: Add arm-*-mingw32ce* target.
+
+
+ * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): New.
+ * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Likewise.
+ * elf32-i386.c (elf_i386_allocate_dynrelocs): Use it.
+ * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise.
+
+
+ * elf-bfd.h (_bfd_elf_create_ifunc_dyn_reloc): New.
+ * elf-ifunc.c (_bfd_elf_create_ifunc_dyn_reloc): Likewise.
+ * elf32-i386.c (elf_i386_check_relocs): Use it.
+ * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
+
+
+ * elf-bfd.h (elf_dyn_relocs): New.
+
+ * elf32-i386.c (elf_i386_dyn_relocs): Removed.
+ (elf_i386_link_hash_entry): Replace elf_i386_dyn_relocs with
+ elf_dyn_relocs.
+ (elf_i386_copy_indirect_symbol): Likewise.
+ (elf_i386_check_relocs): Likewise.
+ (elf_i386_gc_sweep_hook): Likewise.
+ (elf_i386_allocate_dynrelocs): Likewise.
+ (elf_i386_readonly_dynrelocs): Likewise.
+ (elf_i386_size_dynamic_sections): Likewise.
+
+ * elf64-x86-64.c (elf64_x86_64_dyn_relocs): Removed.
+ (elf64_x86_64_link_hash_entry): Replace elf64_x86_64_dyn_relocs
+ with elf_dyn_relocs.
+ (elf64_x86_64_copy_indirect_symbol): Updated.
+ (elf64_x86_64_check_relocs): Likewise.
+ (elf64_x86_64_gc_sweep_hook): Likewise.
+ (elf64_x86_64_adjust_dynamic_symbol): Likewise.
+ (elf64_x86_64_allocate_dynrelocs): Likewise.
+ (elf64_x86_64_readonly_dynrelocs): Likewise.
+ (elf64_x86_64_size_dynamic_sections): Likewise.
+
+
+ * elf32-arm.c (create_got_section): Get existing .rela.got
+ section.
+ * elf32-hppa.c (elf32_hppa_create_dynamic_sections): Likewise.
+ * elf32-lm32.c (create_got_section): Likewise.
+ * elf32-m32r.c (create_got_section): Likewise.
+ * elf32-ppc.c (ppc_elf_create_got): Likewise.
+ * elf32-s390.c (create_got_section): Likewise.
+ * elf32-sh.c (create_got_section): Likewise.
+ * elf32-xtensa.c (elf_xtensa_create_dynamic_sections): Likewise.
+ * elf64-s390.c (create_got_section): Likewise.
+ * elfxx-sparc.c (create_got_section): Likewise.
+
+ * elflink.c (_bfd_elf_create_got_section): Properly initialize
+ the GOT size.
+
+
+ * elf-bfd.h (ELF_LOCAL_SYMBOL_HASH): New.
+
+ * elf32-i386.c (elf_i386_local_hash): Removed.
+ (elf_i386_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH.
+ (elf_i386_get_local_sym_hash): Likewise.
+
+ * elf64-x86-64.c (elf64_x86_64_local_hash): Removed.
+ (elf64_x86_64_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH.
+ (elf64_x86_64_get_local_sym_hash): Likewise.
+ * elfxx-ia64.c (elfNN_ia64_local_htab_hash): Likewise.
+ (get_local_sym_hash): Likewise.
+
+
+ * elfxx-ia64.c (elfNN_ia64_link_hash_table): Remove got_sec,
+ rel_got_sec and plt_sec.
+ (elfNN_ia64_relax_section): Updated.
+ (elfNN_ia64_create_dynamic_sections): Likewise.
+ (get_got): Likewise.
+ (allocate_dynrel_entries): Likewise.
+ (elfNN_ia64_size_dynamic_sections): Likewise.
+ (set_got_entry): Likewise.
+ (elfNN_ia64_choose_gp): Likewise.
+ (elfNN_ia64_relocate_section): Likewise.
+ (elfNN_ia64_finish_dynamic_symbol): Likewise.
+ (elfNN_ia64_finish_dynamic_sections): Likewise.
+
+
+ * elf32-spu.c (needs_ovl_stub): Respect .brinfo lrlive bits
+ also for calls.
+
+
+ * configure.in (elf): Add elf-ifunc.lo.
+
+ * configure: Regenerated.
+ * Makefile.in: Likewise.
+
+ * elf-bfd.h (elf_link_hash_table): Add sgot, sgotplt,
+ srelgot, splt, srelplt, igotplt, iplt, irelplt and irelifunc.
+
+ * elf32-i386.c (elf_i386_link_hash_table): Remove sgot,
+ sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and
+ irelifunc.
+ (elf_i386_link_hash_table_create): Likewise.
+ (elf_i386_create_dynamic_sections): Likewise.
+ (elf_i386_check_relocs): Likewise.
+ (elf_i386_allocate_dynrelocs): Likewise.
+ (elf_i386_size_dynamic_sections): Likewise.
+ (elf_i386_relocate_section): Likewise.
+ (elf_i386_finish_dynamic_symbol): Likewise.
+ (elf_i386_finish_dynamic_sections): Likewise.
+ (elf_i386_create_got_section): Removed.
+
+ * elf64-x86-64.c (elf64_x86_64_link_hash_table): Remove sgot,
+ sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and
+ irelifunc.
+ (elf64_x86_64_compute_jump_table_size): Updated.
+ (elf64_x86_64_link_hash_table_create): Likewise.
+ (elf64_x86_64_create_dynamic_sections): Likewise.
+ (elf64_x86_64_check_relocs): Likewise.
+ (elf64_x86_64_allocate_dynrelocs): Likewise.
+ (elf64_x86_64_size_dynamic_sections): Likewise.
+ (elf64_x86_64_relocate_section): Likewise.
+ (elf64_x86_64_finish_dynamic_symbol): Likewise.
+ (elf64_x86_64_finish_dynamic_sections): Likewise.
+ (elf64_x86_64_create_got_section): Removed.
+
+ * elflink.c (_bfd_elf_create_got_section): Use log_file_align
+ for pointer alignment. Set up section pointers.
+ (_bfd_elf_create_dynamic_sections): Likewise.
+ (_bfd_elf_create_ifunc_sections): Moved to ...
+ * elf-ifunc.c: Here. New.
+
+ * Makefile.am (BFD32_BACKENDS): Add elf-ifunc.lo.
+ (BFD32_BACKENDS_CFILES): Add elf-ifunc.c.
+ Run "make dep-am".
+
+
+ * elf32-arm.c (cortex_a8_erratum_scan): Change type of offset
+ to bfd_signed_vma. Cast constant operands which are used in
+ offset related expressions to bfd_signed_vma type as appropriate.
+
+
+ * elf32-vax.c (elf_vax_plt_sym_val): New function.
+ (elf_backend_plt_sym_val): Define.
+
+
+ * elf32-vax.c (elf_vax_reloc_type_class): New function.
+ (elf_backend_reloc_type_class): Define.
+
+
+ * elf32-vax.c (elf_vax_relocate_section): For symbol references
+ from an executable to a shared library treat R_VAX_PC32
+ relocations as R_VAX_PLT32 ones.
+
* elf32-vax.c (elf_vax_instantiate_got_entries): Skip local