Add output_type to bfd_link_info
[deliverable/binutils-gdb.git] / include / bfdlink.h
index b9dc139d8fe1fb27aa8ad5af45e93eedaef43442..797a4650e85a6f587e3c9deb4327f01174328764 100644 (file)
@@ -259,22 +259,32 @@ struct flag_info
 struct bfd_elf_dynamic_list;
 struct bfd_elf_version_tree;
 
+/* Types of output.  */
+
+enum output_type
+{
+  type_executable = 0,
+  type_dll,
+  type_relocatable
+};
+
+#define bfd_link_executable(info)  ((info)->type == type_executable)
+#define bfd_link_dll(info)        ((info)->type == type_dll)
+#define bfd_link_relocatable(info) ((info)->type == type_relocatable)
+#define bfd_link_pic(info)        (info)->pic
+#define bfd_link_pie(info)        (bfd_link_executable (info) \
+                                   && bfd_link_pic (info))
+
 /* This structure holds all the information needed to communicate
    between BFD and the linker when doing a link.  */
 
 struct bfd_link_info
 {
-  /* TRUE if BFD should generate a shared object (or a pie).  */
-  unsigned int shared: 1;
-
-  /* TRUE if generating an executable, position independent or not.  */
-  unsigned int executable : 1;
-
-  /* TRUE if generating a position independent executable.  */
-  unsigned int pie: 1;
+  /* Output type.  */
+  ENUM_BITFIELD (output_type) type : 2;
 
-  /* TRUE if BFD should generate a relocatable object file.  */
-  unsigned int relocatable: 1;
+  /* TRUE if BFD should generate a position independent object.  */
+  unsigned int pic : 1;
 
   /* TRUE if BFD should pre-bind symbols in a shared object.  */
   unsigned int symbolic: 1;
This page took 0.028379 seconds and 4 git commands to generate.