]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - bfd/elf-bfd.h
Use bool in bfd
[thirdparty/binutils-gdb.git] / bfd / elf-bfd.h
index dec6925fd4d94d625c3c31dd63286bc45c0b1aa8..101c2fdf50d040eb95db841254e0b5794a8e541e 100644 (file)
@@ -102,7 +102,7 @@ struct elf_link_virtual_table_entry
        and track a size while the symbol is still undefined.  It is indexed
        via offset/sizeof(target_void_pointer).  */
     size_t size;
-    bfd_boolean *used;
+    bool *used;
 
     /* Virtual table derivation info.  */
     struct elf_link_hash_entry *parent;
@@ -457,7 +457,7 @@ struct dwarf_eh_frame_hdr_info
   /* TRUE if .eh_frame_hdr should contain the sorted search table.
      We build it if we successfully read all .eh_frame input sections
      and recognize them.  */
-  bfd_boolean table;
+  bool table;
   struct eh_frame_array_ent *array;
 };
 
@@ -472,7 +472,7 @@ struct eh_frame_hdr_info
 {
   asection *hdr_sec;
   unsigned int array_count;
-  bfd_boolean frame_hdr_is_compact;
+  bool frame_hdr_is_compact;
   union
     {
       struct dwarf_eh_frame_hdr_info dwarf;
@@ -572,23 +572,23 @@ struct elf_link_hash_table
 
   /* Whether we have created the special dynamic sections required
      when linking against or generating a shared object.  */
-  bfd_boolean dynamic_sections_created;
+  bool dynamic_sections_created;
 
   /* Whether dynamic relocations are present.  */
-  bfd_boolean dynamic_relocs;
+  bool dynamic_relocs;
 
   /* True if this target has relocatable executables, so needs dynamic
      section symbols.  */
-  bfd_boolean is_relocatable_executable;
+  bool is_relocatable_executable;
 
   /* TRUE if there are IFUNC resolvers.  */
-  bfd_boolean ifunc_resolvers;
+  bool ifunc_resolvers;
 
   /* TRUE if DT_PLTGOT is a required dynamic tag.  */
-  bfd_boolean dt_pltgot_required;
+  bool dt_pltgot_required;
 
   /* TRUE if DT_JMPREL is a required dynamic tag.  */
-  bfd_boolean dt_jmprel_required;
+  bool dt_jmprel_required;
 
   /* The BFD used to hold special sections created by the linker.
      This will be the first BFD found which requires these sections to
@@ -719,7 +719,7 @@ struct elf_link_hash_table
 #define elf_link_hash_traverse(table, func, info)                      \
   (bfd_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (bfd_boolean (*) (struct bfd_link_hash_entry *, void *)) (func),   \
+    (bool (*) (struct bfd_link_hash_entry *, void *)) (func),          \
     (info)))
 
 /* Get the ELF linker hash table from a link_info structure.  */
@@ -752,20 +752,19 @@ struct elf_size_info {
   unsigned char elfclass, ev_current;
   int (*write_out_phdrs)
     (bfd *, const Elf_Internal_Phdr *, unsigned int);
-  bfd_boolean
-    (*write_shdrs_and_ehdr) (bfd *);
-  bfd_boolean (*checksum_contents)
+  bool (*write_shdrs_and_ehdr) (bfd *);
+  bool (*checksum_contents)
     (bfd * , void (*) (const void *, size_t, void *), void *);
   void (*write_relocs)
     (bfd *, asection *, void *);
-  bfd_boolean (*swap_symbol_in)
+  bool (*swap_symbol_in)
     (bfd *, const void *, const void *, Elf_Internal_Sym *);
   void (*swap_symbol_out)
     (bfd *, const Elf_Internal_Sym *, void *, void *);
-  bfd_boolean (*slurp_reloc_table)
-    (bfd *, asection *, asymbol **, bfd_boolean);
+  bool (*slurp_reloc_table)
+    (bfd *, asection *, asymbol **, bool);
   long (*slurp_symbol_table)
-    (bfd *, asymbol **, bfd_boolean);
+    (bfd *, asymbol **, bool);
   void (*swap_dyn_in)
     (bfd *, const void *, Elf_Internal_Dyn *);
   void (*swap_dyn_out)
@@ -817,7 +816,7 @@ struct elf_reloc_cookie
   size_t extsymoff;
   struct elf_link_hash_entry **sym_hashes;
   int r_sym_shift;
-  bfd_boolean bad_symtab;
+  bool bad_symtab;
 };
 
 /* The level of IRIX compatibility we're striving for.  */
@@ -930,12 +929,12 @@ struct elf_backend_data
 
   /* A function to translate an ELF RELA relocation to a BFD arelent
      structure.  Returns TRUE upon success, FALSE otherwise.  */
-  bfd_boolean (*elf_info_to_howto)
+  bool (*elf_info_to_howto)
     (bfd *, arelent *, Elf_Internal_Rela *);
 
   /* A function to translate an ELF REL relocation to a BFD arelent
      structure.  Returns TRUE upon success, FALSE otherwise.  */
-  bfd_boolean (*elf_info_to_howto_rel)
+  bool (*elf_info_to_howto_rel)
     (bfd *, arelent *, Elf_Internal_Rela *);
 
   /* A function to determine whether a symbol is global when
@@ -943,7 +942,7 @@ struct elf_backend_data
      This should be NULL for most targets, in which case the correct
      thing will be done.  MIPS ELF, at least on the Irix 5, has
      special requirements.  */
-  bfd_boolean (*elf_backend_sym_is_global)
+  bool (*elf_backend_sym_is_global)
     (bfd *, asymbol *);
 
   /* The remaining functions are hooks which are called only if they
@@ -955,7 +954,7 @@ struct elf_backend_data
      this is called elf_elfheader is set, but anything else should be
      used with caution.  If this returns FALSE, the check_format
      routine will return a bfd_error_wrong_format error.  */
-  bfd_boolean (*elf_backend_object_p)
+  bool (*elf_backend_object_p)
     (bfd *);
 
   /* A function to do additional symbol processing when reading the
@@ -966,7 +965,7 @@ struct elf_backend_data
 
   /* A function to do additional symbol processing after reading the
      entire ELF symbol table.  */
-  bfd_boolean (*elf_backend_symbol_table_processing)
+  bool (*elf_backend_symbol_table_processing)
     (bfd *, elf_symbol_type *, unsigned int);
 
   /* A function to set the type of the info field.  Processor-specific
@@ -981,24 +980,24 @@ struct elf_backend_data
 
   /* Return true if local section symbols should have a non-null st_name.
      NULL implies false.  */
-  bfd_boolean (*elf_backend_name_local_section_symbols)
+  bool (*elf_backend_name_local_section_symbols)
     (bfd *);
 
   /* A function to do additional processing on the ELF section header
      just before writing it out.  This is used to set the flags and
      type fields for some sections, or to actually write out data for
      unusual sections.  */
-  bfd_boolean (*elf_backend_section_processing)
+  bool (*elf_backend_section_processing)
     (bfd *, Elf_Internal_Shdr *);
 
   /* A function to handle unusual section types when creating BFD
      sections from ELF sections.  */
-  bfd_boolean (*elf_backend_section_from_shdr)
+  bool (*elf_backend_section_from_shdr)
     (bfd *, Elf_Internal_Shdr *, const char *, int);
 
   /* A function to convert machine dependent ELF section header flags to
      BFD internal section header flags.  */
-  bfd_boolean (*elf_backend_section_flags)
+  bool (*elf_backend_section_flags)
     (const Elf_Internal_Shdr *);
 
   /* A function that returns a struct containing ELF section flags and
@@ -1008,20 +1007,20 @@ struct elf_backend_data
 
   /* A function to handle unusual program segment types when creating BFD
      sections from ELF program segments.  */
-  bfd_boolean (*elf_backend_section_from_phdr)
+  bool (*elf_backend_section_from_phdr)
     (bfd *, Elf_Internal_Phdr *, int, const char *);
 
   /* A function to set up the ELF section header for a BFD section in
      preparation for writing it out.  This is where the flags and type
      fields are set for unusual sections.  */
-  bfd_boolean (*elf_backend_fake_sections)
+  bool (*elf_backend_fake_sections)
     (bfd *, Elf_Internal_Shdr *, asection *);
 
   /* A function to get the ELF section index for a BFD section.  If
      this returns TRUE, the section was found.  If it is a normal ELF
      section, *RETVAL should be left unchanged.  If it is not a normal
      ELF section *RETVAL should be set to the SHN_xxxx index.  */
-  bfd_boolean (*elf_backend_section_from_bfd_section)
+  bool (*elf_backend_section_from_bfd_section)
     (bfd *, asection *, int *retval);
 
   /* If this field is not NULL, it is called by the add_symbols phase
@@ -1032,7 +1031,7 @@ struct elf_backend_data
      handling all processor dependent symbol bindings and section
      indices, and must set at least *FLAGS and *SEC for each processor
      dependent case; failure to do so will cause a link error.  */
-  bfd_boolean (*elf_add_symbol_hook)
+  bool (*elf_add_symbol_hook)
     (bfd *abfd, struct bfd_link_info *info, Elf_Internal_Sym *,
      const char **name, flagword *flags, asection **sec, bfd_vma *value);
 
@@ -1052,17 +1051,17 @@ struct elf_backend_data
      created, and this function may modify the section flags if
      desired.  This function will normally create the .got and .plt
      sections, but different backends have different requirements.  */
-  bfd_boolean (*elf_backend_create_dynamic_sections)
+  bool (*elf_backend_create_dynamic_sections)
     (bfd *abfd, struct bfd_link_info *info);
 
   /* When creating a shared library, determine whether to omit the
      dynamic symbol for the section.  */
-  bfd_boolean (*elf_backend_omit_section_dynsym)
+  bool (*elf_backend_omit_section_dynsym)
     (bfd *output_bfd, struct bfd_link_info *info, asection *osec);
 
   /* Return TRUE if relocations of targets are compatible to the extent
      that CHECK_RELOCS will properly process them.  PR 4424.  */
-  bfd_boolean (*relocs_compatible) (const bfd_target *, const bfd_target *);
+  bool (*relocs_compatible) (const bfd_target *, const bfd_target *);
 
   /* The CHECK_RELOCS function is called by the add_symbols phase of
      the ELF backend linker.  It is called once for each section with
@@ -1074,7 +1073,7 @@ struct elf_backend_data
      relocs are always passed as Rela structures; if the section
      actually uses Rel structures, the r_addend field will always be
      zero.  */
-  bfd_boolean (*check_relocs)
+  bool (*check_relocs)
     (bfd *abfd, struct bfd_link_info *info, asection *o,
      const Elf_Internal_Rela *relocs);
 
@@ -1082,14 +1081,14 @@ struct elf_backend_data
      the add_symbols phase of the ELF backend linker.  The function
      must inspect the bfd and create any additional symbols according
      to any custom directives in the bfd.  */
-  bfd_boolean (*check_directives)
+  bool (*check_directives)
     (bfd *abfd, struct bfd_link_info *info);
 
   /* The NOTICE_AS_NEEDED function is called as the linker is about to
      handle an as-needed lib (ACT = notice_as_needed), and after the
      linker has decided to keep the lib (ACT = notice_needed) or when
      the lib is not needed (ACT = notice_not_needed).  */
-  bfd_boolean (*notice_as_needed)
+  bool (*notice_as_needed)
     (bfd *abfd, struct bfd_link_info *info, enum notice_asneeded_action act);
 
   /* The ADJUST_DYNAMIC_SYMBOL function is called by the ELF backend
@@ -1104,14 +1103,14 @@ struct elf_backend_data
      the link can deal with.  This will normally involve adding an
      entry to the .plt or .got or some such section, and setting the
      symbol to point to that.  */
-  bfd_boolean (*elf_backend_adjust_dynamic_symbol)
+  bool (*elf_backend_adjust_dynamic_symbol)
     (struct bfd_link_info *info, struct elf_link_hash_entry *h);
 
   /* The ALWAYS_SIZE_SECTIONS function is called by the backend linker
      after all the linker input files have been seen but before the
      section sizes have been set.  This is called after
      ADJUST_DYNAMIC_SYMBOL, but before SIZE_DYNAMIC_SECTIONS.  */
-  bfd_boolean (*elf_backend_always_size_sections)
+  bool (*elf_backend_always_size_sections)
     (bfd *output_bfd, struct bfd_link_info *info);
 
   /* The SIZE_DYNAMIC_SECTIONS function is called by the ELF backend
@@ -1124,13 +1123,13 @@ struct elf_backend_data
      .dynstr and .hash sections.  This function must handle the
      .interp section and any sections created by the
      CREATE_DYNAMIC_SECTIONS entry point.  */
-  bfd_boolean (*elf_backend_size_dynamic_sections)
+  bool (*elf_backend_size_dynamic_sections)
     (bfd *output_bfd, struct bfd_link_info *info);
 
   /* The STRIP_ZERO_SIZED_DYNAMIC_SECTIONS function is called by the
      ELF backend linker to strip zero-sized dynamic sections after
      the section sizes have been set.  */
-  bfd_boolean (*elf_backend_strip_zero_sized_dynamic_sections)
+  bool (*elf_backend_strip_zero_sized_dynamic_sections)
     (struct bfd_link_info *info);
 
   /* Set TEXT_INDEX_SECTION and DATA_INDEX_SECTION, the output sections
@@ -1181,7 +1180,7 @@ struct elf_backend_data
      dynamic sections.  Note that FINISH_DYNAMIC_SYMBOL is called on
      all .dynsym symbols, while ADJUST_DYNAMIC_SYMBOL is only called
      on those symbols which are defined by a dynamic object.  */
-  bfd_boolean (*elf_backend_finish_dynamic_symbol)
+  bool (*elf_backend_finish_dynamic_symbol)
     (bfd *output_bfd, struct bfd_link_info *info,
      struct elf_link_hash_entry *h, Elf_Internal_Sym *sym);
 
@@ -1189,7 +1188,7 @@ struct elf_backend_data
      linker just before it writes all the dynamic sections out to the
      output file.  The FINISH_DYNAMIC_SYMBOL will have been called on
      all dynamic symbols.  */
-  bfd_boolean (*elf_backend_finish_dynamic_sections)
+  bool (*elf_backend_finish_dynamic_sections)
     (bfd *output_bfd, struct bfd_link_info *info);
 
   /* A function to do any beginning processing needed for the ELF file
@@ -1199,7 +1198,7 @@ struct elf_backend_data
 
   /* A function to do any final processing needed for the ELF file
      before writing it out.  */
-  bfd_boolean (*elf_backend_final_write_processing)
+  bool (*elf_backend_final_write_processing)
     (bfd *);
 
   /* This function is called by get_program_header_size.  It should
@@ -1210,17 +1209,17 @@ struct elf_backend_data
 
   /* This function is called to modify an existing segment map in a
      backend specific fashion.  */
-  bfd_boolean (*elf_backend_modify_segment_map)
+  bool (*elf_backend_modify_segment_map)
     (bfd *, struct bfd_link_info *);
 
   /* This function is called to modify program headers just before
      they are written.  */
-  bfd_boolean (*elf_backend_modify_headers)
+  bool (*elf_backend_modify_headers)
     (bfd *, struct bfd_link_info *);
 
   /* This function is called to see if the PHDR header should be
      checked for validity.  */
-  bfd_boolean (*elf_backend_allow_non_load_phdr)
+  bool (*elf_backend_allow_non_load_phdr)
     (bfd *,  const Elf_Internal_Phdr *, unsigned);
 
   /* This function is called before section garbage collection to
@@ -1230,7 +1229,7 @@ struct elf_backend_data
 
   /* This function is called during section garbage collection to
      mark sections that define global symbols.  */
-  bfd_boolean (*gc_mark_dynamic_ref)
+  bool (*gc_mark_dynamic_ref)
     (struct elf_link_hash_entry *, void *);
 
   /* This function is called during section gc to discover the section a
@@ -1239,12 +1238,12 @@ struct elf_backend_data
 
   /* This function, if defined, is called after the first gc marking pass
      to allow the backend to mark additional sections.  */
-  bfd_boolean (*gc_mark_extra_sections)
+  bool (*gc_mark_extra_sections)
     (struct bfd_link_info *, elf_gc_mark_hook_fn);
 
   /* This function is called to initialise ELF file header info.
      Customised versions can modify things like the OS and ABI version.  */
-  bfd_boolean (*elf_backend_init_file_header)
+  bool (*elf_backend_init_file_header)
     (bfd *, struct bfd_link_info *);
 
   /* This function, if defined, prints a symbol to file and returns the
@@ -1257,7 +1256,7 @@ struct elf_backend_data
      global symbols converted to locals are emitted into the symtab
      section.  It allows the backend to emit special local symbols
      not handled in the hash table.  */
-  bfd_boolean (*elf_backend_output_arch_local_syms)
+  bool (*elf_backend_output_arch_local_syms)
     (bfd *, struct bfd_link_info *, void *,
      int (*) (void *, const char *, Elf_Internal_Sym *, asection *,
              struct elf_link_hash_entry *));
@@ -1265,7 +1264,7 @@ struct elf_backend_data
   /* This function, if defined, is called after all symbols are emitted
      into the symtab section.  It allows the backend to emit special
      global symbols not handled in the hash table.  */
-  bfd_boolean (*elf_backend_output_arch_syms)
+  bool (*elf_backend_output_arch_syms)
     (bfd *, struct bfd_link_info *, void *,
      int (*) (void *, const char *, Elf_Internal_Sym *, asection *,
              struct elf_link_hash_entry *));
@@ -1287,16 +1286,16 @@ struct elf_backend_data
   /* Modify any information related to dynamic linking such that the
      symbol is not exported.  */
   void (*elf_backend_hide_symbol)
-    (struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean);
+    (struct bfd_link_info *, struct elf_link_hash_entry *, bool);
 
   /* A function to do additional symbol fixup, called by
      _bfd_elf_fix_symbol_flags.  */
-  bfd_boolean (*elf_backend_fixup_symbol)
+  bool (*elf_backend_fixup_symbol)
     (struct bfd_link_info *, struct elf_link_hash_entry *);
 
   /* Merge the backend specific symbol attribute.  */
   void (*elf_backend_merge_symbol_attribute)
-    (struct elf_link_hash_entry *, unsigned int, bfd_boolean, bfd_boolean);
+    (struct elf_link_hash_entry *, unsigned int, bool, bool);
 
   /* This function, if defined, will return a string containing the
      name of a target-specific dynamic tag.  */
@@ -1305,12 +1304,12 @@ struct elf_backend_data
 
   /* Decide whether an undefined symbol is special and can be ignored.
      This is the case for OPTIONAL symbols on IRIX.  */
-  bfd_boolean (*elf_backend_ignore_undef_symbol)
+  bool (*elf_backend_ignore_undef_symbol)
     (struct elf_link_hash_entry *);
 
   /* Emit relocations.  Overrides default routine for emitting relocs,
      except during a relocatable link, or if all relocs are being emitted.  */
-  bfd_boolean (*elf_backend_emit_relocs)
+  bool (*elf_backend_emit_relocs)
     (bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *,
      struct elf_link_hash_entry **);
 
@@ -1331,22 +1330,22 @@ struct elf_backend_data
 
   /* Say whether to sort relocs output by ld -r and ld --emit-relocs,
      by r_offset.  If NULL, default to true.  */
-  bfd_boolean (*sort_relocs_p)
+  bool (*sort_relocs_p)
     (asection *);
 
   /* This function, if defined, is called when an NT_PRSTATUS note is found
      in a core file.  */
-  bfd_boolean (*elf_backend_grok_prstatus)
+  bool (*elf_backend_grok_prstatus)
     (bfd *, Elf_Internal_Note *);
 
   /* This function, if defined, is called when an NT_PSINFO or NT_PRPSINFO
      note is found in a core file.  */
-  bfd_boolean (*elf_backend_grok_psinfo)
+  bool (*elf_backend_grok_psinfo)
     (bfd *, Elf_Internal_Note *);
 
   /* This function, if defined, is called when a "FreeBSD" NT_PRSTATUS
      note is found in a core file.  */
-  bfd_boolean (*elf_backend_grok_freebsd_prstatus)
+  bool (*elf_backend_grok_freebsd_prstatus)
     (bfd *, Elf_Internal_Note *);
 
   /* This function, if defined, is called to write a note to a corefile.  */
@@ -1364,12 +1363,12 @@ struct elf_backend_data
 
   /* This function, if defined, removes information about discarded functions
      from other sections which mention them.  */
-  bfd_boolean (*elf_backend_discard_info)
+  bool (*elf_backend_discard_info)
     (bfd *, struct elf_reloc_cookie *, struct bfd_link_info *);
 
   /* This function, if defined, signals that the function above has removed
      the discarded relocations for this section.  */
-  bfd_boolean (*elf_backend_ignore_discarded_relocs)
+  bool (*elf_backend_ignore_discarded_relocs)
     (asection *);
 
   /* What to do when ld finds relocations against symbols defined in
@@ -1386,9 +1385,9 @@ struct elf_backend_data
   /* These functions tell elf-eh-frame whether to attempt to turn
      absolute or lsda encodings into pc-relative ones.  The default
      definition enables these transformations.  */
-  bfd_boolean (*elf_backend_can_make_relative_eh_frame)
+  bool (*elf_backend_can_make_relative_eh_frame)
      (bfd *, struct bfd_link_info *, asection *);
-  bfd_boolean (*elf_backend_can_make_lsda_relative_eh_frame)
+  bool (*elf_backend_can_make_lsda_relative_eh_frame)
      (bfd *, struct bfd_link_info *, asection *);
 
   /* This function returns an encoding after computing the encoded
@@ -1403,7 +1402,7 @@ struct elf_backend_data
 
   /* This function, if defined, may write out the given section.
      Returns TRUE if it did so and FALSE if the caller should.  */
-  bfd_boolean (*elf_backend_write_section)
+  bool (*elf_backend_write_section)
     (bfd *, struct bfd_link_info *, asection *, bfd_byte *);
 
   /* This function, if defined, returns TRUE if it is section symbols
@@ -1411,7 +1410,7 @@ struct elf_backend_data
      symbol table into local and global symbols.  This should be NULL
      for most targets, in which case the correct thing will be done.
      MIPS ELF, at least on the Irix 5, has special requirements.  */
-  bfd_boolean (*elf_backend_elfsym_local_is_section)
+  bool (*elf_backend_elfsym_local_is_section)
     (bfd *);
 
   /* The level of IRIX compatibility we're striving for.
@@ -1420,7 +1419,7 @@ struct elf_backend_data
     (bfd *);
 
   reloc_howto_type *(*elf_backend_mips_rtype_to_howto)
-    (bfd *, unsigned int, bfd_boolean);
+    (bfd *, unsigned int, bool);
 
   /* The swapping table to use when dealing with ECOFF information.
      Used for the MIPS ELF .mdebug section.  */
@@ -1433,14 +1432,14 @@ struct elf_backend_data
      int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
                                bfd_size_type len));
 
