diff options
Diffstat (limited to 'bfd/elf64-x86-64.c')
-rw-r--r-- | bfd/elf64-x86-64.c | 362 |
1 files changed, 181 insertions, 181 deletions
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index cd98e82..a3c36ff 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -34,83 +34,83 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ special_function, name, partial_inplace, src_mask, dst_pack, pcrel_offset. */ static reloc_howto_type x86_64_elf_howto_table[] = { - HOWTO(R_X86_64_NONE, 0, 0, 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_signed, - 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_bitfield, - 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_NONE, 0, 0, 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_signed, + 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_bitfield, + 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), /* 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) }; /* Map BFD relocs to the x86_64 elf relocs. */ @@ -154,57 +154,57 @@ static reloc_howto_type *elf64_x86_64_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); static void elf64_x86_64_info_to_howto PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); -static boolean elf64_x86_64_grok_prstatus +static bfd_boolean elf64_x86_64_grok_prstatus PARAMS ((bfd *, Elf_Internal_Note *)); -static boolean elf64_x86_64_grok_psinfo +static bfd_boolean elf64_x86_64_grok_psinfo PARAMS ((bfd *, Elf_Internal_Note *)); static struct bfd_link_hash_table *elf64_x86_64_link_hash_table_create PARAMS ((bfd *)); static int elf64_x86_64_tls_transition PARAMS ((struct bfd_link_info *, int, int)); -static boolean elf64_x86_64_mkobject +static bfd_boolean elf64_x86_64_mkobject PARAMS((bfd *)); -static boolean elf64_x86_64_elf_object_p PARAMS ((bfd *abfd)); -static boolean create_got_section +static bfd_boolean elf64_x86_64_elf_object_p PARAMS ((bfd *abfd)); +static bfd_boolean create_got_section PARAMS((bfd *, struct bfd_link_info *)); -static boolean elf64_x86_64_create_dynamic_sections +static bfd_boolean elf64_x86_64_create_dynamic_sections PARAMS((bfd *, struct bfd_link_info *)); static void elf64_x86_64_copy_indirect_symbol PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, struct elf_link_hash_entry *)); -static boolean elf64_x86_64_check_relocs +static bfd_boolean elf64_x86_64_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *sec, const Elf_Internal_Rela *)); static asection *elf64_x86_64_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf64_x86_64_gc_sweep_hook +static bfd_boolean elf64_x86_64_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static struct bfd_hash_entry *link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static boolean elf64_x86_64_adjust_dynamic_symbol +static bfd_boolean elf64_x86_64_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean allocate_dynrelocs +static bfd_boolean allocate_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean readonly_dynrelocs +static bfd_boolean readonly_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf64_x86_64_size_dynamic_sections +static bfd_boolean elf64_x86_64_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static bfd_vma dtpoff_base PARAMS ((struct bfd_link_info *)); static bfd_vma tpoff PARAMS ((struct bfd_link_info *, bfd_vma)); -static boolean elf64_x86_64_relocate_section +static bfd_boolean elf64_x86_64_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean elf64_x86_64_finish_dynamic_symbol +static bfd_boolean elf64_x86_64_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *sym)); -static boolean elf64_x86_64_finish_dynamic_sections +static bfd_boolean elf64_x86_64_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static enum elf_reloc_type_class elf64_x86_64_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); @@ -251,7 +251,7 @@ elf64_x86_64_info_to_howto (abfd, cache_ptr, dst) } /* Support for core dump NOTE sections. */ -static boolean +static bfd_boolean elf64_x86_64_grok_prstatus (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -262,7 +262,7 @@ elf64_x86_64_grok_prstatus (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 336: /* sizeof(istruct elf_prstatus) on Linux/x86_64 */ /* pr_cursig */ @@ -285,7 +285,7 @@ elf64_x86_64_grok_prstatus (abfd, note) raw_size, note->descpos + offset); } -static boolean +static bfd_boolean elf64_x86_64_grok_psinfo (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -293,7 +293,7 @@ elf64_x86_64_grok_psinfo (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 136: /* sizeof(struct elf_prpsinfo) on Linux/x86_64 */ elf_tdata (abfd)->core_program @@ -314,7 +314,7 @@ elf64_x86_64_grok_psinfo (abfd, note) command[n - 1] = '\0'; } - return true; + return TRUE; } /* Functions for the x86-64 ELF linker. */ @@ -505,7 +505,7 @@ elf64_x86_64_link_hash_table_create (abfd) /* Create .got, .gotplt, and .rela.got sections in DYNOBJ, and set up shortcuts to them in our hash table. */ -static boolean +static bfd_boolean create_got_section (dynobj, info) bfd *dynobj; struct bfd_link_info *info; @@ -513,7 +513,7 @@ create_got_section (dynobj, info) struct elf64_x86_64_link_hash_table *htab; if (! _bfd_elf_create_got_section (dynobj, info)) - return false; + return FALSE; htab = elf64_x86_64_hash_table (info); htab->sgot = bfd_get_section_by_name (dynobj, ".got"); @@ -528,15 +528,15 @@ create_got_section (dynobj, info) | SEC_IN_MEMORY | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, htab->srelgot, 3)) - return false; - return true; + return FALSE; + return TRUE; } /* Create .plt, .rela.plt, .got, .got.plt, .rela.got, .dynbss, and .rela.bss sections in DYNOBJ, and set up shortcuts to them in our hash table. */ -static boolean +static bfd_boolean elf64_x86_64_create_dynamic_sections (dynobj, info) bfd *dynobj; struct bfd_link_info *info; @@ -545,10 +545,10 @@ elf64_x86_64_create_dynamic_sections (dynobj, info) htab = elf64_x86_64_hash_table (info); if (!htab->sgot && !create_got_section (dynobj, info)) - return false; + return FALSE; if (!_bfd_elf_create_dynamic_sections (dynobj, info)) - return false; + return FALSE; htab->splt = bfd_get_section_by_name (dynobj, ".plt"); htab->srelplt = bfd_get_section_by_name (dynobj, ".rela.plt"); @@ -560,7 +560,7 @@ elf64_x86_64_create_dynamic_sections (dynobj, info) || (!info->shared && !htab->srelbss)) abort (); - return true; + return TRUE; } /* Copy the extra info we tack onto an elf_link_hash_entry. */ @@ -619,18 +619,18 @@ elf64_x86_64_copy_indirect_symbol (bed, dir, ind) _bfd_elf_link_hash_copy_indirect (bed, dir, ind); } -static boolean +static bfd_boolean elf64_x86_64_mkobject (abfd) bfd *abfd; { bfd_size_type amt = sizeof (struct elf64_x86_64_obj_tdata); abfd->tdata.any = bfd_zalloc (abfd, amt); if (abfd->tdata.any == NULL) - return false; - return true; + return FALSE; + return TRUE; } -static boolean +static bfd_boolean elf64_x86_64_elf_object_p (abfd) bfd *abfd; { @@ -639,12 +639,12 @@ elf64_x86_64_elf_object_p (abfd) bfd_size_type amt = sizeof (struct elf64_x86_64_obj_tdata); new_tdata = bfd_zalloc (abfd, amt); if (new_tdata == NULL) - return false; + return FALSE; new_tdata->root = *abfd->tdata.elf_obj_data; abfd->tdata.any = new_tdata; /* 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 int @@ -674,7 +674,7 @@ elf64_x86_64_tls_transition (info, r_type, is_local) calculate needed space in the global offset table, procedure linkage table, and dynamic reloc sections. */ -static boolean +static bfd_boolean elf64_x86_64_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -689,7 +689,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs) asection *sreloc; if (info->relocateable) - return true; + return TRUE; htab = elf64_x86_64_hash_table (info); symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -712,7 +712,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs) (*_bfd_error_handler) (_("%s: bad symbol index: %d"), bfd_archive_filename (abfd), r_symndx); - return false; + return FALSE; } if (r_symndx < symtab_hdr->sh_info) @@ -735,7 +735,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs) bfd_archive_filename (abfd), x86_64_elf_howto_table[r_type].name); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } break; @@ -778,7 +778,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs) local_got_refcounts = ((bfd_signed_vma *) bfd_zalloc (abfd, size)); if (local_got_refcounts == NULL) - return false; + return FALSE; elf_local_got_refcounts (abfd) = local_got_refcounts; elf64_x86_64_local_got_tls_type (abfd) = (char *) (local_got_refcounts + symtab_hdr->sh_info); @@ -801,7 +801,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs) (_("%s: %s' accessed both as normal and thread local symbol"), bfd_archive_filename (abfd), h ? h->root.root.string : "<local>"); - return false; + return FALSE; } } @@ -822,7 +822,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs) if (htab->elf.dynobj == NULL) htab->elf.dynobj = abfd; if (!create_got_section (htab->elf.dynobj, info)) - return false; + return FALSE; } break; @@ -860,7 +860,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs) bfd_archive_filename (abfd), x86_64_elf_howto_table[r_type].name); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Fall through. */ @@ -937,7 +937,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs) elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; if (strncmp (name, ".rela", 5) != 0 || strcmp (bfd_get_section_name (abfd, sec), @@ -966,7 +966,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs) if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) || ! bfd_set_section_alignment (dynobj, sreloc, 3)) - return false; + return FALSE; } elf_section_data (sec)->sreloc = sreloc; } @@ -987,7 +987,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs) s = bfd_section_from_r_symndx (abfd, &htab->sym_sec, sec, r_symndx); if (s == NULL) - return false; + return FALSE; head = ((struct elf64_x86_64_dyn_relocs **) &elf_section_data (s)->local_dynrel); @@ -1000,7 +1000,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs) p = ((struct elf64_x86_64_dyn_relocs *) bfd_alloc (htab->elf.dynobj, amt)); if (p == NULL) - return false; + return FALSE; p->next = *head; *head = p; p->sec = sec; @@ -1020,14 +1020,14 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs) Reconstruct it for later use during GC. */ case R_X86_64_GNU_VTINHERIT: if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_X86_64_GNU_VTENTRY: if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; default: @@ -1035,7 +1035,7 @@ elf64_x86_64_check_relocs (abfd, info, sec, relocs) } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -1080,7 +1080,7 @@ elf64_x86_64_gc_mark_hook (sec, info, rel, h, sym) /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean elf64_x86_64_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -1183,7 +1183,7 @@ elf64_x86_64_gc_sweep_hook (abfd, info, sec, relocs) break; } - return true; + return TRUE; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -1192,7 +1192,7 @@ elf64_x86_64_gc_sweep_hook (abfd, info, sec, relocs) change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean elf64_x86_64_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -1225,7 +1225,7 @@ elf64_x86_64_adjust_dynamic_symbol (info, h) h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; } - return true; + return TRUE; } else /* It's possible that we incorrectly decided a .plt reloc was @@ -1244,7 +1244,7 @@ elf64_x86_64_adjust_dynamic_symbol (info, h) || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -1255,18 +1255,18 @@ elf64_x86_64_adjust_dynamic_symbol (info, h) For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* If there are no references to this symbol that do not use the GOT, we don't need to generate a copy reloc. */ if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0) - return true; + return TRUE; /* If -z nocopyreloc was given, we won't generate them either. */ if (info->nocopyreloc) { h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; - return true; + return TRUE; } eh = (struct elf64_x86_64_link_hash_entry *) h; @@ -1282,7 +1282,7 @@ elf64_x86_64_adjust_dynamic_symbol (info, h) if (p == NULL) { h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; - return true; + return TRUE; } /* We must allocate the symbol in our .dynbss section, which will @@ -1321,7 +1321,7 @@ elf64_x86_64_adjust_dynamic_symbol (info, h) if (power_of_two > bfd_get_section_alignment (htab->elf.dynobj, s)) { if (! bfd_set_section_alignment (htab->elf.dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -1331,7 +1331,7 @@ elf64_x86_64_adjust_dynamic_symbol (info, h) /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* This is the condition under which elf64_x86_64_finish_dynamic_symbol @@ -1348,7 +1348,7 @@ elf64_x86_64_adjust_dynamic_symbol (info, h) /* Allocate space in .plt, .got and associated reloc sections for dynamic relocs. */ -static boolean +static bfd_boolean allocate_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -1359,7 +1359,7 @@ allocate_dynrelocs (h, inf) struct elf64_x86_64_dyn_relocs *p; if (h->root.type == bfd_link_hash_indirect) - return true; + return TRUE; if (h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; @@ -1376,7 +1376,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h)) @@ -1434,7 +1434,7 @@ allocate_dynrelocs (h, inf) else if (h->got.refcount > 0) { asection *s; - boolean dyn; + bfd_boolean dyn; int tls_type = elf64_x86_64_hash_entry (h)->tls_type; /* Make sure this symbol is output as a dynamic symbol. @@ -1443,7 +1443,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = htab->sgot; @@ -1469,7 +1469,7 @@ allocate_dynrelocs (h, inf) eh = (struct elf64_x86_64_link_hash_entry *) h; if (eh->dyn_relocs == NULL) - return true; + return TRUE; /* In the shared -Bsymbolic case, discard space allocated for dynamic pc-relative relocs against symbols which turn out to be @@ -1515,7 +1515,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } /* If that succeeded, we know we'll be keeping all the @@ -1536,12 +1536,12 @@ allocate_dynrelocs (h, inf) sreloc->_raw_size += p->count * sizeof (Elf64_External_Rela); } - return true; + return TRUE; } /* Find any dynamic relocs that apply to read-only sections. */ -static boolean +static bfd_boolean readonly_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -1564,15 +1564,15 @@ readonly_dynrelocs (h, inf) info->flags |= DF_TEXTREL; /* Not an error, just cut short the traversal. */ - return false; + return FALSE; } } - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean elf64_x86_64_size_dynamic_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -1580,7 +1580,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info) struct elf64_x86_64_link_hash_table *htab; bfd *dynobj; asection *s; - boolean relocs; + bfd_boolean relocs; bfd *ibfd; htab = elf64_x86_64_hash_table (info); @@ -1688,7 +1688,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info) /* We now have determined the sizes of the various dynamic sections. Allocate memory for them. */ - relocs = false; + relocs = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { if ((s->flags & SEC_LINKER_CREATED) == 0) @@ -1704,7 +1704,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info) else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0) { if (s->_raw_size != 0 && s != htab->srelplt) - relocs = true; + relocs = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -1739,7 +1739,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info) of garbage. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; } if (htab->elf.dynamic_sections_created) @@ -1755,7 +1755,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info) if (! info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (htab->splt->_raw_size != 0) @@ -1764,7 +1764,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info) || !add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) @@ -1772,7 +1772,7 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info) if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela))) - return false; + return FALSE; /* If any dynamic relocs apply to a read-only section, then we need a DT_TEXTREL entry. */ @@ -1783,13 +1783,13 @@ elf64_x86_64_size_dynamic_sections (output_bfd, info) if ((info->flags & DF_TEXTREL) != 0) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; } } } #undef add_dynamic_entry - return true; + return TRUE; } /* Return the base VMA address which should be subtracted from real addresses @@ -1826,7 +1826,7 @@ tpoff (info, address) /* Relocate an x86_64 ELF section. */ -static boolean +static bfd_boolean elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -1846,7 +1846,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; htab = elf64_x86_64_hash_table (info); symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -1865,7 +1865,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, asection *sec; bfd_vma off; bfd_vma relocation; - boolean unresolved_reloc; + bfd_boolean unresolved_reloc; bfd_reloc_status_type r; int tls_type; @@ -1877,7 +1877,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, if (r_type >= R_X86_64_max) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } howto = x86_64_elf_howto_table + r_type; @@ -1885,7 +1885,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, h = NULL; sym = NULL; sec = NULL; - unresolved_reloc = false; + unresolved_reloc = FALSE; if (r_symndx < symtab_hdr->sh_info) { sym = local_syms + r_symndx; @@ -1910,7 +1910,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, relocation value for this symbol. output_section is typically NULL for symbols satisfied by a shared library. */ - unresolved_reloc = true; + unresolved_reloc = TRUE; relocation = 0; } else @@ -1932,7 +1932,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, input_section, rel->r_offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other))))) - return false; + return FALSE; relocation = 0; } } @@ -1950,7 +1950,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, if (h != NULL) { - boolean dyn; + bfd_boolean dyn; off = h->got.offset; dyn = htab->elf.dynamic_sections_created; @@ -1983,7 +1983,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, } } else - unresolved_reloc = false; + unresolved_reloc = FALSE; } else { @@ -2058,7 +2058,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, relocation = (htab->splt->output_section->vma + htab->splt->output_offset + h->plt.offset); - unresolved_reloc = false; + unresolved_reloc = FALSE; break; case R_X86_64_PC8: @@ -2100,23 +2100,23 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, { Elf_Internal_Rela outrel; bfd_byte *loc; - boolean skip, relocate; + bfd_boolean skip, relocate; asection *sreloc; /* 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); @@ -2144,7 +2144,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, /* This symbol is local, or marked to become local. */ if (r_type == R_X86_64_64) { - relocate = true; + relocate = TRUE; outrel.r_info = ELF64_R_INFO (0, R_X86_64_RELATIVE); outrel.r_addend = relocation + rel->r_addend; } @@ -2166,7 +2166,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, else if (sec == NULL || sec->owner == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } else { @@ -2392,7 +2392,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, { relocation = htab->sgot->output_section->vma + htab->sgot->output_offset + off; - unresolved_reloc = false; + unresolved_reloc = FALSE; } else { @@ -2493,7 +2493,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, } relocation = htab->sgot->output_section->vma + htab->sgot->output_offset + off; - unresolved_reloc = false; + unresolved_reloc = FALSE; break; case R_X86_64_DTPOFF32: @@ -2541,7 +2541,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, symtab_hdr->sh_link, sym->st_name); if (name == NULL) - return false; + return FALSE; if (*name == '\0') name = bfd_section_name (input_bfd, sec); } @@ -2552,7 +2552,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; } else { @@ -2561,18 +2561,18 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, bfd_archive_filename (input_bfd), bfd_get_section_name (input_bfd, input_section), (long) rel->r_offset, name, (int) r); - return false; + return FALSE; } } } - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean elf64_x86_64_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -2738,7 +2738,7 @@ elf64_x86_64_finish_dynamic_symbol (output_bfd, info, h, sym) || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Used to decide how to sort relocs in an optimal manner for the @@ -2763,7 +2763,7 @@ elf64_x86_64_reloc_type_class (rela) /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean elf64_x86_64_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -2889,7 +2889,7 @@ elf64_x86_64_finish_dynamic_sections (output_bfd, info) GOT_ENTRY_SIZE; } - return true; + return TRUE; } |