+. flagword flags : 17;
+.
+. {* Values that may appear in the flags field of a BFD. These also
+. appear in the object_flags field of the bfd_target structure, where
+. they indicate the set of flags used by that backend (not all flags
+. are meaningful for all object file formats) (FIXME: at the moment,
+. the object_flags values have mostly just been copied from backend
+. to another, and are not necessarily correct). *}
+.
+.#define BFD_NO_FLAGS 0x00
+.
+. {* BFD contains relocation entries. *}
+.#define HAS_RELOC 0x01
+.
+. {* BFD is directly executable. *}
+.#define EXEC_P 0x02
+.
+. {* BFD has line number information (basically used for F_LNNO in a
+. COFF header). *}
+.#define HAS_LINENO 0x04
+.
+. {* BFD has debugging information. *}
+.#define HAS_DEBUG 0x08
+.
+. {* BFD has symbols. *}
+.#define HAS_SYMS 0x10
+.
+. {* BFD has local symbols (basically used for F_LSYMS in a COFF
+. header). *}
+.#define HAS_LOCALS 0x20
+.
+. {* BFD is a dynamic object. *}
+.#define DYNAMIC 0x40
+.
+. {* Text section is write protected (if D_PAGED is not set, this is
+. like an a.out NMAGIC file) (the linker sets this by default, but
+. clears it for -r or -N). *}
+.#define WP_TEXT 0x80
+.
+. {* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
+. linker sets this by default, but clears it for -r or -n or -N). *}
+.#define D_PAGED 0x100
+.
+. {* BFD is relaxable (this means that bfd_relax_section may be able to
+. do something) (sometimes bfd_relax_section can do something even if
+. this is not set). *}
+.#define BFD_IS_RELAXABLE 0x200
+.
+. {* This may be set before writing out a BFD to request using a
+. traditional format. For example, this is used to request that when
+. writing out an a.out object the symbols not be hashed to eliminate
+. duplicates. *}
+.#define BFD_TRADITIONAL_FORMAT 0x400
+.
+. {* This flag indicates that the BFD contents are actually cached
+. in memory. If this is set, iostream points to a bfd_in_memory
+. struct. *}
+.#define BFD_IN_MEMORY 0x800
+.
+. {* This BFD has been created by the linker and doesn't correspond
+. to any input file. *}
+.#define BFD_LINKER_CREATED 0x1000
+.
+. {* This may be set before writing out a BFD to request that it
+. be written using values for UIDs, GIDs, timestamps, etc. that
+. will be consistent from run to run. *}
+.#define BFD_DETERMINISTIC_OUTPUT 0x2000
+.
+. {* Compress sections in this BFD. *}
+.#define BFD_COMPRESS 0x4000
+.
+. {* Decompress sections in this BFD. *}
+.#define BFD_DECOMPRESS 0x8000
+.
+. {* BFD is a dummy, for plugins. *}
+.#define BFD_PLUGIN 0x10000
+.
+. {* Flags bits to be saved in bfd_preserve_save. *}
+.#define BFD_FLAGS_SAVED \
+. (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_PLUGIN)
+.
+. {* Flags bits which are for BFD use only. *}
+.#define BFD_FLAGS_FOR_BFD_USE_MASK \
+. (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \
+. | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT)
+.
+. {* Is the file descriptor being cached? That is, can it be closed as
+. needed, and re-opened when accessed later? *}
+. unsigned int cacheable : 1;
+.
+. {* Marks whether there was a default target specified when the
+. BFD was opened. This is used to select which matching algorithm
+. to use to choose the back end. *}
+. unsigned int target_defaulted : 1;
+.
+. {* ... and here: (``once'' means at least once). *}
+. unsigned int opened_once : 1;
+.
+. {* Set if we have a locally maintained mtime value, rather than
+. getting it from the file each time. *}
+. unsigned int mtime_set : 1;
+.
+. {* Flag set if symbols from this BFD should not be exported. *}
+. unsigned int no_export : 1;
+.
+. {* Remember when output has begun, to stop strange things
+. from happening. *}
+. unsigned int output_has_begun : 1;
+.
+. {* Have archive map. *}
+. unsigned int has_armap : 1;
+.
+. {* Set if this is a thin archive. *}
+. unsigned int is_thin_archive : 1;
+.
+. {* Set if only required symbols should be added in the link hash table for
+. this object. Used by VMS linkers. *}
+. unsigned int selective_search : 1;
+.
+. {* Set if this is the linker output BFD. *}
+. unsigned int is_linker_output : 1;