_bfd_elf_rel_vtable_reloc_fn, "R_X86_64_GNU_VTENTRY", false, 0, 0,
false),
+/* Use complain_overflow_bitfield on R_X86_64_PC16 for code16. */
+ HOWTO(R_X86_64_PC16, 0, 1, 16, true, 0, complain_overflow_bitfield,
+ bfd_elf_generic_reloc, "R_X86_64_PC16", false, 0, 0xffff, true),
+
/* Use complain_overflow_bitfield on R_X86_64_32 for x32. */
HOWTO(R_X86_64_32, 0, 2, 32, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_X86_64_32", false, 0, 0xffffffff,
else
i = ARRAY_SIZE (x86_64_elf_howto_table) - 1;
}
+ else if (r_type == (unsigned int) R_X86_64_PC16)
+ {
+ /* Use complain_overflow_bitfield on R_X86_64_PC16 for code16. */
+ if (elf_x86_has_code16 (abfd))
+ i = ARRAY_SIZE (x86_64_elf_howto_table) - 2;
+ else
+ i = r_type;
+ }
else if (r_type < (unsigned int) R_X86_64_GNU_VTINHERIT
|| r_type >= (unsigned int) R_X86_64_max)
{