+
+ * elf32-m68k.c: Rewrite initialization of GOT entries for TLS
+ relocations. Rewrite output of dynamic TLS relocations.
+ (DTP_OFFSET, TP_OFFSET): New constants.
+ (dtpoff_base): Update.
+ (tpoff): Rename to tpoff_base, update.
+ (elf_m68k_init_got_entry_static, elf_m68k_init_got_entry_local_shared):
+ New functions. Move code from elf_m68k_relocate_section here.
+ (elf_m68k_relocate_section): Update.
+ (elf_m68k_finish_dynamic_symbol): Fix handling of local TLS symbols.
+
+
+ * elf32-m68k.c (elf_m68k_copy_indirect_symbol): Propagate
+ non_got_ref value.
+ (elf_m68k_check_relocs): Handle dynamic TLS relocations.
+ Handle non_got_ref field.
+ (elf_m68k_adjust_dynamic_symbol): Handle non_got_ref field.
+
+
+ PR ld/10515
+ * linker.c (bfd_find_version_for_sym): Revert warning.
+
+
+ PR ld/10515
+ * linker.c (bfd_find_version_for_sym): Override a "*" match by any
+ other wildcard match. Warn on multiple wildcard matches.
+
+
+ * Makefile.am (libbfd_la_LDFLAGS): Initialize early, to allow
+ appending.
+ [INSTALL_LIBBFD] (bfdlib_LTLIBRARIES, bfdinclude_HEADERS): Set
+ only in this condition.
+ [!INSTALL_LIBBFD] (noinst_LTLIBRARIES, libbfd_la_LDFLAGS): New,
+ to build but not install libbfd.la in this condition.
+ (install-bfdlibLTLIBRARIES, uninstall-bfdlibLTLIBRARIES)
+ (install_libbfd, install_libbfd): Remove.
+ * Makefile.in: Regenerate.
+ * doc/Makefile.am (AM_CPPFLAGS): Renamed from ...
+ (INCLUDES): ... this.
+ ($(MKDOC)): Adjust.
+ * doc/Makefile.in: Regenerate.
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Remove cygnus, instead use
+ no-dist and foreign.
+ (EXTRA_libbfd_la_SOURCES): New, list $(CFILES) to allow
+ dependency tracking to work for them.
+ (targets.lo, archures.lo, dwarf.lo): Rewrite to
+ use automake dependency tracking mechanism.
+ (MKDEP, DEP, DEP1, dep.sed, dep, dep-in, dep-am): Remove.
+ (mkdep section): Remove.
+ (BUILT_SOURCES): New, list $(BUILD_HFILES).
+ * Makefile.in: Regenerate.
+ * po/SRC-POTFILES.in, po/bfd.pot: Regenerate.
+
+ * Makefile.am (datarootdir, docdir, htmldor, pdfdir)
+ (install-pdf, install-pdf-recursive, install-html)
+ (install-html-recursive): Remove.
+ * Makefile.in: Regenerate.
+
+ * Makefile.in: Regenerate.
+ * aclocal.m4: Likewise.
+ * config.in: Likewise.
+ * configure: Likewise.
+
+
+ * elf32-arm.c (arch_has_thumb2_nop): New function.
+ (arch_has_arm_nop): New function.
+ (elf32_arm_final_link_relocate): NOP opcodes changed.
+
+
+ * opncls.c (bfd_close): Until BFD_IN_MEMORY has an iovec,
+ at least don't leak memory.
+
+
+ * elf32-m32c.c (m32c_elf_relax_delete_bytes): Adjust symbol sizes
+ if needed.
+
+
+ * po/fi.po: Updated Finnish translation.
+
+
+ Merge some FRV FDPIC changes into the Blackfin code.
+ * elf32-bfin.c (struct bfinfdpic_elf_link_hash_table): Add pointer to
+ summary reloc information.
+ (bfinfdpic_dynamic_got_plt_info): New.
+ (_bfin_create_got_section): Create the PLT section here.
+ (elf32_bfinfdpic_create_dynamic_sections): Not here.
+ (_bfinfdpic_count_nontls_entries): Move out of...
+ (_bfinfdpic_count_got_plt_entries): ... here.
+ (_bfinfdpic_count_relocs_fixups): Likewise.
+ (_bfinfdpic_reset_got_plt_entries): New.
+ (_bfinfdpic_size_got_plt): Move out of...
+ (elf32_bfinfdpic_size_dynamic_sections): ... here.
+ (bfinfdpic_relocate_section): Be careful not to call
+ _bfinfdpic_add_rofixup or _bfinfdpic_add_dyn_reloc for deleted relocs.
+ (bfinfdpic_check_discarded_relocs, bfinfdpic_elf_discard_info):
+ New functions.
+ (elf_backend_discard_info): Define for FD-PIC.
+
+
+ * elflink.c: Add FIXMEs for some places that require octets_per_byte
+ adjustments.
+ * elf-eh-frame.c: Likewise.
+ * merge.c: Likewise.
+
+
+ * configure.in: Remove elf-ifunc.lo from common ELF files. Add
+ to x86 and x86_64 configurations.
+ * configure: Regenerate.
+
+
+ Stop using bfd_usrdata in libbfd.
+ * coff-stgo32.c (bfd_coff_go32stub): Remove.
+ (stub_bytes, comment): Replace STUBSIZE by GO32_STUBSIZE.
+ (adjust_filehdr_in_post): Declare the abfd parameter as unused.
+ Replace STUBSIZE by GO32_STUBSIZE. Save now the stub in
+ filehdr_dst->u.go32.stub. New comment with the reason.
+ (adjust_filehdr_out_pre): Replace STUBSIZE by GO32_STUBSIZE.
+ Substitute the removed macro bfd_coff_go32stub.
+ (adjust_filehdr_out_post, adjust_scnhdr_in_post, adjust_scnhdr_out_pre)
+ (adjust_scnhdr_out_post, adjust_aux_in_post, adjust_aux_out_pre)
+ (adjust_aux_out_post): Replace STUBSIZE by GO32_STUBSIZE.
+ (create_go32_stub, go32_stubbed_coff_bfd_copy_private_bfd_data):
+ Replace STUBSIZE by GO32_STUBSIZE. Substitute the removed macro
+ bfd_coff_go32stub.
+ * coffcode.h (coff_mkobject_hook): Initialize coff->go32stub.
+ * libcoff-in.h (coff_data_type): New field go32stub.
+ * libcoff.h: Regenerated.
+
+
+ Fix go32 stub preservation by objcopy.
+ * coff-stgo32.c (adjust_filehdr_in_post): Use bfd_malloc.
+ (go32_stubbed_coff_bfd_copy_private_bfd_data): Optionally allocate OBFD
+ go32stub.
+
+
+ * elf32-arm.c (elf32_arm_size_stubs): Don't die on undefined local
+ symbols.
+ (elf32_arm_final_link_relocate): Treat local undefined symbols the
+ same as global undefined symbols.
+ (elf32_arm_relocate_section): Give an error for local undefined
+ non-weak symbols, unless the reloc will not use the symbol.
+
+
+ * elf32-ppc.c (shared_stub_entry, stub_entry): Use r12, not r11.
+ (ppc_elf_relax_section): Use symbol index to distinguish
+ relocatable stubs.
+
+
+ * elf32-ppc.c (ppc_elf_relax_section): Ignore non-code sections.
+
+
+ * elflink.c (_bfd_elf_adjust_dynamic_symbol): Don't clear plt
+ info for STT_GNU_IFUNC.
+ * elf32-ppc.c (ppc_elf_check_relocs): Count a needed plt entry
+ on got refs in case the symbol turns out to be ifunc.
+ (ppc_elf_gc_sweep_hook): Similarly.
+ (ppc_elf_adjust_dynamic_symbol): Adjust assertion.
+ (allocate_dynrelocs): Don't specially allocate got relocs for ifunc.
+ (ppc_elf_size_dynamic_sections): Likewise.
+ (ppc_elf_relocate_section): Likewise.
+
+
+ * elf32-bfin.c (bfin_howto_table, bfin_reloc_map, bfin_check_relocs,
+ bfin_final_link_relocate, bfin_relocate_section, bfin_gc_sweep_hook,
+ _bfinfdpic_emit_got_relocs_plt_entries, bfinfdpic_relocate_section,
+ bfinfdpic_gc_sweep_hook, bfinfdpic_check_relocs,
+ bfin_finish_dynamic_symbol, bfd_bfin_elf32_create_embedded_relocs):
+ Adjust to match the renamed reloc definitions.
+
+
+ PR 10494
+ * elf.c (_bfd_elf_make_section_from_shdr): When setting up section
+ LMAs, use ELF_IS_SECTION_IN_SEGMENT to match sections with headers.
+
+
+ * elf32-microblaze.c (microblaze_elf_check_relocs): Avoid strict
+ aliasing error.
+
+
+ * Makefile.am: Add cpu-microblaze.{lo,c}, elf32-microblaze.{lo,c}.
+ * Makefile.in: Regenerate.
+ * archures.c: Add bfd_arch_microblaze.
+ * bfd-in2.h: Regenerate.
+ * config.bfd: Add microblaze target.
+ * configure.in: Add bfd_elf32_microblaze_vec target.
+ * configure: Regenerate.
+ * cpu-microblaze.c: New.
+ * elf32-microblaze.c: New.
+ * libbfd-in.h: Add prototype _bfd_dwarf2_fixup_section_debug_loc().
+ * libbfd.h: Regenerate.
+ * reloc.c: Add MICROBLAZE relocations.
+ * section.c: Add struct relax_table and relax_count to section.
+ * targets.c: Add bfd_elf32_microblaze_vec.
+
+
+ PR binutils/10492
+ * elf.c (sym_is_global): Return true even for BSF_GNU_UNIQUE
+ symbols.
+ * elf32-mips.c (mips_elf_sym_is_global): Likewise.
+ * elfn32-mips.c (mips_elf_sym_is_global): Likewise.
+
+
+ * elf32-arm.c (elf32_arm_size_stubs): Call layout_sections_again
+ at least once when fixing cortex-a8.
+
+
+ * elf32-mips.c (mips_reloc_map): Add BFD_RELOC_MIPS_JALR.
+ * elfxx-mips.c (JAL_TO_BAL_P): New define to transform JAL to BAL
+ for CPUs. It is true for RM9000.
+ (JALR_TO_BAL_P): New define to transform JALR to BAL. It is true
+ for all CPUs.
+ (mips_elf_perform_relocation): Use JAL_TO_BAL_P and JALR_TO_BAL_P
+ to guard the transformation.
+
+
+ * elf32-spu.h (spu_elf_params): Add member emit_fixups.
+ (spu_elf_size_sections): Declare prototype.
+ * elf32-spu.c (spu_link_hash_table): Add member sfixup.
+ (FIXUP_RECORD_SIZE, FIXUP_GET, FIXUP_PUT): New macros.
+ (spu_elf_emit_fixup): New function.
+ (spu_elf_relocate_section): Emit fixup for each SPU_ADDR32.
+ (spu_elf_size_sections): New function.
+
+
+ * elf32-arm.c (elf32_arm_stub_type): Add arm_stub_a8_veneer_lwm.
+ (arm_build_one_stub): Build a8 veneers as a separate pass.
+ (cortex_a8_erratum_scan): Add prev_num_a8_fixes and stub_changed_p
+ parameters. Use them to check if we create a different a8 fixup
+ than the previous pass.
+ (elf32_arm_size_stubs): Move scope of stub_changed and
+ prev_num_a8_fixes into main loop.
+ (elf32_arm_build_stubs): Build a8 veneers in a second pass.
+
+
+ * elf32-ppc.c (ppc_elf_relax_section): Correct conditions under
+ which find_plt_ent is called. Delete redundant code.
+
+
+ PR binutils/10363
+ * elf.c (bfd_elf_string_from_elf_section): Return NULL on
+ invalid string offset.
+
+
+ PR ld/10433
+ * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Set got
+ to htab->init_got_offset and plt to htab->init_plt_offset
+ when discarding space for dynamic relocations.
+
+
+ * elf32-ppc.c (struct plt_entry): Revise comments.
+ (ppc_elf_check_relocs): Don't create needless plt_entry info
+ for non-pie executables. Don't test info->pie when info->shared
+ already covers that case.
+ (ppc_elf_gc_sweep_hook): Adjust for above change.
+ (add_stub_sym): Don't test info->pie when info->shared tested.
+ (allocate_dynrelocs, ppc_elf_size_dynamic_sections): Likewise.
+ (write_glink_stub, ppc_elf_finish_dynamic_symbol): Likewise.
+ (ppc_elf_relax_section): Adjust find_plt_ent arguments.
+ (ppc_elf_relocate_section): Likewise.
+
+
+ * elf32-ppc.c (ppc_elf_check_relocs): Always add a plt ref count
+ for local ifunc symbols in non-pie executables, regardless of
+ reloc type. Don't specially create ifunc dyn relocs. Tidy ifunc
+ code so that it's obvious that we only do anything special for
+ local ifunc syms.
+ (ppc_elf_gc_sweep_hook): Adjust to suit check_relocs changes.
+ (allocate_dynrelocs): Correct comment for syms defined in plt.
+ Don't specially allocate ifunc dyn relocs.
+ (ppc_elf_relax_section): Relax branches to ifunc plt entries too.
+ (ppc_elf_relocate_section): Set "relocation" value for ifunc
+ syms in non-pie executables. No specially allocated dyn relocs
+ for ifunc to write. Allow for local sym on R_PPC_RELAX32_PLT.
+ (ppc_elf_finish_dynamic_symbol): Set value of ifunc symbols in
+ a non-pie executable.
+
+
+ PR ld/6443
+ * elf32-i386.c (elf_i386_tls_transition): Check executable
+ instead of shared for TLS when building PIE.
+ (elf_i386_check_relocs): Likewise.
+ (elf_i386_allocate_dynrelocs): Likewise.
+ (elf_i386_relocate_section): Likewise.
+
+ * elf64-x86-64.c (elf64_x86_64_tls_transition): Check executable
+ instead of shared for TLS when building PIE.
+ (elf64_x86_64_check_relocs): Likewise.
+ (elf64_x86_64_allocate_dynrelocs): Likewise.
+ (elf64_x86_64_relocate_section): Likewise.
+
+
+ * config.bfd (targ_cpu): Add moxie-uclinux support.
+
+
+ * linker.c (fix_syms): Consider SEC_LOAD when choosing section.
+
+
+ * elf32-ppc.c (ppc_elf_check_relocs): Always set up sections
+ used by indirect function support. Count dynamic relocs for
+ ifunc syms.
+ (ppc_elf_adjust_dynamic_symbol): Tweak for ifunc.
+ (allocate_dynrelocs): Allocate all non-dynamic ifunc plt entries
+ in iplt and their relocs in reliplt. Don't make ifunc syms
+ dynamic. Allocate got entry relocs for non-dynamic ifunc in
+ reliplt. Handle other dynamic relocs for ifunc.
+ (ppc_elf_size_dynamic_sections): Alloc dyn relocs for static
+ ifunc in reliplt, likewise relocs for got against local ifunc.
+ Typo fix on reliplt size adjust.
+ (ppc_elf_relocate_section): Don't use plt scheme of allocating
+ relocs 1-1 with entries for iplt, instead just add using
+ reloc_count. Write got relocs and dyn relocs for ifunc to reliplt.
+ Error on invalid ifunc dyn relocs.
+ (ppc_elf_finish_dynamic_symbol): Adjust for non-dynamic ifunc plt
+ in iplt/reliplt.
+ * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_JMP_IREL,
+ R_PPC64_REL16, R_PPC64_REL16_LO, R_PPC64_REL16_HI, R_PPC64_REL16_HA.
+ (ppc64_elf_reloc_type_lookup): Handle new relocs.
+ (ppc64_elf_check_relocs): Likewise. Count dyn relocs for ifunc.
+ (allocate_dynrelocs): As for elf32-ppc.c above.
+ (ppc64_elf_size_dynamic_sections): Likewise.
+ (ppc_build_one_stub): Put non-dynamic ifunc plt call stubs in iplt,
+ and their relocs in reliplt. Use R_PPC64_JMP_IREL.
+ (ppc_size_one_stub): Similarly.
+ (ppc64_elf_relocate_section): As for elf32-ppc.c above. Handle new
+ relocs too.
+ (ppc64_elf_finish_dynamic_symbol): As for elf32-ppc.c above.
+
+
+ * elf64-mmix.c (mmix_elf_relax_section): Revert 2009-05-27
+ change. Add note to head comment.
+
+
+ * archive.c (get_extended_arelt_filename): Remove redundant
+ range check on index.
+
+
+ * elf32-arm.c (stub_hash_newfunc): Initialize field output_name.
+
+
+ * archures.c bfd_*_arch): Sorted.
+ (bfd_archures_list): Likewise.
+
+
+ * elf32-cr16.c (elf_cr16_final_link_relocate): Add code to handle
+ to R_cr16_NUM32 relocation.
+
+
+ * archures.c: Add bfd_mach_ppc_405
+ * bfd-in2.h: Same.
+
+
+ * cpu-i386.c (bfd_x86_64_arch): Fix comment typos.
+ * cpu-l1om.c (bfd_l1om_arch): Likewise.
+
+
+ * archures.c (bfd_architecture): Add bfd_arch_l1om.
+ (bfd_l1om_arch): New.
+ (bfd_archures_list): Add &bfd_l1om_arch.
+ * bfd-in2.h: Regenerated.
+
+ * config.bfd (targ64_selvecs): Add bfd_elf64_l1om_vec if
+ bfd_elf64_x86_64_vec is supported. Add bfd_elf64_l1om_freebsd_vec
+ if bfd_elf64_x86_64_freebsd_vec is supported.
+ (targ_selvecs): Likewise.
+
+ * configure.in: Support bfd_elf64_l1om_vec and
+ bfd_elf64_l1om_freebsd_vec.
+ * configure: Regenerated.
+
+ * cpu-l1om.c: New.
+
+ * elf64-x86-64.c (elf64_l1om_elf_object_p): New.
+ (bfd_elf64_l1om_vec): Likewise.
+ (bfd_elf64_l1om_freebsd_vec): Likewise.
+
+ * Makefile.am (ALL_MACHINES): Add cpu-l1om.lo.
+ (ALL_MACHINES_CFILES): Add cpu-l1om.c.
+ * Makefile.in: Regenerated.
+
+ * targets.c (bfd_elf64_l1om_vec): New.
+ (bfd_elf64_l1om_freebsd_vec): Likewise.
+ (_bfd_target_vector): Add bfd_elf64_l1om_vec and
+ bfd_elf64_l1om_freebsd_vec.
+
+
+ * reloc.c (BFD_RELOC_SPU_ADD_PIC): Define.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+ * elf32-spu.c (elf_howto_table): Add entries SPU_ADD_PIC.
+ (spu_elf_bfd_to_reloc_type): Handle SPU_ADD_PIC.
+ (spu_elf_relocate_section): Patch instructions marked by SPU_ADD_PIC.
+
+
+ PR ld/10434
+ * elf64-x86-64.c (elf64_x86_64_check_relocs): Check executable
+ instead of shared for R_X86_64_TPOFF32.
+ (elf64_x86_64_relocate_section): Likewise.
+
+
+ * elf-bfd.h (struct elf_link_hash_entry): Add unique_global field.
+ * elf.c (swap_out_syms): Set binding to STB_GNU_UNIQUE for symbols
+ with the BSF_GNU_UNIQUE flag bit set.
+ * elfcode.h (elf_slurp_symbol_table): Set the BSF_GNU_UNIQUE flag
+ for symbols with STB_GNU_UNIQUE binding.
+ * elflink.c (_bfd_elf_merge_symbol): Set unique_global for symbols
+ with the STB_GNU_UNIQUE binding.
+ (elf_link_add_object_symbols): Set the BSF_GNU_UNIQUE flag for
+ symbols with STB_GNU_UNIQUE binding. Set STB_GNU_UNIQUE for
+ symbols with the unique_global field set.
+ (elf_link_output_extsym): Set unique_global field for symbols with
+ the STB_GNU_UNIQUE binding.
+ * syms.c (struct bfd_symbol): Define BSF_GNU_UNIQUE flag bit.
+ (bfd_print_symbol_vandf): Print a 'u' character for BSF_GNU_UNIQUE
+ symbols.
+ (bfd_decode_symclass): Return a 'u' character for BSF_GNU_UNIQUE
+ symbols.
+ * bfd-in2.h: Regenerate.
+
+
+ * elflink.c (elf_link_output_extsym): Revert the last change.
+
+
+ PR ld/10433
+ * elflink.c (elf_link_output_extsym): Special case ifunc syms
+ when ref_regular, not def_regular.
+
+
+ PR ld/10426
+ * elflink.c (elf_link_add_object_symbols): Turn an IFUNC symbol
+ from a DSO into a normal FUNC symbol.
+ (elf_link_output_extsym): Turn an undefined IFUNC symbol into
+ a normal FUNC symbol.
+
+
+ * elfxx-mips.c (LOAD_INTERLOCKS_P): New define.
+ (_bfd_mips_elf_size_dynamic_sections): For CPUs without load
+ interlocking, the last PLT entry needs a nop in the branch delay slot.
+ (_bfd_mips_elf_finish_dynamic_symbol): For CPUs with load itnerlocking,
+ output the last two PLT entries in reverse order.
+
+
+ * elf32-i386.c (elf_i386_relocate_section): Don't get local
+ STT_GNU_IFUNC symbol for relocatable link.
+ * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+
+
+ * bfdio.c (bfd_iovec): Add comments for bmmap.
+ * bfd-in2.h: Regenerated.
+
+
+ * Makefile.am: Run "make dep-am".
+ * Makefile.in: Regenerated.
+
+
+ * elf32-arm.c (stub_hash_newfunc): Initialize fields
+ target_addend and orig_insn.
+
+
+ * Makefile.am (dwarf2.lo): Use dwarf2.h, not elf/dwarf2.h.
+ (elf-eh-frame.lo): Likewise.
+ (elf32-bfin.lo): Likewise.
+ (elf32-frv.lo): Likewise.
+ (elf32-xc16x.lo): Likewise.
+ * Makefile.in: Rebuild.
+ * dwarf2.c: Included dwarf.h, not elf/dwarf2.h.
+ * elf-eh-frame.c: Likewise.
+ * elf32-bfin.c: Likewise.
+ * elf32-frv.c: Likewise.
+ * elf32-xc16x.c: Likewise.
+
+
+ * elf32-arm.c (arm_build_one_stub): Use the hash entry of the
+ symbol a stub entry is derived from, not the entry for the stub
+ itself, in call to elf32_arm_final_link_relocate.
+
+
+ * elf.c (_bfd_elf_get_synthetic_symtab): Remove leading zeros
+ when reporting addends.
+
+
+ * elf32-spu.c (spu_elf_size_stubs): Do set up soft-icache manager
+ data even when no stubs.
+ (spu_elf_place_overlay_data, spu_elf_build_stubs): Adjust.
+
+
+ * elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_IRELATIVE.
+ (ppc_elf_get_synthetic_symtab): Report addend.
+ (PLT_IFUNC): Define.
+ (struct ppc_elf_link_hash_table): Add iplt and reliplt.
+ (ppc_elf_create_glink): New function.
+ (ppc_elf_create_dynamic_sections): Use it.
+ (ppc_elf_add_symbol_hook): Set has_ifunc_symbols.
+ (update_local_sym_info): Allocate space for local_plt array.
+ Don't bump local_got_refcounts for PLT_IFUNC. Return local_plt
+ entry pointer.
+ (is_branch_reloc): New function.
+ (ppc_elf_check_relocs): Handle STT_GNU_IFUNC symbols.
+ (ppc_elf_gc_sweep_hook): Likewise.
+ (ppc_elf_adjust_dynamic_symbol): Likewise.
+ (allocate_dynrelocs): Likewise.
+ (ppc_elf_size_dynamic_sections): Likewise.
+ (ppc_elf_relocate_section): Likewise.
+ (branch_reloc_hash_match): Use is_branch_reloc.
+ (ppc_elf_tls_optimize): Adjust for local_plt.
+ (write_glink_stub): New function, extracted from..
+ (ppc_elf_finish_dynamic_symbol): ..here. Handle STT_GNU_IFUNC.
+ (ppc_elf_finish_dynamic_sections): Only write plt resolver and
+ branch table when dynamic.
+ (elf_backend_post_process_headers): Define.
+ * elf64-ppc.c (elf_backend_post_process_headers): Define.
+ (ppc64_elf_howto_raw): Add R_PPC64_IRELATIVE.
+ (ppc64_elf_get_synthetic_symtab): Report addend.
+ (struct ppc_stub_hash_entry): Add plt_ent.
+ (PLT_IFUNC): Define.
+ (struct ppc_link_hash_table): Add iplt and reliplt.
+ (create_linkage_sections): Make .iplt and .rela.iplt sections.
+ (ppc64_elf_add_symbol_hook): Set has_ifunc_symbols.
+ (update_local_sym_info): Allocate space for local_plt array.
+ Don't bump local_got_ents for PLT_IFUNC. Return local_plt
+ entry pointer.
+ (update_plt_info): Pass pointer to plt_entry rather than sym hash,
+ and don't change hash flags here.
+ (is_branch_reloc): New function.
+ (ppc64_elf_check_relocs): Handle STT_GNU_IFUNC.
+ (ppc64_elf_gc_sweep_hook): Likewise.
+ (ppc64_elf_adjust_dynamic_symbol): Likewise.
+ (allocate_dynrelocs): Likewise.
+ (ppc64_elf_size_dynamic_sections): Likewise.
+ (ppc_build_one_stub, ppc_size_one_stub): Likewise.
+ (ppc64_elf_size_stubs): Likewise.
+ (ppc64_elf_relocate_section): Likewise.
+ (get_sym_h): Adjust for local_plt.
+ (branch_reloc_hash_match): Use is_branch_reloc.
+ (ppc_type_of_stub): Pass plt_entry pointer and handle ifunc.
+ (ppc64_elf_toc): Ignore SEC_EXCLUDE sections.
+
+
+ * elf.c (_bfd_elf_get_synthetic_symtab): Report addends.
+
+
+ * elf-bfd.h (struct elf_link_hash_entry): Clarify ref_regular
+ and ref_regular_nonweak comment.
+ * elflink.c (elf_link_output_extsym): Special case ifunc syms
+ when def_regular, not ref_regular.
+ (elf_link_add_object_symbols): Don't set needs_plt on ifunc syms,..
+ * elf32-i386.c (elf_i386_check_relocs): ..set it here instead..
+ * elf64-x86-64.c (elf64_x86_64_check_relocs): ..and here.
+
+
+ * elf32-spu.c (mark_functions_via_relocs): Init broken_cycle field
+ of malloc'd struct call_info.
+ (pasted_function): Likewise, priority too.
+
+
+ * elf32-spu.c (spu_elf_auto_overlay): Take into account section
+ alignment when packing sections into overlays.
+
+
+ * dwarf2.c (decode_line_info): Ignore DW_LNE_set_discriminator.
+
+
+ * coffcode.h (sec_to_styp_flags): Partially revert (functional
+ changes only) earlier patch:-
+
+
+ * coffcode.h (sec_to_styp_flags): Set discardable for .reloc and
+ give .debug and .reloc data characteristics.
+ (DOT_RELOC): New define for .reloc section string.
+ (coff_write_object_contents): Use DOT_RELOC instead of string.
+
+
+ * aoutx.h (aout_get_external_symbols): Declare 'amt' locally.
+ * bfdwin.c (bfd_free_window): Cast to unsigned long.
+
+
+ * elf-m10300.c: Remove trailing white space.
+ * reloc.c: Likewise.
+
+
+ * bfd.m4 (BFD_HAVE_TIME_TYPE_MEMBER,
+ BFD_HAVE_SYS_STAT_TYPE_MEMBER): New config functions.
+ * configure.in: Use them.
+ * configure: Regenerate.
+ * config.in: Regnerate.
+ * vmsutil.c: Include sysdep.h, remove ansidecl.h.
+ #define _BSD_SOURCE. Add comments.
+ (vms_file_stats_name): Calculate creation date based on available
+ runtime data. Return 1 for version instead of 0.
+
PR 10072