diff options
Diffstat (limited to 'bfd/elf64-x86-64.c')
-rw-r--r-- | bfd/elf64-x86-64.c | 632 |
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 |