summaryrefslogtreecommitdiff
path: root/bfd/elf-bfd.h
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r--bfd/elf-bfd.h18
1 files changed, 13 insertions, 5 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 83958e41e07..79b9dbc1807 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -1887,21 +1887,27 @@ struct elf_obj_tdata
/* An identifier used to distinguish different target
specific extensions to this structure. */
- enum elf_target_id object_id;
+ ENUM_BITFIELD (elf_target_id) object_id : 6;
/* Whether a dyanmic object was specified normally on the linker
command line, or was specified when --as-needed was in effect,
or was found via a DT_NEEDED entry. */
- enum dynamic_lib_link_class dyn_lib_class;
+ ENUM_BITFIELD (dynamic_lib_link_class) dyn_lib_class : 4;
+
+ /* Whether if the bfd contains symbols that have the STT_GNU_IFUNC
+ symbol type or STB_GNU_UNIQUE binding. */
+ ENUM_BITFIELD (elf_gnu_symbols) has_gnu_symbols : 3;
+
+ /* Whether if the bfd contains the GNU_PROPERTY_NO_COPY_ON_PROTECTED
+ property. */
+ unsigned int has_no_copy_on_protected : 1;
/* Irix 5 often screws up the symbol table, sorting local symbols
after global symbols. This flag is set if the symbol table in
this BFD appears to be screwed up. If it is, we ignore the
sh_info field in the symbol table header, and always read all the
symbols. */
- bfd_boolean bad_symtab;
-
- enum elf_gnu_symbols has_gnu_symbols;
+ unsigned int bad_symtab : 1;
/* Information grabbed from an elf core file. */
struct core_elf_obj_tdata *core;
@@ -1956,6 +1962,8 @@ struct elf_obj_tdata
#define elf_other_obj_attributes_proc(bfd) \
(elf_other_obj_attributes (bfd) [OBJ_ATTR_PROC])
#define elf_properties(bfd) (elf_tdata (bfd) -> properties)
+#define elf_has_no_copy_on_protected(bfd) \
+ (elf_tdata(bfd) -> has_no_copy_on_protected)
extern void _bfd_elf_swap_verdef_in
(bfd *, const Elf_External_Verdef *, Elf_Internal_Verdef *);