|
|
|
|
@@ -45,133 +45,131 @@
|
|
|
|
|
static reloc_howto_type x86_64_elf_howto_table[] =
|
|
|
|
|
{
|
|
|
|
|
HOWTO(R_X86_64_NONE, 0, 3, 0, false, 0, complain_overflow_dont,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_NONE", false, 0x00000000, 0x00000000,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_NONE", false, 0, 0x00000000,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_64, 0, 4, 64, false, 0, complain_overflow_dont,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_64", false, MINUS_ONE, MINUS_ONE,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_64", false, 0, MINUS_ONE,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_PC32, 0, 2, 32, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PC32", false, 0xffffffff, 0xffffffff,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PC32", false, 0, 0xffffffff,
|
|
|
|
|
true),
|
|
|
|
|
HOWTO(R_X86_64_GOT32, 0, 2, 32, false, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOT32", false, 0xffffffff, 0xffffffff,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOT32", false, 0, 0xffffffff,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_PLT32, 0, 2, 32, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PLT32", false, 0xffffffff, 0xffffffff,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PLT32", false, 0, 0xffffffff,
|
|
|
|
|
true),
|
|
|
|
|
HOWTO(R_X86_64_COPY, 0, 2, 32, false, 0, complain_overflow_bitfield,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_COPY", false, 0xffffffff, 0xffffffff,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_COPY", false, 0, 0xffffffff,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_GLOB_DAT, 0, 4, 64, false, 0, complain_overflow_dont,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GLOB_DAT", false, MINUS_ONE,
|
|
|
|
|
MINUS_ONE, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GLOB_DAT", false, 0, MINUS_ONE,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_JUMP_SLOT, 0, 4, 64, false, 0, complain_overflow_dont,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_JUMP_SLOT", false, MINUS_ONE,
|
|
|
|
|
MINUS_ONE, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_JUMP_SLOT", false, 0, MINUS_ONE,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_RELATIVE, 0, 4, 64, false, 0, complain_overflow_dont,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_RELATIVE", false, MINUS_ONE,
|
|
|
|
|
MINUS_ONE, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_RELATIVE", false, 0, MINUS_ONE,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_GOTPCREL, 0, 2, 32, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTPCREL", false, 0xffffffff,
|
|
|
|
|
0xffffffff, true),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTPCREL", false, 0, 0xffffffff,
|
|
|
|
|
true),
|
|
|
|
|
HOWTO(R_X86_64_32, 0, 2, 32, false, 0, complain_overflow_unsigned,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_32", false, 0xffffffff, 0xffffffff,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_32", false, 0, 0xffffffff,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_32S, 0, 2, 32, false, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_32S", false, 0xffffffff, 0xffffffff,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_32S", false, 0, 0xffffffff,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_16, 0, 1, 16, false, 0, complain_overflow_bitfield,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_16", false, 0xffff, 0xffff, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_16", false, 0, 0xffff, false),
|
|
|
|
|
HOWTO(R_X86_64_PC16, 0, 1, 16, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PC16", false, 0xffff, 0xffff, true),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PC16", false, 0, 0xffff, true),
|
|
|
|
|
HOWTO(R_X86_64_8, 0, 0, 8, false, 0, complain_overflow_bitfield,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_8", false, 0xff, 0xff, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_8", false, 0, 0xff, false),
|
|
|
|
|
HOWTO(R_X86_64_PC8, 0, 0, 8, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PC8", false, 0xff, 0xff, true),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PC8", false, 0, 0xff, true),
|
|
|
|
|
HOWTO(R_X86_64_DTPMOD64, 0, 4, 64, false, 0, complain_overflow_dont,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_DTPMOD64", false, MINUS_ONE,
|
|
|
|
|
MINUS_ONE, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_DTPMOD64", false, 0, MINUS_ONE,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_DTPOFF64, 0, 4, 64, false, 0, complain_overflow_dont,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_DTPOFF64", false, MINUS_ONE,
|
|
|
|
|
MINUS_ONE, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_DTPOFF64", false, 0, MINUS_ONE,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_TPOFF64, 0, 4, 64, false, 0, complain_overflow_dont,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_TPOFF64", false, MINUS_ONE,
|
|
|
|
|
MINUS_ONE, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_TPOFF64", false, 0, MINUS_ONE,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_TLSGD, 0, 2, 32, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_TLSGD", false, 0xffffffff,
|
|
|
|
|
0xffffffff, true),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_TLSGD", false, 0, 0xffffffff,
|
|
|
|
|
true),
|
|
|
|
|
HOWTO(R_X86_64_TLSLD, 0, 2, 32, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_TLSLD", false, 0xffffffff,
|
|
|
|
|
0xffffffff, true),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_TLSLD", false, 0, 0xffffffff,
|
|
|
|
|
true),
|
|
|
|
|
HOWTO(R_X86_64_DTPOFF32, 0, 2, 32, false, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_DTPOFF32", false, 0xffffffff,
|
|
|
|
|
0xffffffff, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_DTPOFF32", false, 0, 0xffffffff,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_GOTTPOFF, 0, 2, 32, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTTPOFF", false, 0xffffffff,
|
|
|
|
|
0xffffffff, true),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTTPOFF", false, 0, 0xffffffff,
|
|
|
|
|
true),
|
|
|
|
|
HOWTO(R_X86_64_TPOFF32, 0, 2, 32, false, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_TPOFF32", false, 0xffffffff,
|
|
|
|
|
0xffffffff, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_TPOFF32", false, 0, 0xffffffff,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_PC64, 0, 4, 64, true, 0, complain_overflow_dont,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PC64", false, MINUS_ONE, MINUS_ONE,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PC64", false, 0, MINUS_ONE,
|
|
|
|
|
true),
|
|
|
|
|
HOWTO(R_X86_64_GOTOFF64, 0, 4, 64, false, 0, complain_overflow_dont,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTOFF64",
|
|
|
|
|
false, MINUS_ONE, MINUS_ONE, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTOFF64", false, 0, MINUS_ONE,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_GOTPC32, 0, 2, 32, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTPC32",
|
|
|
|
|
false, 0xffffffff, 0xffffffff, true),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTPC32", false, 0, 0xffffffff,
|
|
|
|
|
true),
|
|
|
|
|
HOWTO(R_X86_64_GOT64, 0, 4, 64, false, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOT64", false, MINUS_ONE, MINUS_ONE,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOT64", false, 0, MINUS_ONE,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_GOTPCREL64, 0, 4, 64, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTPCREL64", false, MINUS_ONE,
|
|
|
|
|
MINUS_ONE, true),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTPCREL64", false, 0, MINUS_ONE,
|
|
|
|
|
true),
|
|
|
|
|
HOWTO(R_X86_64_GOTPC64, 0, 4, 64, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTPC64",
|
|
|
|
|
false, MINUS_ONE, MINUS_ONE, true),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTPC64", false, 0, MINUS_ONE,
|
|
|
|
|
true),
|
|
|
|
|
HOWTO(R_X86_64_GOTPLT64, 0, 4, 64, false, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTPLT64", false, MINUS_ONE,
|
|
|
|
|
MINUS_ONE, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTPLT64", false, 0, MINUS_ONE,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_PLTOFF64, 0, 4, 64, false, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PLTOFF64", false, MINUS_ONE,
|
|
|
|
|
MINUS_ONE, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PLTOFF64", false, 0, MINUS_ONE,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_SIZE32, 0, 2, 32, false, 0, complain_overflow_unsigned,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_SIZE32", false, 0xffffffff, 0xffffffff,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_SIZE32", false, 0, 0xffffffff,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_SIZE64, 0, 4, 64, false, 0, complain_overflow_dont,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_SIZE64", false, MINUS_ONE, MINUS_ONE,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_SIZE64", false, 0, MINUS_ONE,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_GOTPC32_TLSDESC, 0, 2, 32, true, 0,
|
|
|
|
|
complain_overflow_bitfield, bfd_elf_generic_reloc,
|
|
|
|
|
"R_X86_64_GOTPC32_TLSDESC",
|
|
|
|
|
false, 0xffffffff, 0xffffffff, true),
|
|
|
|
|
"R_X86_64_GOTPC32_TLSDESC", false, 0, 0xffffffff, true),
|
|
|
|
|
HOWTO(R_X86_64_TLSDESC_CALL, 0, 3, 0, false, 0,
|
|
|
|
|
complain_overflow_dont, bfd_elf_generic_reloc,
|
|
|
|
|
"R_X86_64_TLSDESC_CALL",
|
|
|
|
|
false, 0, 0, false),
|
|
|
|
|
HOWTO(R_X86_64_TLSDESC, 0, 4, 64, false, 0,
|
|
|
|
|
complain_overflow_dont, bfd_elf_generic_reloc,
|
|
|
|
|
"R_X86_64_TLSDESC",
|
|
|
|
|
false, MINUS_ONE, MINUS_ONE, false),
|
|
|
|
|
"R_X86_64_TLSDESC", false, 0, MINUS_ONE, false),
|
|
|
|
|
HOWTO(R_X86_64_IRELATIVE, 0, 4, 64, false, 0, complain_overflow_dont,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_IRELATIVE", false, MINUS_ONE,
|
|
|
|
|
MINUS_ONE, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_IRELATIVE", false, 0, MINUS_ONE,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_RELATIVE64, 0, 4, 64, false, 0, complain_overflow_dont,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_RELATIVE64", false, MINUS_ONE,
|
|
|
|
|
MINUS_ONE, false),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_RELATIVE64", false, 0, MINUS_ONE,
|
|
|
|
|
false),
|
|
|
|
|
HOWTO(R_X86_64_PC32_BND, 0, 2, 32, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PC32_BND", false, 0xffffffff, 0xffffffff,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PC32_BND", false, 0, 0xffffffff,
|
|
|
|
|
true),
|
|
|
|
|
HOWTO(R_X86_64_PLT32_BND, 0, 2, 32, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PLT32_BND", false, 0xffffffff, 0xffffffff,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_PLT32_BND", false, 0, 0xffffffff,
|
|
|
|
|
true),
|
|
|
|
|
HOWTO(R_X86_64_GOTPCRELX, 0, 2, 32, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTPCRELX", false, 0xffffffff,
|
|
|
|
|
0xffffffff, true),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_GOTPCRELX", false, 0, 0xffffffff,
|
|
|
|
|
true),
|
|
|
|
|
HOWTO(R_X86_64_REX_GOTPCRELX, 0, 2, 32, true, 0, complain_overflow_signed,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_REX_GOTPCRELX", false, 0xffffffff,
|
|
|
|
|
0xffffffff, true),
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_REX_GOTPCRELX", false, 0, 0xffffffff,
|
|
|
|
|
true),
|
|
|
|
|
|
|
|
|
|
/* We have a gap in the reloc numbers here.
|
|
|
|
|
R_X86_64_standard counts the number up to this point, and
|
|
|
|
|
@@ -191,7 +189,7 @@ static reloc_howto_type x86_64_elf_howto_table[] =
|
|
|
|
|
|
|
|
|
|
/* 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, 0xffffffff, 0xffffffff,
|
|
|
|
|
bfd_elf_generic_reloc, "R_X86_64_32", false, 0, 0xffffffff,
|
|
|
|
|
false)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|