-  bfd_boolean (*elf_backend_core_find_build_id) (bfd *, bfd_vma);
+  bool (*elf_backend_core_find_build_id) (bfd *, bfd_vma);
 
   /* This function is used by `_bfd_elf_get_synthetic_symtab';
      see elf.c.  */
   bfd_vma (*plt_sym_val) (bfd_vma, const asection *, const arelent *);
 
   /* Is symbol defined in common section?  */
-  bfd_boolean (*common_definition) (Elf_Internal_Sym *);
+  bool (*common_definition) (Elf_Internal_Sym *);
 
   /* Return a common section index for section.  */
   unsigned int (*common_section_index) (asection *);
@@ -1449,13 +1448,13 @@ struct elf_backend_data
   asection *(*common_section) (asection *);
 
   /* Return TRUE if we can merge 2 definitions.  */
-  bfd_boolean (*merge_symbol) (struct elf_link_hash_entry *,
+  bool (*merge_symbol) (struct elf_link_hash_entry *,
                               const Elf_Internal_Sym *, asection **,
-                              bfd_boolean, bfd_boolean,
+                              bool, bool,
                               bfd *, const asection *);
 
   /* Return TRUE if symbol should be hashed in the `.gnu.hash' section.  */
-  bfd_boolean (*elf_hash_symbol) (struct elf_link_hash_entry *);
+  bool (*elf_hash_symbol) (struct elf_link_hash_entry *);
 
   /* If non-NULL, called to register the location of XLAT_LOC within
      .MIPS.xhash at which real final dynindx for H will be written.
@@ -1465,7 +1464,7 @@ struct elf_backend_data
     (struct elf_link_hash_entry *h, bfd_vma xlat_loc);
 
   /* Return TRUE if type is a function symbol type.  */
-  bfd_boolean (*is_function_type) (unsigned int type);
+  bool (*is_function_type) (unsigned int type);
 
   /* If the ELF symbol SYM might be a function in SEC, return the
      function size and set *CODE_OFF to the function's entry point,
@@ -1484,7 +1483,7 @@ struct elf_backend_data
      until it returns TRUE.  Most of the times it is called ISECTION will be
      set to an input section that might be associated with the output section.
      The last time that it is called, ISECTION will be set to NULL.  */
-  bfd_boolean (*elf_backend_copy_special_section_fields)
+  bool (*elf_backend_copy_special_section_fields)
     (const bfd *ibfd, bfd *obfd, const Elf_Internal_Shdr *isection,
      Elf_Internal_Shdr *osection);
 
@@ -1535,7 +1534,7 @@ struct elf_backend_data
 
   /* Handle merging unknown attributes; either warn and return TRUE,
      or give an error and return FALSE.  */
-  bfd_boolean (*obj_attrs_handle_unknown) (bfd *, int);
+  bool (*obj_attrs_handle_unknown) (bfd *, int);
 
   /* Parse GNU properties.  Return the property kind.  If the property
      is corrupt, issue an error message and return property_corrupt.  */
@@ -1544,7 +1543,7 @@ struct elf_backend_data
                                                  unsigned int);
 
   /* Merge GNU properties.  Return TRUE if property is updated.  */
