diff options
Diffstat (limited to 'include/bfdlink.h')
-rw-r--r-- | include/bfdlink.h | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/include/bfdlink.h b/include/bfdlink.h index b9dc139..797a465 100644 --- a/include/bfdlink.h +++ b/include/bfdlink.h @@ -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; |