Add R_386_GOT32X support to gas and ld
[external/binutils.git] / bfd / ChangeLog
index 862664a..a2e3034 100644 (file)
@@ -1,3 +1,69 @@
+2015-10-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c: Include opcode/i386.h.
+       (elf_howto_table): Add R_386_GOT32X.
+       (R_386_ext2): Replace R_386_IRELATIVE with R_386_GOT32X.
+       (elf_i386_reloc_type_lookup): Handle BFD_RELOC_386_GOT32X.
+       (need_convert_mov_to_lea): Renamed to ...
+       (need_convert_load): This.
+       (elf_i386_check_relocs): Handle R_386_GOT32X.  Replace
+       need_convert_mov_to_lea with need_convert_load.
+       (elf_i386_gc_sweep_hook): Handle R_386_GOT32X.
+       (elf_i386_size_dynamic_sections): Likewise.
+       (elf_i386_relocate_section): Likewise.
+       (elf_i386_convert_mov_to_lea): Renamed to ...
+       (elf_i386_convert_load): This.  Replace need_convert_mov_to_lea
+       with need_convert_load.  Support R_386_GOT32X transformations.
+       * reloc.c (BFD_RELOC_386_GOT32X): New.
+       * bfd-in2.h: Regenerated.
+       * libbfd.h: Likewise.
+
+2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * elf32-s390.c (elf_s390_check_relocs): Set the non_got_ref marker
+       only when linking an executable.
+       (elf_s390_relocate_section): Redirect PC-relative relocs to a IPLT
+       slot.
+       * elf64-s390.c (elf_s390_check_relocs): Set the non_got_ref marker
+       only when linking an executable.
+       (elf_s390_relocate_section): Redirect PC-relative relocs to a IPLT
+       slot.
+
+2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * elf32-s390.c (elf_s390_adjust_dynamic_symbol): Set the PLT
+       reference counters for local IFUNC calls.
+       * elf64-s390.c (elf_s390_adjust_dynamic_symbol): Likewise.
+
+2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * elf32-s390.c (elf_s390_check_relocs): Fallthrough to the PLT
+       slot allocating code for GOTOFF relocs on ifunc symbols.
+       (elf_s390_gc_sweep_hook): Decrement plt refcount for GOTOFF relocs
+       on ifunc symbols.
+       (elf_s390_relocate_section): Redirect a GOTOFF reloc to an iplt
+       slot.
+
+2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       PR ld/18841
+       * elf32-s390.c (elf_s390_reloc_type_class): Return
+       reloc_class_ifunc for ifunc symbols.
+       * elf64-s390.c (elf_s390_reloc_type_class): Likewise.
+
+2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * elf32-s390.c (elf_s390_finish_dynamic_symbol): Call
+       elf_s390_finish_ifunc_symbol only for actually defined symbols.
+       * elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
+
+2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * elf-s390-common.c (s390_elf_allocate_ifunc_dyn_relocs): Remove
+       `head' parameter.
+       * elf32-s390.c (allocate_dynrelocs): Don't use last parameter.
+       * elf64-s390.c (allocate_dynrelocs): Don't use last parameter.
+
 2015-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
 
        * mmo.c (mmo_write_symbols_and_terminator): Correct printed value