-  bfd_boolean (*merge_gnu_properties) (struct bfd_link_info *, bfd *, bfd *,
+  bool (*merge_gnu_properties) (struct bfd_link_info *, bfd *, bfd *,
                                       elf_property *, elf_property *);
 
   /* Set up GNU properties.  */
@@ -1567,14 +1566,14 @@ struct elf_backend_data
   unsigned int (*symbol_section_index) (bfd *, elf_symbol_type *);
   
   /* Called when a section has extra reloc sections.  */
-  bfd_boolean (*init_secondary_reloc_section) (bfd *, Elf_Internal_Shdr *,
-                                              const char *, unsigned int);
+  bool (*init_secondary_reloc_section) (bfd *, Elf_Internal_Shdr *,
+                                       const char *, unsigned int);
 
   /* Called when after loading the normal relocs for a section.  */
-  bfd_boolean (*slurp_secondary_relocs) (bfd *, asection *, asymbol **, bfd_boolean);
+  bool (*slurp_secondary_relocs) (bfd *, asection *, asymbol **, bool);
 
   /* Called after writing the normal relocs for a section.  */
-  bfd_boolean (*write_secondary_relocs) (bfd *, asection *);
+  bool (*write_secondary_relocs) (bfd *, asection *);
 
   /* This is non-zero if static TLS segments require a special alignment.  */
   unsigned static_tls_alignment;
@@ -1760,7 +1759,7 @@ struct bfd_elf_section_data
   /* TRUE if the section has secondary reloc sections associated with it.
      FIXME: In the future it might be better to change this into a list
      of secondary reloc sections, making lookup easier and faster.  */
-  bfd_boolean has_secondary_relocs;
+  bool has_secondary_relocs;
 
   /* A pointer used for various section optimizations.  */
   void *sec_info;
@@ -1876,7 +1875,7 @@ struct output_elf_obj_tdata
   /* NT_GNU_BUILD_ID note type info.  */
   struct
   {
-    bfd_boolean (*after_write_object_contents) (bfd *);
+    bool (*after_write_object_contents) (bfd *);
     const char *style;
     asection *sec;
   } build_id;
@@ -1897,7 +1896,7 @@ struct output_elf_obj_tdata
   unsigned int stack_flags;
 
   /* Used to determine if the e_flags field has been initialized */
-  bfd_boolean flags_init;
+  bool flags_init;
 };
 
 /* Indicate if the bfd contains SHF_GNU_MBIND/SHF_GNU_RETAIN sections or
@@ -2140,12 +2139,12 @@ extern char * bfd_elf_get_str_section (bfd *, unsigned int);
 extern const char *bfd_elf_sym_name
   (bfd *, Elf_Internal_Shdr *, Elf_Internal_Sym *, asection *);
 
-extern bfd_boolean _bfd_elf_copy_private_bfd_data
+extern bool _bfd_elf_copy_private_bfd_data
   (bfd *, bfd *);
-extern bfd_boolean _bfd_elf_print_private_bfd_data
+extern bool _bfd_elf_print_private_bfd_data
   (bfd *, void *);
 const char * _bfd_elf_get_symbol_version_string
-  (bfd *, asymbol *, bfd_boolean, bfd_boolean *);
+  (bfd *, asymbol *, bool, bool *);
 extern void bfd_elf_print_symbol
   (bfd *, void *, asymbol *, bfd_print_symbol_type);
 
@@ -2154,7 +2153,7 @@ extern unsigned int _bfd_elf_eh_frame_address_size
 extern bfd_byte _bfd_elf_encode_eh_address
   (bfd *abfd, struct bfd_link_info *info, asection *osec, bfd_vma offset,
    asection *loc_sec, bfd_vma loc_offset, bfd_vma *encoded);
-extern bfd_boolean _bfd_elf_can_make_relative
+extern bool _bfd_elf_can_make_relative
   (bfd *input_bfd, struct bfd_link_info *info, asection *eh_frame_section);
 
 extern enum elf_reloc_type_class _bfd_elf_reloc_type_class
@@ -2174,15 +2173,15 @@ extern unsigned long bfd_elf_gnu_hash
 
 extern bfd_reloc_status_type bfd_elf_generic_reloc
   (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
-extern bfd_boolean bfd_elf_allocate_object
+extern bool bfd_elf_allocate_object
   (bfd *, size_t, enum elf_target_id);
-extern bfd_boolean bfd_elf_make_object
+extern bool bfd_elf_make_object
   (bfd *);
-extern bfd_boolean bfd_elf_mkcorefile
+extern bool bfd_elf_mkcorefile
   (bfd *);
-extern bfd_boolean _bfd_elf_make_section_from_shdr
+extern bool _bfd_elf_make_section_from_shdr
   (bfd *, Elf_Internal_Shdr *, const char *, int);
-extern bfd_boolean _bfd_elf_make_section_from_phdr
+extern bool _bfd_elf_make_section_from_phdr
   (bfd *, Elf_Internal_Phdr *, int, const char *);
 extern struct bfd_hash_entry *_bfd_elf_link_hash_newfunc
   (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
@@ -2194,27 +2193,27 @@ extern void _bfd_elf_link_hash_copy_indirect
   (struct bfd_link_info *, struct elf_link_hash_entry *,
    struct elf_link_hash_entry *);
 extern void _bfd_elf_link_hash_hide_symbol
-  (struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean);
+  (struct bfd_link_info *, struct elf_link_hash_entry *, bool);
 extern void _bfd_elf_link_hide_symbol
   (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
-extern bfd_boolean _bfd_elf_link_hash_fixup_symbol
+extern bool _bfd_elf_link_hash_fixup_symbol
   (struct bfd_link_info *, struct elf_link_hash_entry *);
-extern bfd_boolean _bfd_elf_link_hash_table_init
+extern bool _bfd_elf_link_hash_table_init
   (struct elf_link_hash_table *, bfd *,
    struct bfd_hash_entry *(*)
      (struct bfd_hash_entry *, struct bfd_hash_table *, const char *),
    unsigned int, enum elf_target_id);
-extern bfd_boolean _bfd_elf_slurp_version_tables
-  (bfd *, bfd_boolean);
-extern bfd_boolean _bfd_elf_merge_sections
+extern bool _bfd_elf_slurp_version_tables
+  (bfd *, bool);
+extern bool _bfd_elf_merge_sections
   (bfd *, struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_match_sections_by_type
+extern bool _bfd_elf_match_sections_by_type
   (bfd *, const asection *, bfd *, const asection *);
-extern bfd_boolean bfd_elf_is_group_section
+extern bool bfd_elf_is_group_section
   (bfd *, const struct bfd_section *);
 extern const char *bfd_elf_group_name
   (bfd *, const struct bfd_section *);
-extern bfd_boolean _bfd_elf_section_already_linked
+extern bool _bfd_elf_section_already_linked
   (bfd *, asection *, struct bfd_link_info *);
 extern void bfd_elf_set_group_contents
   (bfd *, asection *, void *);
@@ -2225,25 +2224,25 @@ extern asection *_bfd_elf_check_kept_section
 #define _bfd_elf_link_just_syms _bfd_generic_link_just_syms
 extern void _bfd_elf_copy_link_hash_symbol_type
   (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *);
-extern bfd_boolean _bfd_elf_size_group_sections
+extern bool _bfd_elf_size_group_sections
   (struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_fixup_group_sections
+extern bool _bfd_elf_fixup_group_sections
 (bfd *, asection *);
-extern bfd_boolean _bfd_elf_copy_private_header_data
+extern bool _bfd_elf_copy_private_header_data
   (bfd *, bfd *);
-extern bfd_boolean _bfd_elf_copy_private_symbol_data
+extern bool _bfd_elf_copy_private_symbol_data
   (bfd *, asymbol *, bfd *, asymbol *);
 #define _bfd_generic_init_private_section_data \
   _bfd_elf_init_private_section_data
-extern bfd_boolean _bfd_elf_init_private_section_data
+extern bool _bfd_elf_init_private_section_data
   (bfd *, asection *, bfd *, asection *, struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_copy_private_section_data
+extern bool _bfd_elf_copy_private_section_data
   (bfd *, asection *, bfd *, asection *);
-extern bfd_boolean _bfd_elf_write_object_contents
+extern bool _bfd_elf_write_object_contents
   (bfd *);
-extern bfd_boolean _bfd_elf_write_corefile_contents
+extern bool _bfd_elf_write_corefile_contents
   (bfd *);
-extern bfd_boolean _bfd_elf_set_section_contents
+extern bool _bfd_elf_set_section_contents
   (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
 extern long _bfd_elf_get_symtab_upper_bound
   (bfd *);
@@ -2260,9 +2259,9 @@ extern long _bfd_elf_get_reloc_upper_bound
 extern long _bfd_elf_canonicalize_reloc
   (bfd *, sec_ptr, arelent **, asymbol **);
 extern asection * _bfd_elf_get_dynamic_reloc_section
-  (bfd *, asection *, bfd_boolean);
+  (bfd *, asection *, bool);
 extern asection * _bfd_elf_make_dynamic_reloc_section
-  (asection *, bfd *, unsigned int, bfd *, bfd_boolean);
+  (asection *, bfd *, unsigned int, bfd *, bool);
 extern long _bfd_elf_get_dynamic_reloc_upper_bound
   (bfd *);
 extern long _bfd_elf_canonicalize_dynamic_reloc
@@ -2271,18 +2270,18 @@ extern asymbol *_bfd_elf_make_empty_symbol
   (bfd *);
 extern void _bfd_elf_get_symbol_info
   (bfd *, asymbol *, symbol_info *);
-extern bfd_boolean _bfd_elf_is_local_label_name
+extern bool _bfd_elf_is_local_label_name
   (bfd *, const char *);
 extern alent *_bfd_elf_get_lineno
   (bfd *, asymbol *);
-extern bfd_boolean _bfd_elf_set_arch_mach
+extern bool _bfd_elf_set_arch_mach
   (bfd *, enum bfd_architecture, unsigned long);
-extern bfd_boolean _bfd_elf_find_nearest_line
+extern bool _bfd_elf_find_nearest_line
   (bfd *, asymbol **, asection *, bfd_vma,
    const char **, const char **, unsigned int *, unsigned int *);
-extern bfd_boolean _bfd_elf_find_line
+extern bool _bfd_elf_find_line
   (bfd *, asymbol **, asymbol *, const char **, unsigned int *);
-extern bfd_boolean _bfd_elf_find_inliner_info
+extern bool _bfd_elf_find_inliner_info
   (bfd *, const char **, const char **, unsigned int *);
 extern asymbol *_bfd_elf_find_function
   (bfd *, asymbol **, asection *, bfd_vma, const char **, const char **);
@@ -2290,23 +2289,23 @@ extern asymbol *_bfd_elf_find_function
 #define _bfd_elf_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol
 extern int _bfd_elf_sizeof_headers
   (bfd *, struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_new_section_hook
+extern bool _bfd_elf_new_section_hook
   (bfd *, asection *);
 extern const struct bfd_elf_special_section *_bfd_elf_get_special_section
   (const char *, const struct bfd_elf_special_section *, unsigned int);
 extern const struct bfd_elf_special_section *_bfd_elf_get_sec_type_attr
   (bfd *, asection *);
 
-extern bfd_boolean _bfd_elf_link_hide_sym_by_version
+extern bool _bfd_elf_link_hide_sym_by_version
   (struct bfd_link_info *, struct elf_link_hash_entry *);
 
 /* If the target doesn't have reloc handling written yet:  */
