Fix more linker testsuite failures.
[binutils-gdb.git] / bfd / ChangeLog
index 344e08b93b97f61706c5e408d6247c0281da7d66..8ad7d0d49b1d441ddaabd756204228084de376b7 100644 (file)
@@ -1,3 +1,235 @@
+2016-06-28  Nick Clifton  <nickc@redhat.com>
+
+       * elf32-bfin.c (bfin_adjust_dynamic_symbol): Fail if a COPY reloc
+       is needed.
+
+       * elf32-arm.c (elf32_arm_backend_symbol_processing): New
+       function.  Marks mapping symbols in object files as precious, so
+       that strip will not remove them.
+       (elf_backend_symbol_processing): Define.
+
+2016-06-28  James Clarke  <jrtc27@jrtc27.com>
+
+       * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Don't convert
+       R_SPARC_32 to R_SPARC_RELATIVE if class is ELFCLASS64.
+
+2016-06-28  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elf32-mips.c (elf_mips16_howto_table_rel): Add
+       R_MIPS16_PC16_S1.
+       (mips16_reloc_map): Likewise.
+       * elf64-mips.c (mips16_elf64_howto_table_rel): Likewise.
+       (mips16_elf64_howto_table_rela): Likewise.
+       (mips16_reloc_map): Likewise.
+       * elfn32-mips.c (elf_mips16_howto_table_rel): Likewise.
+       (elf_mips16_howto_table_rela): Likewise.
+       (mips16_reloc_map): Likewise.
+       * elfxx-mips.c (mips16_branch_reloc_p): New function.
+       (mips16_reloc_p): Handle R_MIPS16_PC16_S1.
+       (b_reloc_p): Likewise.
+       (mips_elf_calculate_relocation): Likewise.
+       (_bfd_mips_elf_check_relocs): Likewise.
+       * reloc.c (BFD_RELOC_MIPS16_16_PCREL_S1): New relocation.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+2016-06-27  Alan Modra  <amodra@gmail.com>
+
+       PR ld/19264
+       * elf64-ppc.c (STUB_SHRINK_ITER): Define.
+       (ppc64_elf_size_stubs): Exit stub sizing loop past STUB_SHRINK_ITER
+       if shrinking stubs.
+       (ppc64_elf_size_stubs): Adjust to suit.
+
+2016-06-27  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
+
+       * elf32-dlx.h: New file.
+       * elf32-dlx.c: Adjust.
+
+2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
+
+       * elf32-xtensa.c (xtensa_make_property_section): Remove prototype.
+
+2016-06-24  John Baldwin  <jhb@FreeBSD.org>
+
+       * elf.c (elfcore_grok_freebsd_note): Handle NT_FREEBSD_PROCSTAT_AUXV
+       notes.
+
+2016-06-24  John Baldwin  <jhb@FreeBSD.org>
+
+       * elf.c (elfcore_grok_note): Remove handling of NT_X86_XSTATE for
+       FreeBSD.  Remove case for NT_FREEBSD_THRMISC.
+       (elfcore_grok_freebsd_psinfo): New function.
+       (elfcore_grok_freebsd_prstatus): New function.
+       (elfcore_grok_freebsd_note): New function.
+       (elf_parse_notes): Use "elfcore_grok_freebsd_note" for "FreeBSD"
+       notes.
+
+2016-06-24  Joel Brobecker  <brobecker@adacore.com>
+
+       * elflink.c: Check the value of BFD_SUPPORTS_PLUGINS rather
+       than its existance.
+
+2016-06-24  Alan Modra  <amodra@gmail.com>
+
+       * config.bfd: Delete mips vxworks patterns matched earlier.
+       Combine mips*-*-none with mips*-*-elf*.
+
+2016-06-21  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elfxx-mips.c (mips_elf_perform_relocation): Call
+       `info->callbacks->einfo' rather than `*_bfd_error_handler' and
+       use the `%X%H' format for the cross-mode jump conversion error
+       message.  Remove the full stop from the end of the message.
+       Continue processing rather than returning failure.
+
+2016-06-21  Graham Markall  <graham.markall@embecosm.com>
+
+       * archures.c: Remove bfd_mach_arc_nps400.
+       * bfd-in2.h: Likewise.
+       * cpu-arc.c (arch_info_struct): Likewise.
+       * elf32-arc.c (arc_elf_object_p, arc_elf_final_write_processing):
+       Likewise.
+
+2016-06-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/18250
+       PR ld/20267
+       * elflink.c: Include plugin.h if BFD_SUPPORTS_PLUGINS is
+       defined.
+       (elf_link_is_defined_archive_symbol): Call
+       bfd_link_plugin_object_p on unknown plugin object and use the
+       IR symbol table if the input is an IR object.
+       * plugin.c (bfd_link_plugin_object_p): New function.
+       * plugin.h (bfd_link_plugin_object_p): New prototype.
+
+2016-06-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/20276
+       * elflink.c (elf_link_add_object_symbols): Don't check alignment
+       on symbol from plugin dummy input.
+
+2016-06-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * bfd.c (bfd_plugin_format): Rename bfd_plugin_uknown to
+       bfd_plugin_unknown.
+       * bfd-in2.h: Regenerated.
+       * plugin.c (bfd_plugin_object_p): Replace bfd_plugin_uknown
+       with bfd_plugin_unknown.
+
+2016-06-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/20253
+       * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): Add an
+       bfd_boolean argument.
+       * elf-ifunc.c (_bfd_elf_create_ifunc_sections): Replace
+       "shared object" with "PIC object" in comments.
+       (_bfd_elf_allocate_ifunc_dyn_relocs): Updated.  Replace
+       "shared object" with "PIC object" in comments.  Avoid PLT if
+       requested.  Generate dynamic relocations for non-GOT references.
+       Make room for the special first entry in PLT and allocate PLT
+       entry only for PLT and PC-relative references.  Store dynamic
+       GOT relocations in .rel[a].iplt section for static executables.
+       If PLT isn't used, always use GOT for symbol value.  Don't
+       allocate GOT entry if it isn't used.
+       * elf32-i386.c (elf_i386_check_relocs): Increment PLT reference
+       count only in the code section.  Allocate dynamic pointer
+       relocation against STT_GNU_IFUNC symbol in the non-code section.
+       (elf_i386_adjust_dynamic_symbol): Increment PLT reference count
+       only for PC-relative references.
+       (elf_i386_allocate_dynrelocs): Pass TRUE to
+       _bfd_elf_allocate_ifunc_dyn_relocs.
+       (elf_i386_relocate_section): Allow R_386_GOT32/R_386_GOT32X
+       relocations against STT_GNU_IFUNC symbols without PLT.  Generate
+       dynamic pointer relocation against STT_GNU_IFUNC symbol in
+       the non-code section and store it in the proper REL section.
+       Don't allow non-pointer relocation against STT_GNU_IFUNC symbol
+       without PLT.
+       (elf_i386_finish_dynamic_symbol): Generate dynamic
+       R_386_IRELATIVE and R_386_GLOB_DAT GOT relocations against
+       STT_GNU_IFUNC symbols without PLT.
+       (elf_i386_finish_dynamic_sections): Don't handle local
+       STT_GNU_IFUNC symbols here.
+       (elf_i386_output_arch_local_syms): Handle local STT_GNU_IFUNC
+       symbols here.
+       (elf_backend_output_arch_local_syms): New.
+       * elf32-x86-64.c (elf_i386_check_relocs): Increment PLT reference
+       count only in the code section.  Allocate dynamic pointer
+       relocation against STT_GNU_IFUNC symbol in the non-code section.
+       (elf_x86_64_adjust_dynamic_symbol): Increment PLT reference
+       count only for PC-relative references.
+       (elf_x86_64_allocate_dynrelocs): Pass TRUE to
+       _bfd_elf_allocate_ifunc_dyn_relocs.
+       (elf_x86_64_relocate_section): Allow R_X86_64_GOTPCREL,
+       R_X86_64_GOTPCRELX, R_X86_64_REX_GOTPCRELX and
+       R_X86_64_GOTPCREL64 relocations against STT_GNU_IFUNC symbols
+       without PLT.  Generate dynamic pointer relocation against
+       STT_GNU_IFUNC symbol in the non-code section and store it in
+       the proper RELA section.  Don't allow non-pointer relocation
+       against STT_GNU_IFUNC symbol without PLT.
+       (elf_x86_64_finish_dynamic_symbol): Generate dynamic
+       R_X86_64_IRELATIVE and R_X86_64_GLOB_DAT GOT relocations against
+       STT_GNU_IFUNC symbols without PLT.
+       (elf_x86_64_finish_dynamic_sections): Don't handle local
+       STT_GNU_IFUNC symbols here.
+       (elf_x86_64_output_arch_local_syms): Handle local STT_GNU_IFUNC
+       symbols here.
+       (elf_backend_output_arch_local_syms): New.
+       * elfnn-aarch64.c (elfNN_aarch64_allocate_ifunc_dynrelocs):
+       Pass FALSE to _bfd_elf_allocate_ifunc_dyn_relocs.
+
+2016-06-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+           Tony Wang  <tony.wang@arm.com>
+
+       * elf32-arm.c (elf32_arm_stub_long_branch_thumb2_only): Define stub
+       sequence.
+       (stub_long_branch_thumb2_only): Define stub.
+       (arm_stub_is_thumb): Add case for arm_stub_long_branch_thumb2_only.
+       (arm_stub_long_branch_thumb2_only): Likewise.
+       (arm_type_of_stub): Use arm_stub_long_branch_thumb2_only for Thumb-2
+       capable targets.
+
+2016-06-17  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+       * archures.c (bfd_mach_sparc_v8plusc): Define.
+       (bfd_mach_sparc_v9c): Likewise.
+       (bfd_mach_sparc_v8plusd): Likewise.
+       (bfd_mach_sparc_v9d): Likewise.
+       (bfd_mach_sparc_v8pluse): Likewise.
+       (bfd_mach_sparc_v9e): Likewise.
+       (bfd_mach_sparc_v8plusv): Likewise
+       (bfd_mach_sparc_v9v): Likewise.
+       (bfd_mach_sparc_v8plusm): Likewise.
+       (bfd_mach_sparc_v9m): Likewise.
+       (bfd_mach_sparc_v9_p): Adapt to v8plusm and v9m.
+       (bfd_mach_sparc_64bit_p): Likewise.
+       * bfd-in2.h: Regenerate.
+       * cpu-sparc.c (arch_info_struct): Add entries for
+       bfd_mach_sparc_v8plus{c,d,e,v,m} and bfd_mach_sparc_v9{c,d,e,v,m}.
+       * aoutx.h (machine_type): Handle bfd_mach_sparc_v8plus{c,d,e,v,m}
+       and bfd_mach_sparc_v9{c,d,e,v,m}.
+       * elf32-sparc.c (elf32_sparc_final_write_processing): Likewise.
+       * elfxx-sparc.c (_bfd_sparc_elf_object_p): Likewise.
+
+2016-06-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_check_relocs): Don't check undefined
+       symbols for relocations against IFUNC symbols.
+       * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+
+2016-06-16  Marcin Koƛcielnicki  <koriakin@0x04.net>
+
+       * elf32-s390.c (elf_s390_finish_dynamic_sections): Include
+       .rela.iplt in DT_PLTRELSZ.
+       * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise,
+       for DT_PLTRELSZ and DT_RELASZ as well.
+
+2016-06-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_check_relocs): Skip relocations in
+       non-loaded, non-alloced sections.
+       * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+
 2016-06-15  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elf32-i386.c (elf_i386_check_relocs): Check SEC_ALLOC before