aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf64-x86-64.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/elf64-x86-64.c')
-rw-r--r--bfd/elf64-x86-64.c632
1 files changed, 316 insertions, 316 deletions
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 5edbb70..3ac6159 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -44,134 +44,134 @@
special_function, name, partial_inplace, src_mask, dst_mask, pcrel_offset. */
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,
- FALSE),
- HOWTO(R_X86_64_64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
- bfd_elf_generic_reloc, "R_X86_64_64", FALSE, MINUS_ONE, 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,
- 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,
- 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,
- 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,
- FALSE),
- HOWTO(R_X86_64_GLOB_DAT, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
- bfd_elf_generic_reloc, "R_X86_64_GLOB_DAT", FALSE, MINUS_ONE,
- MINUS_ONE, FALSE),
- HOWTO(R_X86_64_JUMP_SLOT, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
- bfd_elf_generic_reloc, "R_X86_64_JUMP_SLOT", FALSE, MINUS_ONE,
- MINUS_ONE, FALSE),
- HOWTO(R_X86_64_RELATIVE, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
- bfd_elf_generic_reloc, "R_X86_64_RELATIVE", FALSE, MINUS_ONE,
- 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),
- HOWTO(R_X86_64_32, 0, 2, 32, FALSE, 0, complain_overflow_unsigned,
- bfd_elf_generic_reloc, "R_X86_64_32", FALSE, 0xffffffff, 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,
- 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),
- HOWTO(R_X86_64_PC16,0, 1, 16, TRUE, 0, complain_overflow_bitfield,
- bfd_elf_generic_reloc, "R_X86_64_PC16", FALSE, 0xffff, 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),
- 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),
- HOWTO(R_X86_64_DTPMOD64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
- bfd_elf_generic_reloc, "R_X86_64_DTPMOD64", FALSE, MINUS_ONE,
- MINUS_ONE, FALSE),
- HOWTO(R_X86_64_DTPOFF64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
- bfd_elf_generic_reloc, "R_X86_64_DTPOFF64", FALSE, MINUS_ONE,
- MINUS_ONE, FALSE),
- HOWTO(R_X86_64_TPOFF64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
- bfd_elf_generic_reloc, "R_X86_64_TPOFF64", FALSE, MINUS_ONE,
- 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),
- 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),
- 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),
- 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),
- 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),
- HOWTO(R_X86_64_PC64, 0, 4, 64, TRUE, 0, complain_overflow_bitfield,
- bfd_elf_generic_reloc, "R_X86_64_PC64", FALSE, MINUS_ONE, MINUS_ONE,
- TRUE),
- HOWTO(R_X86_64_GOTOFF64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+ HOWTO(R_X86_64_NONE, 0, 3, 0, false, 0, complain_overflow_dont,
+ bfd_elf_generic_reloc, "R_X86_64_NONE", false, 0x00000000, 0x00000000,
+ false),
+ HOWTO(R_X86_64_64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ bfd_elf_generic_reloc, "R_X86_64_64", false, MINUS_ONE, 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,
+ 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,
+ 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,
+ 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,
+ false),
+ HOWTO(R_X86_64_GLOB_DAT, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ bfd_elf_generic_reloc, "R_X86_64_GLOB_DAT", false, MINUS_ONE,
+ MINUS_ONE, false),
+ HOWTO(R_X86_64_JUMP_SLOT, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ bfd_elf_generic_reloc, "R_X86_64_JUMP_SLOT", false, MINUS_ONE,
+ MINUS_ONE, false),
+ HOWTO(R_X86_64_RELATIVE, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ bfd_elf_generic_reloc, "R_X86_64_RELATIVE", false, MINUS_ONE,
+ 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),
+ HOWTO(R_X86_64_32, 0, 2, 32, false, 0, complain_overflow_unsigned,
+ bfd_elf_generic_reloc, "R_X86_64_32", false, 0xffffffff, 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,
+ 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),
+ HOWTO(R_X86_64_PC16,0, 1, 16, true, 0, complain_overflow_bitfield,
+ bfd_elf_generic_reloc, "R_X86_64_PC16", false, 0xffff, 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),
+ 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),
+ HOWTO(R_X86_64_DTPMOD64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ bfd_elf_generic_reloc, "R_X86_64_DTPMOD64", false, MINUS_ONE,
+ MINUS_ONE, false),
+ HOWTO(R_X86_64_DTPOFF64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ bfd_elf_generic_reloc, "R_X86_64_DTPOFF64", false, MINUS_ONE,
+ MINUS_ONE, false),
+ HOWTO(R_X86_64_TPOFF64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ bfd_elf_generic_reloc, "R_X86_64_TPOFF64", false, MINUS_ONE,
+ 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),
+ 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),
+ 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),
+ 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),
+ 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),
+ HOWTO(R_X86_64_PC64, 0, 4, 64, true, 0, complain_overflow_bitfield,
+ bfd_elf_generic_reloc, "R_X86_64_PC64", false, MINUS_ONE, MINUS_ONE,
+ true),
+ HOWTO(R_X86_64_GOTOFF64, 0, 4, 64, false, 0, complain_overflow_bitfield,
bfd_elf_generic_reloc, "R_X86_64_GOTOFF64",
- FALSE, MINUS_ONE, MINUS_ONE, FALSE),
- HOWTO(R_X86_64_GOTPC32, 0, 2, 32, TRUE, 0, complain_overflow_signed,
+ false, MINUS_ONE, 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),
- 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,
- 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),
- HOWTO(R_X86_64_GOTPC64, 0, 4, 64, TRUE, 0, complain_overflow_signed,
+ false, 0xffffffff, 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,
+ 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),
+ 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),
- 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),
- 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),
- HOWTO(R_X86_64_SIZE32, 0, 2, 32, FALSE, 0, complain_overflow_unsigned,
- bfd_elf_generic_reloc, "R_X86_64_SIZE32", FALSE, 0xffffffff, 0xffffffff,
- FALSE),
- HOWTO(R_X86_64_SIZE64, 0, 4, 64, FALSE, 0, complain_overflow_unsigned,
- bfd_elf_generic_reloc, "R_X86_64_SIZE64", FALSE, MINUS_ONE, MINUS_ONE,
- FALSE),
- HOWTO(R_X86_64_GOTPC32_TLSDESC, 0, 2, 32, TRUE, 0,
+ false, MINUS_ONE, 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),
+ 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),
+ HOWTO(R_X86_64_SIZE32, 0, 2, 32, false, 0, complain_overflow_unsigned,
+ bfd_elf_generic_reloc, "R_X86_64_SIZE32", false, 0xffffffff, 0xffffffff,
+ false),
+ HOWTO(R_X86_64_SIZE64, 0, 4, 64, false, 0, complain_overflow_unsigned,
+ bfd_elf_generic_reloc, "R_X86_64_SIZE64", false, MINUS_ONE, 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),
- HOWTO(R_X86_64_TLSDESC_CALL, 0, 0, 0, FALSE, 0,
+ false, 0xffffffff, 0xffffffff, true),
+ HOWTO(R_X86_64_TLSDESC_CALL, 0, 0, 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,
+ false, 0, 0, false),
+ HOWTO(R_X86_64_TLSDESC, 0, 4, 64, false, 0,
complain_overflow_bitfield, bfd_elf_generic_reloc,
"R_X86_64_TLSDESC",
- FALSE, MINUS_ONE, MINUS_ONE, FALSE),
- HOWTO(R_X86_64_IRELATIVE, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
- bfd_elf_generic_reloc, "R_X86_64_IRELATIVE", FALSE, MINUS_ONE,
- MINUS_ONE, FALSE),
- HOWTO(R_X86_64_RELATIVE64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
- bfd_elf_generic_reloc, "R_X86_64_RELATIVE64", FALSE, MINUS_ONE,
- 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,
- 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,
- 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),
- 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),
+ false, MINUS_ONE, MINUS_ONE, false),
+ HOWTO(R_X86_64_IRELATIVE, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ bfd_elf_generic_reloc, "R_X86_64_IRELATIVE", false, MINUS_ONE,
+ MINUS_ONE, false),
+ HOWTO(R_X86_64_RELATIVE64, 0, 4, 64, false, 0, complain_overflow_bitfield,
+ bfd_elf_generic_reloc, "R_X86_64_RELATIVE64", false, MINUS_ONE,
+ 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,
+ 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,
+ 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),
+ 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),
/* We have a gap in the reloc numbers here.
R_X86_64_standard counts the number up to this point, and
@@ -181,18 +181,18 @@ static reloc_howto_type x86_64_elf_howto_table[] =
#define R_X86_64_vt_offset (R_X86_64_GNU_VTINHERIT - R_X86_64_standard)
/* GNU extension to record C++ vtable hierarchy. */
- HOWTO (R_X86_64_GNU_VTINHERIT, 0, 4, 0, FALSE, 0, complain_overflow_dont,
- NULL, "R_X86_64_GNU_VTINHERIT", FALSE, 0, 0, FALSE),
+ HOWTO (R_X86_64_GNU_VTINHERIT, 0, 4, 0, false, 0, complain_overflow_dont,
+ NULL, "R_X86_64_GNU_VTINHERIT", false, 0, 0, false),
/* GNU extension to record C++ vtable member usage. */
- HOWTO (R_X86_64_GNU_VTENTRY, 0, 4, 0, FALSE, 0, complain_overflow_dont,
- _bfd_elf_rel_vtable_reloc_fn, "R_X86_64_GNU_VTENTRY", FALSE, 0, 0,
- FALSE),
+ HOWTO (R_X86_64_GNU_VTENTRY, 0, 4, 0, false, 0, complain_overflow_dont,
+ _bfd_elf_rel_vtable_reloc_fn, "R_X86_64_GNU_VTENTRY", false, 0, 0,
+ false),
/* 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,
- FALSE)
+ HOWTO(R_X86_64_32, 0, 2, 32, false, 0, complain_overflow_bitfield,
+ bfd_elf_generic_reloc, "R_X86_64_32", false, 0xffffffff, 0xffffffff,
+ false)
};
#define X86_PCREL_TYPE_P(TYPE) \
@@ -333,7 +333,7 @@ elf_x86_64_reloc_name_lookup (bfd *abfd,
/* Given an x86_64 ELF reloc type, fill in an arelent structure. */
-static bfd_boolean
+static bool
elf_x86_64_info_to_howto (bfd *abfd, arelent *cache_ptr,
Elf_Internal_Rela *dst)
{
@@ -342,13 +342,13 @@ elf_x86_64_info_to_howto (bfd *abfd, arelent *cache_ptr,
r_type = ELF32_R_TYPE (dst->r_info);
cache_ptr->howto = elf_x86_64_rtype_to_howto (abfd, r_type);
if (cache_ptr->howto == NULL)
- return FALSE;
+ return false;
BFD_ASSERT (r_type == cache_ptr->howto->type || cache_ptr->howto->type == R_X86_64_NONE);
- return TRUE;
+ return true;
}
/* Support for core dump NOTE sections. */
-static bfd_boolean
+static bool
elf_x86_64_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
{
int offset;
@@ -357,7 +357,7 @@ elf_x86_64_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
switch (note->descsz)
{
default:
- return FALSE;
+ return false;
case 296: /* sizeof(istruct elf_prstatus) on Linux/x32 */
/* pr_cursig */
@@ -393,13 +393,13 @@ elf_x86_64_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
size, note->descpos + offset);
}
-static bfd_boolean
+static bool
elf_x86_64_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
{
switch (note->descsz)
{
default:
- return FALSE;
+ return false;
case 124: /* sizeof(struct elf_prpsinfo) on Linux/x32 */
elf_tdata (abfd)->core->pid
@@ -431,7 +431,7 @@ elf_x86_64_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
command[n - 1] = '\0';
}
- return TRUE;
+ return true;
}
#ifdef CORE_HEADER
@@ -985,26 +985,26 @@ static const struct elf_x86_non_lazy_plt_layout elf_x32_non_lazy_ibt_plt =
};
-static bfd_boolean
+static bool
elf64_x86_64_elf_object_p (bfd *abfd)
{
/* Set the right machine number for an x86-64 elf64 file. */
bfd_default_set_arch_mach (abfd, bfd_arch_i386, bfd_mach_x86_64);
- return TRUE;
+ return true;
}
-static bfd_boolean
+static bool
elf32_x86_64_elf_object_p (bfd *abfd)
{
/* Set the right machine number for an x86-64 elf32 file. */
bfd_default_set_arch_mach (abfd, bfd_arch_i386, bfd_mach_x64_32);
- return TRUE;
+ return true;
}
/* Return TRUE if the TLS access code sequence support transition
from R_TYPE. */
-static bfd_boolean
+static bool
elf_x86_64_check_tls_transition (bfd *abfd,
struct bfd_link_info *info,
asection *sec,
@@ -1017,12 +1017,12 @@ elf_x86_64_check_tls_transition (bfd *abfd,
{
unsigned int val;
unsigned long r_symndx;
- bfd_boolean largepic = FALSE;
+ bool largepic = false;
struct elf_link_hash_entry *h;
bfd_vma offset;
struct elf_x86_link_hash_table *htab;
bfd_byte *call;
- bfd_boolean indirect_call;
+ bool indirect_call;
htab = elf_x86_hash_table (info, X86_64_ELF_DATA);
offset = rel->r_offset;
@@ -1031,7 +1031,7 @@ elf_x86_64_check_tls_transition (bfd *abfd,
case R_X86_64_TLSGD:
case R_X86_64_TLSLD:
if ((rel + 1) >= relend)
- return FALSE;
+ return false;
if (r_type == R_X86_64_TLSGD)
{
@@ -1068,7 +1068,7 @@ elf_x86_64_check_tls_transition (bfd *abfd,
static const unsigned char leaq[] = { 0x66, 0x48, 0x8d, 0x3d };
if ((offset + 12) > sec->size)
- return FALSE;
+ return false;
call = contents + offset + 4;
if (call[0] != 0x66
@@ -1092,20 +1092,20 @@ elf_x86_64_check_tls_transition (bfd *abfd,
|| call[14] != 0xd0
|| !((call[10] == 0x48 && call[12] == 0xd8)
|| (call[10] == 0x4c && call[12] == 0xf8)))
- return FALSE;
- largepic = TRUE;
+ return false;
+ largepic = true;
}
else if (ABI_64_P (abfd))
{
if (offset < 4
|| memcmp (contents + offset - 4, leaq, 4) != 0)
- return FALSE;
+ return false;
}
else
{
if (offset < 3
|| memcmp (contents + offset - 3, leaq + 1, 3) != 0)
- return FALSE;
+ return false;
}
indirect_call = call[2] == 0xff;
}
@@ -1134,10 +1134,10 @@ elf_x86_64_check_tls_transition (bfd *abfd,
static const unsigned char lea[] = { 0x48, 0x8d, 0x3d };
if (offset < 3 || (offset + 9) > sec->size)
- return FALSE;
+ return false;
if (memcmp (contents + offset - 3, lea, 3) != 0)
- return FALSE;
+ return false;
call = contents + offset + 4;
if (!(call[0] == 0xe8
@@ -1152,20 +1152,20 @@ elf_x86_64_check_tls_transition (bfd *abfd,
|| call[14] != 0xd0
|| !((call[10] == 0x48 && call[12] == 0xd8)
|| (call[10] == 0x4c && call[12] == 0xf8)))
- return FALSE;
- largepic = TRUE;
+ return false;
+ largepic = true;
}
indirect_call = call[0] == 0xff;
}
r_symndx = htab->r_sym (rel[1].r_info);
if (r_symndx < symtab_hdr->sh_info)
- return FALSE;
+ return false;
h = sym_hashes[r_symndx - symtab_hdr->sh_info];
if (h == NULL
|| !((struct elf_x86_link_hash_entry *) h)->tls_get_addr)
- return FALSE;
+ return false;
else
{
r_type = (ELF32_R_TYPE (rel[1].r_info)
@@ -1192,21 +1192,21 @@ elf_x86_64_check_tls_transition (bfd *abfd,
{
/* X32 may have 0x44 REX prefix or no REX prefix. */
if (ABI_64_P (abfd))
- return FALSE;
+ return false;
}
}
else
{
/* X32 may not have any REX prefix. */
if (ABI_64_P (abfd))
- return FALSE;
+ return false;
if (offset < 2 || (offset + 3) > sec->size)
- return FALSE;
+ return false;
}
val = bfd_get_8 (abfd, contents + offset - 2);
if (val != 0x8b && val != 0x03)
- return FALSE;
+ return false;
val = bfd_get_8 (abfd, contents + offset - 1);
return (val & 0xc7) == 5;
@@ -1221,15 +1221,15 @@ elf_x86_64_check_tls_transition (bfd *abfd,
going to be rax. */
if (offset < 3 || (offset + 4) > sec->size)
- return FALSE;
+ return false;
val = bfd_get_8 (abfd, contents + offset - 3);
val &= 0xfb;
if (val != 0x48 && (ABI_64_P (abfd) || val != 0x40))
- return FALSE;
+ return false;
if (bfd_get_8 (abfd, contents + offset - 2) != 0x8d)
- return FALSE;
+ return false;
val = bfd_get_8 (abfd, contents + offset - 1);
return (val & 0xc7) == 0x05;
@@ -1251,14 +1251,14 @@ elf_x86_64_check_tls_transition (bfd *abfd,
{
prefix = 1;
if (offset + 3 > sec->size)
- return FALSE;
+ return false;
}
}
/* Make sure that it's a call *x@tlsdesc(%rax). */
return call[prefix] == 0xff && call[1 + prefix] == 0x10;
}
- return FALSE;
+ return false;
default:
abort ();
@@ -1268,7 +1268,7 @@ elf_x86_64_check_tls_transition (bfd *abfd,
/* Return TRUE if the TLS access transition is OK or no transition
will be performed. Update R_TYPE if there is a transition. */
-static bfd_boolean
+static bool
elf_x86_64_tls_transition (struct bfd_link_info *info, bfd *abfd,
asection *sec, bfd_byte *contents,
Elf_Internal_Shdr *symtab_hdr,
@@ -1278,17 +1278,17 @@ elf_x86_64_tls_transition (struct bfd_link_info *info, bfd *abfd,
const Elf_Internal_Rela *relend,
struct elf_link_hash_entry *h,
unsigned long r_symndx,
- bfd_boolean from_relocate_section)
+ bool from_relocate_section)
{
unsigned int from_type = *r_type;
unsigned int to_type = from_type;
- bfd_boolean check = TRUE;
+ bool check = true;
/* Skip TLS transition for functions. */
if (h != NULL
&& (h->type == STT_FUNC
|| h->type == STT_GNU_IFUNC))
- return TRUE;
+ return true;
switch (from_type)
{
@@ -1336,12 +1336,12 @@ elf_x86_64_tls_transition (struct bfd_link_info *info, bfd *abfd,
break;
default:
- return TRUE;
+ return true;
}
/* Return TRUE if there is no transition. */
if (from_type == to_type)
- return TRUE;
+ return true;
/* Check if the transition can be performed. */
if (check
@@ -1356,7 +1356,7 @@ elf_x86_64_tls_transition (struct bfd_link_info *info, bfd *abfd,
to = elf_x86_64_rtype_to_howto (abfd, to_type);
if (from == NULL || to == NULL)
- return FALSE;
+ return false;
if (h)
name = h->root.root.string;
@@ -1383,18 +1383,18 @@ elf_x86_64_tls_transition (struct bfd_link_info *info, bfd *abfd,
" in section `%pA' failed"),
abfd, from->name, to->name, name, (uint64_t) rel->r_offset, sec);
bfd_set_error (bfd_error_bad_value);
- return FALSE;
+ return false;
}
*r_type = to_type;
- return TRUE;
+ return true;
}
/* Rename some of the generic section flags to better document how they
are used here. */
#define check_relocs_failed sec_flg0
-static bfd_boolean
+static bool
elf_x86_64_need_pic (struct bfd_link_info *info,
bfd *input_bfd, asection *sec,
struct elf_link_hash_entry *h,
@@ -1463,7 +1463,7 @@ elf_x86_64_need_pic (struct bfd_link_info *info,
object, pic);
bfd_set_error (bfd_error_bad_value);
sec->check_relocs_failed = 1;
- return FALSE;
+ return false;
}
/* With the local symbol, foo, we convert
@@ -1485,22 +1485,22 @@ elf_x86_64_need_pic (struct bfd_link_info *info,
where binop is one of adc, add, and, cmp, or, sbb, sub, xor
instructions. */
-static bfd_boolean
+static bool
elf_x86_64_convert_load_reloc (bfd *abfd,
bfd_byte *contents,
unsigned int *r_type_p,
Elf_Internal_Rela *irel,
struct elf_link_hash_entry *h,
- bfd_boolean *converted,
+ bool *converted,
struct bfd_link_info *link_info)
{
struct elf_x86_link_hash_table *htab;
- bfd_boolean is_pic;
- bfd_boolean no_overflow;
- bfd_boolean relocx;
- bfd_boolean to_reloc_pc32;
- bfd_boolean abs_symbol;
- bfd_boolean local_ref;
+ bool is_pic;
+ bool no_overflow;
+ bool relocx;
+ bool to_reloc_pc32;
+ bool abs_symbol;
+ bool local_ref;
asection *tsec;
bfd_signed_vma raddend;
unsigned int opcode;
@@ -1511,12 +1511,12 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
bfd_vma abs_relocation;
if (roff < (r_type == R_X86_64_REX_GOTPCRELX ? 3 : 2))
- return TRUE;
+ return true;
raddend = irel->r_addend;
/* Addend for 32-bit PC-relative relocation must be -4. */
if (raddend != -4)
- return TRUE;
+ return true;
htab = elf_x86_hash_table (link_info, X86_64_ELF_DATA);
is_pic = bfd_link_pic (link_info);
@@ -1538,7 +1538,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
for call, jmp or one of adc, add, and, cmp, or, sbb, sub,
test, xor instructions. */
if (!relocx)
- return TRUE;
+ return true;
}
/* We convert only to R_X86_64_PC32:
@@ -1552,7 +1552,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
|| no_overflow
|| is_pic);
- abs_symbol = FALSE;
+ abs_symbol = false;
abs_relocation = 0;
/* Get the symbol referred to by the reloc. */
@@ -1563,13 +1563,13 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
/* Skip relocation against undefined symbols. */
if (isym->st_shndx == SHN_UNDEF)
- return TRUE;
+ return true;
- local_ref = TRUE;
+ local_ref = true;
if (isym->st_shndx == SHN_ABS)
{
tsec = bfd_abs_section_ptr;
- abs_symbol = TRUE;
+ abs_symbol = true;
abs_relocation = isym->st_value;
}
else if (isym->st_shndx == SHN_COMMON)
@@ -1604,20 +1604,20 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
/* Skip for branch instructions since R_X86_64_PC32
may overflow. */
if (no_overflow)
- return TRUE;
+ return true;
}
else if (relocx)
{
/* For non-branch instructions, we can convert to
R_X86_64_32/R_X86_64_32S since we know if there
is a REX byte. */
- to_reloc_pc32 = FALSE;
+ to_reloc_pc32 = false;
}
/* Since we don't know the current PC when PIC is true,
we can't convert to R_X86_64_PC32. */
if (to_reloc_pc32 && is_pic)
- return TRUE;
+ return true;
goto convert;
}
@@ -1647,23 +1647,23 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
{
/* Skip since R_X86_64_32/R_X86_64_32S may overflow. */
if (no_overflow)
- return TRUE;
+ return true;
goto convert;
}
tsec = h->root.u.def.section;
}
else
- return TRUE;
+ return true;
}
/* Don't convert GOTPCREL relocation against large section. */
if (elf_section_data (tsec) != NULL
&& (elf_section_flags (tsec) & SHF_X86_64_LARGE) != 0)
- return TRUE;
+ return true;
/* Skip since R_X86_64_PC32/R_X86_64_32/R_X86_64_32S may overflow. */
if (no_overflow)
- return TRUE;
+ return true;
convert:
if (opcode == 0xff)
@@ -1732,7 +1732,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
if (opcode == 0x8b)
{
if (abs_symbol && local_ref && relocx)
- to_reloc_pc32 = FALSE;
+ to_reloc_pc32 = false;
if (to_reloc_pc32)
{
@@ -1771,7 +1771,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
{
/* R_X86_64_PC32 isn't supported. */
if (to_reloc_pc32)
- return TRUE;
+ return true;
modrm = bfd_get_8 (abfd, contents + roff - 1);
if (opcode == 0x85)
@@ -1800,12 +1800,12 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
if (r_type == R_X86_64_32S)
{
if ((abs_relocation + 0x80000000) > 0xffffffff)
- return TRUE;
+ return true;
}
else
{
if (abs_relocation > 0xffffffff)
- return TRUE;
+ return true;
}
}
@@ -1829,16 +1829,16 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
irel->r_info = htab->r_info (r_symndx,
r_type | R_X86_64_converted_reloc_bit);
- *converted = TRUE;
+ *converted = true;
- return TRUE;
+ return true;
}
/* Look through the relocs for a section during the first phase, and
calculate needed space in the global offset table, procedure
linkage table, and dynamic reloc sections. */
-static bfd_boolean
+static bool
elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
asection *sec,
const Elf_Internal_Rela *relocs)
@@ -1850,16 +1850,16 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
const Elf_Internal_Rela *rel_end;
asection *sreloc;
bfd_byte *contents;
- bfd_boolean converted;
+ bool converted;
if (bfd_link_relocatable (info))
- return TRUE;
+ return true;
htab = elf_x86_hash_table (info, X86_64_ELF_DATA);
if (htab == NULL)
{
sec->check_relocs_failed = 1;
- return FALSE;
+ return false;
}
BFD_ASSERT (is_x86_elf (abfd, htab));
@@ -1870,13 +1870,13 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
else if (!bfd_malloc_and_get_section (abfd, sec, &contents))
{
sec->check_relocs_failed = 1;
- return FALSE;
+ return false;
}
symtab_hdr = &elf_symtab_hdr (abfd);
sym_hashes = elf_sym_hashes (abfd);
- converted = FALSE;
+ converted = false;
sreloc = NULL;
@@ -1889,9 +1889,9 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
struct elf_x86_link_hash_entry *eh;
Elf_Internal_Sym *isym;
const char *name;
- bfd_boolean size_reloc;
- bfd_boolean converted_reloc;
- bfd_boolean no_dynreloc;
+ bool size_reloc;
+ bool converted_reloc;
+ bool no_dynreloc;
r_symndx = htab->r_sym (rel->r_info);
r_type = ELF32_R_TYPE (rel->r_info);
@@ -1916,7 +1916,7 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
if (ELF_ST_TYPE (isym->st_info) == STT_GNU_IFUNC)
{
h = _bfd_elf_x86_get_local_sym_hash (htab, abfd, rel,
- TRUE);
+ true);
if (h == NULL)
goto error_return;
@@ -1980,7 +1980,7 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
h->ref_regular = 1;
}
- converted_reloc = FALSE;
+ converted_reloc = false;
if ((r_type == R_X86_64_GOTPCREL
|| r_type == R_X86_64_GOTPCRELX
|| r_type == R_X86_64_REX_GOTPCRELX)
@@ -1993,22 +1993,22 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
goto error_return;
if (converted_reloc)
- converted = TRUE;
+ converted = true;
}
if (!_bfd_elf_x86_valid_reloc_p (sec, info, htab, rel, h, isym,
symtab_hdr, &no_dynreloc))
- return FALSE;
+ return false;
if (! elf_x86_64_tls_transition (info, abfd, sec, contents,
symtab_hdr, sym_hashes,
&r_type, GOT_UNKNOWN,
- rel, rel_end, h, r_symndx, FALSE))
+ rel, rel_end, h, r_symndx, false))
goto error_return;
/* Check if _GLOBAL_OFFSET_TABLE_ is referenced. */
if (h == htab->elf.hgot)
- htab->got_referenced = TRUE;
+ htab->got_referenced = true;
eh = (struct elf_x86_link_hash_entry *) h;
switch (r_type)
@@ -2178,7 +2178,7 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_X86_64_SIZE32:
case R_X86_64_SIZE64:
- size_reloc = TRUE;
+ size_reloc = true;
goto do_size;
case R_X86_64_32:
@@ -2220,7 +2220,7 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
&& (bfd_link_executable (info)
|| h->type == STT_GNU_IFUNC))
{
- bfd_boolean func_pointer_ref = FALSE;
+ bool func_pointer_ref = false;
if (r_type == R_X86_64_PC32)
{
@@ -2252,7 +2252,7 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
|| (!ABI_64_P (abfd)
&& (r_type == R_X86_64_32
|| r_type == R_X86_64_32S))))
- func_pointer_ref = TRUE;
+ func_pointer_ref = true;
}
if (!func_pointer_ref)
@@ -2274,10 +2274,10 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
}
}
- size_reloc = FALSE;
+ size_reloc = false;
do_size:
if (!no_dynreloc
- && NEED_DYNAMIC_RELOCATION_P (info, TRUE, h, sec, r_type,
+ && NEED_DYNAMIC_RELOCATION_P (info, true, h, sec, r_type,
htab->pointer_r_type))
{
struct elf_dyn_relocs *p;
@@ -2290,7 +2290,7 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
{
sreloc = _bfd_elf_make_dynamic_reloc_section
(sec, htab->elf.dynobj, ABI_64_P (abfd) ? 3 : 2,
- abfd, /*rela?*/ TRUE);
+ abfd, /*rela?*/ true);
if (sreloc == NULL)
goto error_return;
@@ -2381,13 +2381,13 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
if (elf_section_data (sec)->relocs != relocs && converted)
elf_section_data (sec)->relocs = (Elf_Internal_Rela *) relocs;
- return TRUE;
+ return true;
error_return:
if (elf_section_data (sec)->this_hdr.contents != contents)
free (contents);
sec->check_relocs_failed = 1;
- return FALSE;
+ return false;
}
/* Return the relocation value for @tpoff relocation
@@ -2430,20 +2430,20 @@ elf_x86_64_relocate_section (bfd *output_bfd,
Elf_Internal_Rela *wrel;
Elf_Internal_Rela *relend;
unsigned int plt_entry_size;
- bfd_boolean status;
+ bool status;
/* Skip if check_relocs failed. */
if (input_section->check_relocs_failed)
- return FALSE;
+ return false;
htab = elf_x86_hash_table (info, X86_64_ELF_DATA);
if (htab == NULL)
- return FALSE;
+ return false;
if (!is_x86_elf (input_bfd, htab))
{
bfd_set_error (bfd_error_wrong_format);
- return FALSE;
+ return false;
}
plt_entry_size = htab->plt.plt_entry_size;
@@ -2454,7 +2454,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
_bfd_x86_elf_set_tls_module_base (info);
- status = TRUE;
+ status = true;
rel = wrel = relocs;
relend = relocs + input_section->reloc_count;
for (; rel < relend; wrel++, rel++)
@@ -2468,16 +2468,16 @@ elf_x86_64_relocate_section (bfd *output_bfd,
asection *sec;
bfd_vma off, offplt, plt_offset;
bfd_vma relocation;
- bfd_boolean unresolved_reloc;
+ bool unresolved_reloc;
bfd_reloc_status_type r;
int tls_type;
asection *base_got, *resolved_plt;
bfd_vma st_size;
- bfd_boolean resolved_to_zero;
- bfd_boolean relative_reloc;
- bfd_boolean converted_reloc;
- bfd_boolean need_copy_reloc_in_pie;
- bfd_boolean no_copyreloc_p;
+ bool resolved_to_zero;
+ bool relative_reloc;
+ bool converted_reloc;
+ bool need_copy_reloc_in_pie;
+ bool no_copyreloc_p;
r_type = ELF32_R_TYPE (rel->r_info);
if (r_type == (int) R_X86_64_GNU_VTINHERIT
@@ -2503,7 +2503,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
h = NULL;
sym = NULL;
sec = NULL;
- unresolved_reloc = FALSE;
+ unresolved_reloc = false;
if (r_symndx < symtab_hdr->sh_info)
{
sym = local_syms + r_symndx;
@@ -2518,7 +2518,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
&& ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC)
{
h = _bfd_elf_x86_get_local_sym_hash (htab, input_bfd,
- rel, FALSE);
+ rel, false);
if (h == NULL)
abort ();
@@ -2529,8 +2529,8 @@ elf_x86_64_relocate_section (bfd *output_bfd,
}
else
{
- bfd_boolean warned ATTRIBUTE_UNUSED;
- bfd_boolean ignored ATTRIBUTE_UNUSED;
+ bool warned ATTRIBUTE_UNUSED;
+ bool ignored ATTRIBUTE_UNUSED;
RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
r_symndx, symtab_hdr, sym_hashes,
@@ -2724,7 +2724,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
"symbol `%s' isn't supported"), input_bfd,
howto->name, name);
bfd_set_error (bfd_error_bad_value);
- return FALSE;
+ return false;
case R_X86_64_32S:
if (bfd_link_pic (info))
@@ -2750,7 +2750,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
"symbol `%s' has non-zero addend: %" PRId64),
input_bfd, howto->name, name, (int64_t) rel->r_addend);
bfd_set_error (bfd_error_bad_value);
- return FALSE;
+ return false;
}
/* Generate dynamic relcoation only when there is a
@@ -2851,7 +2851,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
if (htab->elf.sgot == NULL)
abort ();
- relative_reloc = FALSE;
+ relative_reloc = false;
if (h != NULL)
{
off = h->got.offset;
@@ -2894,12 +2894,12 @@ elf_x86_64_relocate_section (bfd *output_bfd,
/* If this symbol isn't dynamic in PIC,
generate R_X86_64_RELATIVE here. */
eh->no_finish_dynamic_symbol = 1;
- relative_reloc = TRUE;
+ relative_reloc = true;
}
}
}
else
- unresolved_reloc = FALSE;
+ unresolved_reloc = false;
}
else
{
@@ -2927,7 +2927,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
&& (r_type == R_X86_64_GOTPCREL
|| r_type == R_X86_64_GOTPCRELX
|| r_type == R_X86_64_REX_GOTPCRELX)))
- relative_reloc = TRUE;
+ relative_reloc = true;
}
}
@@ -3006,7 +3006,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
" `%s' can not be used when making a shared object"),
input_bfd, v, h->root.root.string);
bfd_set_error (bfd_error_bad_value);
- return FALSE;
+ return false;
}
else if (!bfd_link_executable (info)
&& !SYMBOL_REFERENCES_LOCAL_P (info, h)
@@ -3022,7 +3022,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
h->type == STT_FUNC ? "function" : "data",
h->root.root.string);
bfd_set_error (bfd_error_bad_value);
- return FALSE;
+ return false;
}
}
@@ -3040,7 +3040,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
/* Use global offset table as symbol value. */
relocation = htab->elf.sgotplt->output_section->vma
+ htab->elf.sgotplt->output_offset;
- unresolved_reloc = FALSE;
+ unresolved_reloc = false;
break;
case R_X86_64_PLTOFF64:
@@ -3072,7 +3072,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
relocation = (resolved_plt->output_section->vma
+ resolved_plt->output_offset
+ plt_offset);
- unresolved_reloc = FALSE;
+ unresolved_reloc = false;
}
relocation -= htab->elf.sgotplt->output_section->vma
@@ -3123,7 +3123,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
relocation = (resolved_plt->output_section->vma
+ resolved_plt->output_offset
+ plt_offset);
- unresolved_reloc = FALSE;
+ unresolved_reloc = false;
break;
case R_X86_64_SIZE32:
@@ -3164,7 +3164,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
&& !(h->root.u.def.section->flags & SEC_CODE))))
|| bfd_link_dll (info)))
{
- bfd_boolean fail = FALSE;
+ bool fail = false;
if (SYMBOL_REFERENCES_LOCAL_P (info, h))
{
/* Symbol is referenced locally. Make sure it is
@@ -3177,7 +3177,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
from non-code sections. */
if (h->type == STT_FUNC
&& (sec->flags & SEC_CODE) != 0)
- fail = TRUE;
+ fail = true;
}
else if (no_copyreloc_p || bfd_link_dll (info))
{
@@ -3229,26 +3229,26 @@ elf_x86_64_relocate_section (bfd *output_bfd,
if (GENERATE_DYNAMIC_RELOCATION_P (info, eh, r_type, sec,
need_copy_reloc_in_pie,
- resolved_to_zero, FALSE))
+ resolved_to_zero, false))
{
Elf_Internal_Rela outrel;
- bfd_boolean skip, relocate;
+ bool skip, relocate;
asection *sreloc;
const char *relative_reloc_name = NULL;
/* When generating a shared object, these relocations
are copied into the output file to be resolved at run
time. */
- skip = FALSE;
- relocate = FALSE;
+ skip = false;
+ relocate = false;
outrel.r_offset =
_bfd_elf_section_offset (output_bfd, info, input_section,
rel->r_offset);
if (outrel.r_offset == (bfd_vma) -1)
- skip = TRUE;
+ skip = true;
else if (outrel.r_offset == (bfd_vma) -2)
- skip = TRUE, relocate = TRUE;
+ skip = true, relocate = true;
outrel.r_offset += (input_section->output_section->vma
+ input_section->output_offset);
@@ -3270,7 +3270,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
|| (r_type == R_X86_64_32
&& htab->params->no_reloc_overflow_check))
{
- relocate = TRUE;
+ relocate = true;
outrel.r_info = htab->r_info (0, R_X86_64_RELATIVE);
outrel.r_addend = relocation + rel->r_addend;
relative_reloc_name = "R_X86_64_RELATIVE";
@@ -3278,7 +3278,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
else if (r_type == R_X86_64_64
&& !ABI_64_P (output_bfd))
{
- relocate = TRUE;
+ relocate = true;
outrel.r_info = htab->r_info (0,
R_X86_64_RELATIVE64);
outrel.r_addend = relocation + rel->r_addend;
@@ -3303,7 +3303,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
howto->name, name, (uint64_t) rel->r_offset,
input_section);
bfd_set_error (bfd_error_bad_value);
- return FALSE;
+ return false;
}
}
else
@@ -3315,7 +3315,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
else if (sec == NULL || sec->owner == NULL)
{
bfd_set_error (bfd_error_bad_value);
- return FALSE;
+ return false;
}
else
{
@@ -3382,8 +3382,8 @@ elf_x86_64_relocate_section (bfd *output_bfd,
input_section, contents,
symtab_hdr, sym_hashes,
&r_type_tls, tls_type, rel,
- relend, h, r_symndx, TRUE))
- return FALSE;
+ relend, h, r_symndx, true))
+ return false;
if (r_type_tls == R_X86_64_TPOFF32)
{
@@ -3438,7 +3438,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
info->callbacks->einfo
(_("%F%P: corrupt input: %pB\n"),
input_bfd);
- return FALSE;
+ return false;
}
memcpy (contents + roff - 3,
"\x64\x48\x8b\x04\x25\0\0\0\0\x48\x8d\x80"
@@ -3636,7 +3636,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
continue;
}
else
- BFD_ASSERT (FALSE);
+ BFD_ASSERT (false);
}
if (htab->elf.sgot == NULL)
@@ -3748,7 +3748,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
else
relocation = htab->elf.sgot->output_section->vma
+ htab->elf.sgot->output_offset + off;
- unresolved_reloc = FALSE;
+ unresolved_reloc = false;
}
else
{
@@ -3901,7 +3901,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
continue;
}
else
- BFD_ASSERT (FALSE);
+ BFD_ASSERT (false);
}
break;
@@ -3910,8 +3910,8 @@ elf_x86_64_relocate_section (bfd *output_bfd,
input_section, contents,
symtab_hdr, sym_hashes,
&r_type, GOT_UNKNOWN, rel,
- relend, h, r_symndx, TRUE))
- return FALSE;
+ relend, h, r_symndx, true))
+ return false;
if (r_type != R_X86_64_TLSLD)
{
@@ -4031,7 +4031,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
}
relocation = htab->elf.sgot->output_section->vma
+ htab->elf.sgot->output_offset + off;
- unresolved_reloc = FALSE;
+ unresolved_reloc = false;
break;
case R_X86_64_DTPOFF32:
@@ -4088,7 +4088,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
(uint64_t) rel->r_offset,
howto->name,
h->root.root.string);
- return FALSE;
+ return false;
}
}
@@ -4110,7 +4110,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
symtab_hdr->sh_link,
sym->st_name);
if (name == NULL)
- return FALSE;
+ return false;
if (*name == '\0')
name = bfd_section_name (sec);
}
@@ -4125,7 +4125,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
(_(" failed to convert GOTPCREL relocation against "
"'%s'; relink with --no-relax\n"),
name);
- status = FALSE;
+ status = false;
continue;
}
(*info->callbacks->reloc_overflow)
@@ -4139,7 +4139,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
(_("%pB(%pA+%#" PRIx64 "): reloc against `%s': error %d"),
input_bfd, input_section,
(uint64_t) rel->r_offset, name, (int) r);
- return FALSE;
+ return false;
}
}
@@ -4173,20 +4173,20 @@ elf_x86_64_relocate_section (bfd *output_bfd,
/* Finish up dynamic symbol handling. We set the contents of various
dynamic sections here. */
-static bfd_boolean
+static bool
elf_x86_64_finish_dynamic_symbol (bfd *output_bfd,
struct bfd_link_info *info,
struct elf_link_hash_entry *h,
Elf_Internal_Sym *sym)
{
struct elf_x86_link_hash_table *htab;
- bfd_boolean use_plt_second;
+ bool use_plt_second;
struct elf_x86_link_hash_entry *eh;
- bfd_boolean local_undefweak;
+ bool local_undefweak;
htab = elf_x86_hash_table (info, X86_64_ELF_DATA);
if (htab == NULL)
- return FALSE;
+ return false;
/* Use the second PLT section only if there is .plt section. */
use_plt_second = htab->elf.splt != NULL && htab->plt_second != NULL;
@@ -4367,7 +4367,7 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd,
{
bfd_vma got_offset, plt_offset;
asection *plt, *got;
- bfd_boolean got_after_plt;
+ bool got_after_plt;
int32_t got_pcrel_offset;
/* Set the entry in the GOT procedure linkage table. */
@@ -4515,14 +4515,14 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd,
+ plt->output_offset
+ plt_offset),
htab->elf.sgot->contents + h->got.offset);
- return TRUE;
+ return true;
}
}
else if (bfd_link_pic (info)
&& SYMBOL_REFERENCES_LOCAL_P (info, h))
{
if (!SYMBOL_DEFINED_NON_SHARED_P (h))
- return FALSE;
+ return false;
BFD_ASSERT((h->got.offset & 1) != 0);
rela.r_info = htab->r_info (0, R_X86_64_RELATIVE);
rela.r_addend = (h->root.u.def.value
@@ -4568,7 +4568,7 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd,
elf_append_rela (output_bfd, s, &rela);
}
- return TRUE;
+ return true;
}
/* Finish up local dynamic symbol handling. We set the contents of
@@ -4590,7 +4590,7 @@ elf_x86_64_finish_local_dynamic_symbol (void **slot, void *inf)
here since undefined weak symbol may not be dynamic and may not be
called for elf_x86_64_finish_dynamic_symbol. */
-static bfd_boolean
+static bool
elf_x86_64_pie_finish_undefweak_symbol (struct bfd_hash_entry *bh,
void *inf)
{
@@ -4599,7 +4599,7 @@ elf_x86_64_pie_finish_undefweak_symbol (struct bfd_hash_entry *bh,
if (h->root.type != bfd_link_hash_undefweak
|| h->dynindx != -1)
- return TRUE;
+ return true;
return elf_x86_64_finish_dynamic_symbol (info->output_bfd,
info, h, NULL);
@@ -4656,7 +4656,7 @@ elf_x86_64_reloc_type_class (const struct bfd_link_info *info,
/* Finish up the dynamic sections. */
-static bfd_boolean
+static bool
elf_x86_64_finish_dynamic_sections (bfd *output_bfd,
struct bfd_link_info *info)
{
@@ -4664,10 +4664,10 @@ elf_x86_64_finish_dynamic_sections (bfd *output_bfd,
htab = _bfd_x86_elf_finish_dynamic_sections (output_bfd, info);
if (htab == NULL)
- return FALSE;
+ return false;
if (! htab->elf.dynamic_sections_created)
- return TRUE;
+ return true;
if (htab->elf.splt && htab->elf.splt->size > 0)
{
@@ -4752,7 +4752,7 @@ elf_x86_64_finish_dynamic_sections (bfd *output_bfd,
elf_x86_64_pie_finish_undefweak_symbol,
info);
- return TRUE;
+ return true;
}
/* Fill PLT/GOT entries and allocate dynamic relocations for local
@@ -4760,7 +4760,7 @@ elf_x86_64_finish_dynamic_sections (bfd *output_bfd,
It has to be done before elf_link_sort_relocs is called so that
dynamic relocations are properly sorted. */
-static bfd_boolean
+static bool
elf_x86_64_output_arch_local_syms
(bfd *output_bfd ATTRIBUTE_UNUSED,
struct bfd_link_info *info,
@@ -4773,14 +4773,14 @@ elf_x86_64_output_arch_local_syms
struct elf_x86_link_hash_table *htab
= elf_x86_hash_table (info, X86_64_ELF_DATA);
if (htab == NULL)
- return FALSE;
+ return false;
/* Fill PLT and GOT entries for local STT_GNU_IFUNC symbols. */
htab_traverse (htab->loc_hash_table,
elf_x86_64_finish_local_dynamic_symbol,
info);
- return TRUE;
+ return true;
}
/* Similar to _bfd_elf_get_synthetic_symtab. Support PLTs with all
@@ -4963,24 +4963,24 @@ elf_x86_64_get_synthetic_symtab (bfd *abfd,
/* Handle an x86-64 specific section when reading an object file. This
is called when elfcode.h finds a section with an unknown type. */
-static bfd_boolean
+static bool
elf_x86_64_section_from_shdr (bfd *abfd, Elf_Internal_Shdr *hdr,
const char *name, int shindex)
{
if (hdr->sh_type != SHT_X86_64_UNWIND)
- return FALSE;
+ return false;
if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex))
- return FALSE;
+ return false;
- return TRUE;
+ return true;
}
/* Hook called by the linker routine which adds symbols from an object
file. We use it to put SHN_X86_64_LCOMMON items in .lbss, instead
of .bss. */
-static bfd_boolean
+static bool
elf_x86_64_add_symbol_hook (bfd *abfd,
struct bfd_link_info *info ATTRIBUTE_UNUSED,
Elf_Internal_Sym *sym,
@@ -5003,31 +5003,31 @@ elf_x86_64_add_symbol_hook (bfd *abfd,
| SEC_IS_COMMON
| SEC_LINKER_CREATED));
if (lcomm == NULL)
- return FALSE;
+ return false;
elf_section_flags (lcomm) |= SHF_X86_64_LARGE;
}
*secp = lcomm;
*valp = sym->st_size;
- return TRUE;
+ return true;
}
- return TRUE;
+ return true;
}
/* Given a BFD section, try to locate the corresponding ELF section
index. */
-static bfd_boolean
+static bool
elf_x86_64_elf_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
asection *sec, int *index_return)
{
if (sec == &_bfd_elf_large_com_section)
{
*index_return = SHN_X86_64_LCOMMON;
- return TRUE;
+ return true;
}
- return FALSE;
+ return false;
}
/* Process a symbol. */
@@ -5049,7 +5049,7 @@ elf_x86_64_symbol_processing (bfd *abfd ATTRIBUTE_UNUSED,
}
}
-static bfd_boolean
+static bool
elf_x86_64_common_definition (Elf_Internal_Sym *sym)
{
return (sym->st_shndx == SHN_COMMON
@@ -5074,12 +5074,12 @@ elf_x86_64_common_section (asection *sec)
return &_bfd_elf_large_com_section;
}
-static bfd_boolean
+static bool
elf_x86_64_merge_symbol (struct elf_link_hash_entry *h,
const Elf_Internal_Sym *sym,
asection **psec,
- bfd_boolean newdef,
- bfd_boolean olddef,
+ bool newdef,
+ bool olddef,
bfd *oldbfd,
const asection *oldsec)
{
@@ -5104,7 +5104,7 @@ elf_x86_64_merge_symbol (struct elf_link_hash_entry *h,
*psec = bfd_com_section_ptr;
}
- return TRUE;
+ return true;
}
static int
@@ -5131,7 +5131,7 @@ elf_x86_64_additional_program_headers (bfd *abfd,
/* Return TRUE iff relocations for INPUT are compatible with OUTPUT. */
-static bfd_boolean
+static bool
elf_x86_64_relocs_compatible (const bfd_target *input,
const bfd_target *output)
{
@@ -5355,7 +5355,7 @@ elf_x86_64_special_sections[]=
#undef elf_backend_strtab_flags
#define elf_backend_strtab_flags SHF_STRINGS
-static bfd_boolean
+static bool
elf64_x86_64_copy_solaris_special_section_fields (const bfd *ibfd ATTRIBUTE_UNUSED,
bfd *obfd ATTRIBUTE_UNUSED,
const Elf_Internal_Shdr *isection ATTRIBUTE_UNUSED,
@@ -5363,7 +5363,7 @@ elf64_x86_64_copy_solaris_special_section_fields (const bfd *ibfd ATTRIBUTE_UNUS
{
/* PR 19938: FIXME: Need to add code for setting the sh_info
and sh_link fields of Solaris specific section types. */
- return FALSE;
+ return false;
}
#undef elf_backend_copy_special_section_fields
@@ -5381,12 +5381,12 @@ elf64_x86_64_copy_solaris_special_section_fields (const bfd *ibfd ATTRIBUTE_UNUS
/* Intel L1OM support. */
-static bfd_boolean
+static bool
elf64_l1om_elf_object_p (bfd *abfd)
{
/* Set the right machine number for an L1OM elf64 file. */
bfd_default_set_arch_mach (abfd, bfd_arch_l1om, bfd_mach_l1om);
- return TRUE;
+ return true;
}
#undef TARGET_LITTLE_SYM
@@ -5441,12 +5441,12 @@ elf64_l1om_elf_object_p (bfd *abfd)
/* Intel K1OM support. */
-static bfd_boolean
+static bool
elf64_k1om_elf_object_p (bfd *abfd)
{
/* Set the right machine number for an K1OM elf64 file. */
bfd_default_set_arch_mach (abfd, bfd_arch_k1om, bfd_mach_k1om);
- return TRUE;
+ return true;
}
#undef TARGET_LITTLE_SYM