-extern bfd_boolean _bfd_elf_no_info_to_howto
+extern bool _bfd_elf_no_info_to_howto
   (bfd *, arelent *, Elf_Internal_Rela *);
 
-extern bfd_boolean bfd_section_from_shdr
+extern bool bfd_section_from_shdr
   (bfd *, unsigned int shindex);
-extern bfd_boolean bfd_section_from_phdr
+extern bool bfd_section_from_phdr
   (bfd *, Elf_Internal_Phdr *, int);
 
 extern int _bfd_elf_symbol_from_bfd_symbol
@@ -2322,7 +2321,7 @@ extern struct elf_strtab_hash * _bfd_elf_strtab_init
 extern void _bfd_elf_strtab_free
   (struct elf_strtab_hash *);
 extern size_t _bfd_elf_strtab_add
-  (struct elf_strtab_hash *, const char *, bfd_boolean);
+  (struct elf_strtab_hash *, const char *, bool);
 extern void _bfd_elf_strtab_addref
   (struct elf_strtab_hash *, size_t);
 extern void _bfd_elf_strtab_delref
@@ -2343,68 +2342,68 @@ extern bfd_size_type _bfd_elf_strtab_offset
   (struct elf_strtab_hash *, size_t);
 extern const char * _bfd_elf_strtab_str
   (struct elf_strtab_hash *, size_t idx, bfd_size_type *offset);
