summaryrefslogtreecommitdiff
path: root/ld/pep-dll.h
diff options
context:
space:
mode:
authorDave Korn <dave.korn@artimi.com>2009-01-03 18:04:16 +0000
committerDave Korn <dave.korn@artimi.com>2009-01-03 18:04:16 +0000
commite1c37eb57ebf5a431a508918321a1f07fc3025ac (patch)
tree1c0e7f13e930c5711dedf5f40a7567ebd84ac99c /ld/pep-dll.h
parentb4f8c801a1170949157e08f5d7c8ca5bd4b22804 (diff)
downloadbinutils-gdb-e1c37eb57ebf5a431a508918321a1f07fc3025ac.tar.gz
* NEWS: Mention new feature --exclude-modules-for-implib.
* ld.texinfo: Document new --exclude-modules-for-implib option. * pe-dll.c (exclude_list_struct): Change type member from int to new enumeration exclude_type. (pe_dll_add_excludes): Accept exclude_type instead of int param. (auto_export): Replace magic constants by exclude_type values and handle new choice EXCLUDEFORIMPLIB. (pe_dll_generate_implib): Accept a pointer to the link_info and iterate all input BFDs looking for EXCLUDEFORIMPLIB modules; re-open fresh BFDs for any found and link into import lib archive chain. * pe-dll.h (exclude_type): Add new enumerated type to replace magic constants previously used for exclude_list_struct type member. (pe_dll_add_excludes, pe_dll_generate_implib): Update prototypes. * pep-dll.h (exclude_type, pe_dll_add_excludes, pe_dll_generate_implib): Likewise to all the above. * emultempl/pe.em (OPTION_EXCLUDE_MODULES_FOR_IMPLIB): Define new getopts long option code for new --exclude-modules-for-implib option. (gld${EMULATION_NAME}_add_options): Add new entry to xtra_long[]. (gld_${EMULATION_NAME}_list_options): List usage for it. (gld${EMULATION_NAME}_handle_option): Use exclude_type enumerated values when calling pe_dll_add_excludes, and handle EXCLUDEFORIMPLIB. (gld_${EMULATION_NAME}_finish): Pass pointer to link_info when calling pe_dll_generate_implib. * emultempl/pep.em (options): Define new enumerated value for getopts long option code for new --exclude-modules-for-implib option. (gld${EMULATION_NAME}_add_options, gld_${EMULATION_NAME}_list_options, gld${EMULATION_NAME}_handle_option, gld_${EMULATION_NAME}_finish): Again, likewise to all the above.
Diffstat (limited to 'ld/pep-dll.h')
-rw-r--r--ld/pep-dll.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/ld/pep-dll.h b/ld/pep-dll.h
index ae0dcbe9d83..5d09658894f 100644
--- a/ld/pep-dll.h
+++ b/ld/pep-dll.h
@@ -36,10 +36,12 @@ extern int pep_dll_warn_dup_exports;
extern int pep_dll_compat_implib;
extern int pep_dll_extra_pe_debug;
+typedef enum { EXCLUDESYMS, EXCLUDELIBS, EXCLUDEFORIMPLIB } exclude_type;
+
extern void pep_dll_id_target (const char *);
-extern void pep_dll_add_excludes (const char *, const int);
+extern void pep_dll_add_excludes (const char *, const exclude_type);
extern void pep_dll_generate_def_file (const char *);
-extern void pep_dll_generate_implib (def_file *, const char *);
+extern void pep_dll_generate_implib (def_file *, const char *, struct bfd_link_info *);
extern void pep_process_import_defs (bfd *, struct bfd_link_info *);
extern bfd_boolean pep_implied_import_dll (const char *);
extern void pep_dll_build_sections (bfd *, struct bfd_link_info *);