-extern bfd_boolean _bfd_elf_strtab_emit
+extern bool _bfd_elf_strtab_emit
   (bfd *, struct elf_strtab_hash *);
 extern void _bfd_elf_strtab_finalize
   (struct elf_strtab_hash *);
 
-extern bfd_boolean bfd_elf_parse_eh_frame_entries
+extern bool bfd_elf_parse_eh_frame_entries
   (bfd *, struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_parse_eh_frame_entry
+extern bool _bfd_elf_parse_eh_frame_entry
   (struct bfd_link_info *, asection *, struct elf_reloc_cookie *);
 extern void _bfd_elf_parse_eh_frame
   (bfd *, struct bfd_link_info *, asection *, struct elf_reloc_cookie *);
-extern bfd_boolean _bfd_elf_end_eh_frame_parsing
+extern bool _bfd_elf_end_eh_frame_parsing
   (struct bfd_link_info *info);
 
-extern bfd_boolean _bfd_elf_discard_section_eh_frame
+extern bool _bfd_elf_discard_section_eh_frame
   (bfd *, struct bfd_link_info *, asection *,
-   bfd_boolean (*) (bfd_vma, void *), struct elf_reloc_cookie *);
-extern bfd_boolean _bfd_elf_adjust_eh_frame_global_symbol
+   bool (*) (bfd_vma, void *), struct elf_reloc_cookie *);
+extern bool _bfd_elf_adjust_eh_frame_global_symbol
   (struct elf_link_hash_entry *, void *);
-extern bfd_boolean _bfd_elf_discard_section_eh_frame_hdr
+extern bool _bfd_elf_discard_section_eh_frame_hdr
   (bfd *, struct bfd_link_info *);
 extern bfd_vma _bfd_elf_eh_frame_section_offset
   (bfd *, struct bfd_link_info *, asection *, bfd_vma);
-extern bfd_boolean _bfd_elf_write_section_eh_frame
+extern bool _bfd_elf_write_section_eh_frame
   (bfd *, struct bfd_link_info *, asection *, bfd_byte *);
-bfd_boolean _bfd_elf_write_section_eh_frame_entry
+bool _bfd_elf_write_section_eh_frame_entry
   (bfd *, struct bfd_link_info *, asection *, bfd_byte *);
-extern bfd_boolean _bfd_elf_fixup_eh_frame_hdr (struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_write_section_eh_frame_hdr
+extern bool _bfd_elf_fixup_eh_frame_hdr (struct bfd_link_info *);
+extern bool _bfd_elf_write_section_eh_frame_hdr
   (bfd *, struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_eh_frame_present
+extern bool _bfd_elf_eh_frame_present
   (struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_eh_frame_entry_present
+extern bool _bfd_elf_eh_frame_entry_present
   (struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_maybe_strip_eh_frame_hdr
+extern bool _bfd_elf_maybe_strip_eh_frame_hdr
   (struct bfd_link_info *);
 
-extern bfd_boolean _bfd_elf_hash_symbol (struct elf_link_hash_entry *);
+extern bool _bfd_elf_hash_symbol (struct elf_link_hash_entry *);
 
 extern long _bfd_elf_link_lookup_local_dynindx
   (struct bfd_link_info *, bfd *, long);
-extern bfd_boolean _bfd_elf_compute_section_file_positions
+extern bool _bfd_elf_compute_section_file_positions
   (bfd *, struct bfd_link_info *);
 extern file_ptr _bfd_elf_assign_file_position_for_section
-  (Elf_Internal_Shdr *, file_ptr, bfd_boolean);
-extern bfd_boolean _bfd_elf_modify_headers
+  (Elf_Internal_Shdr *, file_ptr, bool);
+extern bool _bfd_elf_modify_headers
   (bfd *, struct bfd_link_info *);
 
-extern bfd_boolean _bfd_elf_validate_reloc
+extern bool _bfd_elf_validate_reloc
   (bfd *, arelent *);
 
-extern bfd_boolean bfd_elf_record_link_assignment
-  (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
-   bfd_boolean);
-extern bfd_boolean bfd_elf_stack_segment_size (bfd *, struct bfd_link_info *,
-                                              const char *, bfd_vma);
-extern bfd_boolean bfd_elf_size_dynamic_sections
+extern bool bfd_elf_record_link_assignment
+  (bfd *, struct bfd_link_info *, const char *, bool,
+   bool);
+extern bool bfd_elf_stack_segment_size (bfd *, struct bfd_link_info *,
+                                       const char *, bfd_vma);
+extern bool bfd_elf_size_dynamic_sections
   (bfd *, const char *, const char *, const char *, const char *, const char *,
    const char * const *, struct bfd_link_info *, struct bfd_section **);
-extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
+extern bool bfd_elf_size_dynsym_hash_dynstr
   (bfd *, struct bfd_link_info *);
-extern bfd_boolean bfd_elf_get_bfd_needed_list
+extern bool bfd_elf_get_bfd_needed_list
   (bfd *, struct bfd_link_needed_list **);
 extern struct bfd_link_needed_list *bfd_elf_get_needed_list
   (bfd *, struct bfd_link_info *);
@@ -2425,18 +2424,18 @@ extern unsigned int _bfd_elf_default_action_discarded
 extern struct bfd_section *_bfd_elf_tls_setup
   (bfd *, struct bfd_link_info *);
 
-extern bfd_boolean _bfd_elf_link_create_dynamic_sections
+extern bool _bfd_elf_link_create_dynamic_sections
   (bfd *, struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_omit_section_dynsym_default
+extern bool _bfd_elf_omit_section_dynsym_default
   (bfd *, struct bfd_link_info *, asection *);
-extern bfd_boolean _bfd_elf_omit_section_dynsym_all
+extern bool _bfd_elf_omit_section_dynsym_all
   (bfd *, struct bfd_link_info *, asection *);
-extern bfd_boolean _bfd_elf_create_dynamic_sections
+extern bool _bfd_elf_create_dynamic_sections
   (bfd *, struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_create_got_section
+extern bool _bfd_elf_create_got_section
   (bfd *, struct bfd_link_info *);
 extern asection *_bfd_elf_section_for_symbol
-  (struct elf_reloc_cookie *, unsigned long, bfd_boolean);
+  (struct elf_reloc_cookie *, unsigned long, bool);
 extern struct elf_link_hash_entry *_bfd_elf_define_linkage_sym
   (bfd *, struct bfd_link_info *, asection *, const char *);
 extern void _bfd_elf_init_1_index_section
@@ -2444,39 +2443,39 @@ extern void _bfd_elf_init_1_index_section
 extern void _bfd_elf_init_2_index_sections
   (bfd *, struct bfd_link_info *);
 
-extern bfd_boolean _bfd_elfcore_make_pseudosection
+extern bool _bfd_elfcore_make_pseudosection
   (bfd *, char *, size_t, ufile_ptr);
 extern char *_bfd_elfcore_strndup
   (bfd *, char *, size_t);
 
 extern Elf_Internal_Rela *_bfd_elf_link_read_relocs
-  (bfd *, asection *, void *, Elf_Internal_Rela *, bfd_boolean);
+  (bfd *, asection *, void *, Elf_Internal_Rela *, bool);
 
-extern bfd_boolean _bfd_elf_link_output_relocs
+extern bool _bfd_elf_link_output_relocs
   (bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *,
    struct elf_link_hash_entry **);
 
-extern bfd_boolean _bfd_elf_adjust_dynamic_copy
+extern bool _bfd_elf_adjust_dynamic_copy
   (struct bfd_link_info *, struct elf_link_hash_entry *, asection *);
 
-extern bfd_boolean _bfd_elf_dynamic_symbol_p
-  (struct elf_link_hash_entry *, struct bfd_link_info *, bfd_boolean);
+extern bool _bfd_elf_dynamic_symbol_p
+  (struct elf_link_hash_entry *, struct bfd_link_info *, bool);
 
-extern bfd_boolean _bfd_elf_symbol_refs_local_p
-  (struct elf_link_hash_entry *, struct bfd_link_info *, bfd_boolean);
+extern bool _bfd_elf_symbol_refs_local_p
+  (struct elf_link_hash_entry *, struct bfd_link_info *, bool);
 
 extern bfd_reloc_status_type bfd_elf_perform_complex_relocation
   (bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, bfd_vma);
 
-extern bfd_boolean _bfd_elf_setup_sections
+extern bool _bfd_elf_setup_sections
   (bfd *);
 
 extern struct bfd_link_hash_entry *bfd_elf_define_start_stop
   (struct bfd_link_info *, const char *, asection *);
 
-extern bfd_boolean _bfd_elf_init_file_header (bfd *, struct bfd_link_info *);
+extern bool _bfd_elf_init_file_header (bfd *, struct bfd_link_info *);
 
-extern bfd_boolean _bfd_elf_final_write_processing (bfd *);
+extern bool _bfd_elf_final_write_processing (bfd *);
 
 extern bfd_cleanup bfd_elf32_object_p
   (bfd *);
@@ -2486,14 +2485,14 @@ extern char *bfd_elf32_core_file_failing_command
   (bfd *);
 extern int bfd_elf32_core_file_failing_signal
   (bfd *);
-extern bfd_boolean bfd_elf32_core_file_matches_executable_p
+extern bool bfd_elf32_core_file_matches_executable_p
   (bfd *, bfd *);
 extern int bfd_elf32_core_file_pid
   (bfd *);
-extern bfd_boolean _bfd_elf32_core_find_build_id
+extern bool _bfd_elf32_core_find_build_id
   (bfd *, bfd_vma);
 
-extern bfd_boolean bfd_elf32_swap_symbol_in
+extern bool bfd_elf32_swap_symbol_in
   (bfd *, const void *, const void *, Elf_Internal_Sym *);
 extern void bfd_elf32_swap_symbol_out
   (bfd *, const Elf_Internal_Sym *, void *, void *);
@@ -2514,17 +2513,17 @@ extern void bfd_elf32_swap_dyn_in
 extern void bfd_elf32_swap_dyn_out
   (bfd *, const Elf_Internal_Dyn *, void *);
 extern long bfd_elf32_slurp_symbol_table
-  (bfd *, asymbol **, bfd_boolean);
-extern bfd_boolean bfd_elf32_write_shdrs_and_ehdr
+  (bfd *, asymbol **, bool);
+extern bool bfd_elf32_write_shdrs_and_ehdr
   (bfd *);
 extern int bfd_elf32_write_out_phdrs
   (bfd *, const Elf_Internal_Phdr *, unsigned int);
-extern bfd_boolean bfd_elf32_checksum_contents
+extern bool bfd_elf32_checksum_contents
   (bfd * , void (*) (const void *, size_t, void *), void *);
 extern void bfd_elf32_write_relocs
   (bfd *, asection *, void *);
-extern bfd_boolean bfd_elf32_slurp_reloc_table
-  (bfd *, asection *, asymbol **, bfd_boolean);
+extern bool bfd_elf32_slurp_reloc_table
+  (bfd *, asection *, asymbol **, bool);
 
 extern bfd_cleanup bfd_elf64_object_p
   (bfd *);
@@ -2534,14 +2533,14 @@ extern char *bfd_elf64_core_file_failing_command
   (bfd *);
 extern int bfd_elf64_core_file_failing_signal
   (bfd *);
-extern bfd_boolean bfd_elf64_core_file_matches_executable_p
+extern bool bfd_elf64_core_file_matches_executable_p
   (bfd *, bfd *);
 extern int bfd_elf64_core_file_pid
   (bfd *);
-extern bfd_boolean _bfd_elf64_core_find_build_id
+extern bool _bfd_elf64_core_find_build_id
   (bfd *, bfd_vma);
 
-extern bfd_boolean bfd_elf64_swap_symbol_in
+extern bool bfd_elf64_swap_symbol_in
   (bfd *, const void *, const void *, Elf_Internal_Sym *);
 extern void bfd_elf64_swap_symbol_out
   (bfd *, const Elf_Internal_Sym *, void *, void *);
@@ -2562,49 +2561,49 @@ extern void bfd_elf64_swap_dyn_in
 extern void bfd_elf64_swap_dyn_out
   (bfd *, const Elf_Internal_Dyn *, void *);
 extern long bfd_elf64_slurp_symbol_table
-  (bfd *, asymbol **, bfd_boolean);
-extern bfd_boolean bfd_elf64_write_shdrs_and_ehdr
+  (bfd *, asymbol **, bool);
+extern bool bfd_elf64_write_shdrs_and_ehdr
   (bfd *);
 extern int bfd_elf64_write_out_phdrs
   (bfd *, const Elf_Internal_Phdr *, unsigned int);
-extern bfd_boolean bfd_elf64_checksum_contents
+extern bool bfd_elf64_checksum_contents
   (bfd * , void (*) (const void *, size_t, void *), void *);
 extern void bfd_elf64_write_relocs
   (bfd *, asection *, void *);
-extern bfd_boolean bfd_elf64_slurp_reloc_table
-  (bfd *, asection *, asymbol **, bfd_boolean);
+extern bool bfd_elf64_slurp_reloc_table
+  (bfd *, asection *, asymbol **, bool);
 
-extern bfd_boolean _bfd_elf_default_relocs_compatible
+extern bool _bfd_elf_default_relocs_compatible
   (const bfd_target *, const bfd_target *);
 
-extern bfd_boolean _bfd_elf_relocs_compatible
+extern bool _bfd_elf_relocs_compatible
   (const bfd_target *, const bfd_target *);
-extern bfd_boolean _bfd_elf_notice_as_needed
+extern bool _bfd_elf_notice_as_needed
   (bfd *, struct bfd_link_info *, enum notice_asneeded_action);
 
 extern struct elf_link_hash_entry *_bfd_elf_archive_symbol_lookup
   (bfd *, struct bfd_link_info *, const char *);
-extern bfd_boolean bfd_elf_link_add_symbols
+extern bool bfd_elf_link_add_symbols
   (bfd *, struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_add_dynamic_entry
+extern bool _bfd_elf_add_dynamic_entry
   (struct bfd_link_info *, bfd_vma, bfd_vma);
-extern bfd_boolean _bfd_elf_strip_zero_sized_dynamic_sections
+extern bool _bfd_elf_strip_zero_sized_dynamic_sections
   (struct bfd_link_info *);
 extern int bfd_elf_add_dt_needed_tag
   (bfd *, struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_link_check_relocs
+extern bool _bfd_elf_link_check_relocs
   (bfd *, struct bfd_link_info *);
 
-extern bfd_boolean bfd_elf_link_record_dynamic_symbol
+extern bool bfd_elf_link_record_dynamic_symbol
   (struct bfd_link_info *, struct elf_link_hash_entry *);
 
 extern int bfd_elf_link_record_local_dynamic_symbol
   (struct bfd_link_info *, bfd *, long);
 
-extern bfd_boolean _bfd_elf_close_and_cleanup
+extern bool _bfd_elf_close_and_cleanup
   (bfd *);
 
-extern bfd_boolean _bfd_elf_common_definition
+extern bool _bfd_elf_common_definition
   (Elf_Internal_Sym *);
 
 extern unsigned int _bfd_elf_common_section_index
@@ -2621,22 +2620,22 @@ extern bfd_reloc_status_type _bfd_elf_rel_vtable_reloc_fn
   (bfd *, arelent *, struct bfd_symbol *, void *,
    asection *, bfd *, char **);
 
-extern bfd_boolean bfd_elf_final_link
+extern bool bfd_elf_final_link
   (bfd *, struct bfd_link_info *);
 
 extern void _bfd_elf_gc_keep
   (struct bfd_link_info *info);
 
-extern bfd_boolean bfd_elf_gc_mark_dynamic_ref_symbol
+extern bool bfd_elf_gc_mark_dynamic_ref_symbol
   (struct elf_link_hash_entry *h, void *inf);
 
-extern bfd_boolean bfd_elf_gc_sections
+extern bool bfd_elf_gc_sections
   (bfd *, struct bfd_link_info *);
 
-extern bfd_boolean bfd_elf_gc_record_vtinherit
+extern bool bfd_elf_gc_record_vtinherit
   (bfd *, asection *, struct elf_link_hash_entry *, bfd_vma);
 
-extern bfd_boolean bfd_elf_gc_record_vtentry
+extern bool bfd_elf_gc_record_vtentry
   (bfd *, asection *, struct elf_link_hash_entry *, bfd_vma);
 
 extern asection *_bfd_elf_gc_mark_hook
@@ -2645,38 +2644,38 @@ extern asection *_bfd_elf_gc_mark_hook
 
 extern asection *_bfd_elf_gc_mark_rsec
   (struct bfd_link_info *, asection *, elf_gc_mark_hook_fn,
-   struct elf_reloc_cookie *, bfd_boolean *);
+   struct elf_reloc_cookie *, bool *);
 
-extern bfd_boolean _bfd_elf_gc_mark_reloc
+extern bool _bfd_elf_gc_mark_reloc
   (struct bfd_link_info *, asection *, elf_gc_mark_hook_fn,
    struct elf_reloc_cookie *);
 
-extern bfd_boolean _bfd_elf_gc_mark_fdes
+extern bool _bfd_elf_gc_mark_fdes
   (struct bfd_link_info *, asection *, asection *, elf_gc_mark_hook_fn,
    struct elf_reloc_cookie *);
 
-extern bfd_boolean _bfd_elf_gc_mark
+extern bool _bfd_elf_gc_mark
   (struct bfd_link_info *, asection *, elf_gc_mark_hook_fn);
 
-extern bfd_boolean _bfd_elf_gc_mark_extra_sections
+extern bool _bfd_elf_gc_mark_extra_sections
   (struct bfd_link_info *, elf_gc_mark_hook_fn);
 
-extern bfd_boolean bfd_elf_gc_common_finalize_got_offsets
+extern bool bfd_elf_gc_common_finalize_got_offsets
   (bfd *, struct bfd_link_info *);
 
-extern bfd_boolean bfd_elf_gc_common_final_link
+extern bool bfd_elf_gc_common_final_link
   (bfd *, struct bfd_link_info *);
 
-extern bfd_boolean bfd_elf_reloc_symbol_deleted_p
+extern bool bfd_elf_reloc_symbol_deleted_p
   (bfd_vma, void *);
 
 extern struct elf_segment_map * _bfd_elf_make_dynamic_segment
   (bfd *, asection *);
 
-extern bfd_boolean _bfd_elf_map_sections_to_segments
+extern bool _bfd_elf_map_sections_to_segments
   (bfd *, struct bfd_link_info *);
 
-extern bfd_boolean _bfd_elf_is_function_type (unsigned int);
+extern bool _bfd_elf_is_function_type (unsigned int);
 
 extern bfd_size_type _bfd_elf_maybe_function_sym (const asymbol *, asection *,
                                                  bfd_vma *);
@@ -2685,7 +2684,7 @@ extern asection *_bfd_elf_plt_get_reloc_section (bfd *, const char *);
 
 extern int bfd_elf_get_default_section_type (flagword);
 
-extern bfd_boolean bfd_elf_lookup_section_flags
+extern bool bfd_elf_lookup_section_flags
   (struct bfd_link_info *, struct flag_info *, asection *);
 
 extern Elf_Internal_Phdr * _bfd_elf_find_segment_containing_section
@@ -2698,9 +2697,9 @@ extern unsigned int _bfd_elf_ppc_at_tls_transform
 extern unsigned int _bfd_elf_ppc_at_tprel_transform
   (unsigned int, unsigned int);
 /* PowerPC elf_object_p tweak.  */
-extern bfd_boolean _bfd_elf_ppc_set_arch (bfd *);
+extern bool _bfd_elf_ppc_set_arch (bfd *);
 /* PowerPC .gnu.attributes handling common to both 32-bit and 64-bit.  */
-extern bfd_boolean _bfd_elf_ppc_merge_fp_attributes
+extern bool _bfd_elf_ppc_merge_fp_attributes
   (bfd *, struct bfd_link_info *);
 
 /* Return an upper bound on the number of bytes required to store a
@@ -2871,14 +2870,14 @@ extern char *_bfd_elf_attr_strdup (bfd *, const char *);
 extern void _bfd_elf_copy_obj_attributes (bfd *, bfd *);
 extern int _bfd_elf_obj_attrs_arg_type (bfd *, int, unsigned int);
 extern void _bfd_elf_parse_attributes (bfd *, Elf_Internal_Shdr *);
-extern bfd_boolean _bfd_elf_merge_object_attributes
+extern bool _bfd_elf_merge_object_attributes
   (bfd *, struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_merge_unknown_attribute_low (bfd *, bfd *, int);
-extern bfd_boolean _bfd_elf_merge_unknown_attribute_list (bfd *, bfd *);
+extern bool _bfd_elf_merge_unknown_attribute_low (bfd *, bfd *, int);
+extern bool _bfd_elf_merge_unknown_attribute_list (bfd *, bfd *);
 extern Elf_Internal_Shdr *_bfd_elf_single_rel_hdr (asection *sec);
-extern bfd_boolean elf_read_notes (bfd *, file_ptr, bfd_size_type, size_t);
+extern bool elf_read_notes (bfd *, file_ptr, bfd_size_type, size_t);
 
-extern bfd_boolean _bfd_elf_parse_gnu_properties
+extern bool _bfd_elf_parse_gnu_properties
   (bfd *, Elf_Internal_Note *);
 extern elf_property * _bfd_elf_get_property
   (bfd *, unsigned int, unsigned int);
@@ -2886,7 +2885,7 @@ extern bfd *_bfd_elf_link_setup_gnu_properties
   (struct bfd_link_info *);
 extern bfd_size_type _bfd_elf_convert_gnu_property_size
   (bfd *, bfd *);
-extern bfd_boolean _bfd_elf_convert_gnu_properties
+extern bool _bfd_elf_convert_gnu_properties
   (bfd *, asection *, bfd *, bfd_byte **, bfd_size_type *);
 
 /* The linker may need to keep track of the number of relocs that it
@@ -2909,12 +2908,12 @@ struct elf_dyn_relocs
   bfd_size_type pc_count;
 };
 
-extern bfd_boolean _bfd_elf_create_ifunc_sections
+extern bool _bfd_elf_create_ifunc_sections
   (bfd *, struct bfd_link_info *);
-extern bfd_boolean _bfd_elf_allocate_ifunc_dyn_relocs
+extern bool _bfd_elf_allocate_ifunc_dyn_relocs
   (struct bfd_link_info *, struct elf_link_hash_entry *,
    struct elf_dyn_relocs **, unsigned int, unsigned int,
-   unsigned int, bfd_boolean);
+   unsigned int, bool);
 
 extern void elf_append_rela (bfd *, asection *, Elf_Internal_Rela *);
 extern void elf_append_rel (bfd *, asection *, Elf_Internal_Rela *);
@@ -2924,27 +2923,27 @@ extern bfd_vma elf64_r_sym (bfd_vma);
 extern bfd_vma elf32_r_info (bfd_vma, bfd_vma);
 extern bfd_vma elf32_r_sym (bfd_vma);
 
-extern bfd_boolean is_debuginfo_file (bfd *);
+extern bool is_debuginfo_file (bfd *);
 
 
-extern bfd_boolean _bfd_elf_init_secondary_reloc_section
+extern bool _bfd_elf_init_secondary_reloc_section
   (bfd *, Elf_Internal_Shdr *, const char *, unsigned int);
-extern bfd_boolean _bfd_elf_slurp_secondary_reloc_section
-  (bfd *, asection *, asymbol **, bfd_boolean);
-extern bfd_boolean _bfd_elf_copy_special_section_fields
+extern bool _bfd_elf_slurp_secondary_reloc_section
+  (bfd *, asection *, asymbol **, bool);
+extern bool _bfd_elf_copy_special_section_fields
   (const bfd *, bfd *, const Elf_Internal_Shdr *, Elf_Internal_Shdr *);
-extern bfd_boolean _bfd_elf_write_secondary_reloc_section
+extern bool _bfd_elf_write_secondary_reloc_section
   (bfd *, asection *);
 extern unsigned int _bfd_elf_symbol_section_index
   (bfd *, elf_symbol_type *);
 
 extern asection *_bfd_elf_readonly_dynrelocs
   (struct elf_link_hash_entry *);
-extern bfd_boolean _bfd_elf_maybe_set_textrel
+extern bool _bfd_elf_maybe_set_textrel
   (struct elf_link_hash_entry *, void *);
 
-extern bfd_boolean _bfd_elf_add_dynamic_tags
-  (bfd *, struct bfd_link_info *, bfd_boolean);
+extern bool _bfd_elf_add_dynamic_tags
+  (bfd *, struct bfd_link_info *, bool);
 
 /* Large common section.  */
 extern asection _bfd_elf_large_com_section;
@@ -2974,7 +2973,7 @@ extern asection _bfd_elf_large_com_section;
       /* It seems this can happen with erroneous or unsupported                \
         input (mixing a.out and elf in an archive, for example.)  */   \
       if (sym_hashes == NULL)                                          \
-       return FALSE;                                                   \
+       return false;                                                   \
                                                                        \
       h = sym_hashes[r_symndx - symtab_hdr->sh_info];                  \
                                                                        \
@@ -2987,9 +2986,9 @@ extern asection _bfd_elf_large_com_section;
             || h->root.type == bfd_link_hash_warning)                  \
        h = (struct elf_link_hash_entry *) h->root.u.i.link;            \
                                                                        \
-      warned = FALSE;                                                  \
-      ignored = FALSE;                                                 \
-      unresolved_reloc = FALSE;                                                \
+      warned = false;                                                  \
+      ignored = false;                                                 \
+      unresolved_reloc = false;                                                \
       relocation = 0;                                                  \
       if (h->root.type == bfd_link_hash_defined                                \
          || h->root.type == bfd_link_hash_defweak)                     \
@@ -3001,7 +3000,7 @@ extern asection _bfd_elf_large_com_section;
               relocation value for this symbol.  output_section        \
               is typically NULL for symbols satisfied by a shared      \
               library.  */                                             \
-           unresolved_reloc = TRUE;                                    \
+           unresolved_reloc = true;                                    \
          else                                                          \
            relocation = (h->root.u.def.value                           \
                          + sec->output_section->vma                    \
@@ -3011,19 +3010,18 @@ extern asection _bfd_elf_large_com_section;
        ;                                                               \
       else if (info->unresolved_syms_in_objects == RM_IGNORE           \
               && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)          \
-       ignored = TRUE;                                                 \
+       ignored = true;                                                 \
       else if (!bfd_link_relocatable (info))                           \
        {                                                               \
-         bfd_boolean err;                                              \
-         err = (info->unresolved_syms_in_objects == RM_DIAGNOSE &&     \
-                !info->warn_unresolved_syms)                           \
-                || ELF_ST_VISIBILITY (h->other) != STV_DEFAULT;        \
+         bool err = ((info->unresolved_syms_in_objects == RM_DIAGNOSE  \
+                      && !info->warn_unresolved_syms)                  \
+                     || ELF_ST_VISIBILITY (h->other) != STV_DEFAULT);  \
          (*info->callbacks->undefined_symbol) (info,                   \
                                                h->root.root.string,    \
                                                input_bfd,              \
                                                input_section,          \
                                                rel->r_offset, err);    \
-         warned = TRUE;                                                \
+         warned = true;                                                \
        }                                                               \
       (void) unresolved_reloc;                                         \
       (void) warned;                                                   \
@@ -3091,7 +3089,7 @@ extern asection _bfd_elf_large_com_section;
         || ((INFO)->dynamic && !(H)->dynamic)))
 
 /* Determine if a section contains CTF data, using its name.  */
-static inline bfd_boolean
+static inline bool
 bfd_section_is_ctf (const asection *sec)
 {
   const char *name = bfd_section_name (sec);