175fd0b74Schristos /* pep-dll.h: Header file for routines used to build Windows DLLs. 2*e992f068Schristos Copyright (C) 2006-2022 Free Software Foundation, Inc. 375fd0b74Schristos Written by Kai Tietz, OneVision Software GmbH&CoKg. 475fd0b74Schristos 575fd0b74Schristos This file is part of the GNU Binutils. 675fd0b74Schristos 775fd0b74Schristos This program is free software; you can redistribute it and/or modify 875fd0b74Schristos it under the terms of the GNU General Public License as published by 975fd0b74Schristos the Free Software Foundation; either version 3 of the License, or 1075fd0b74Schristos (at your option) any later version. 1175fd0b74Schristos 1275fd0b74Schristos This program is distributed in the hope that it will be useful, 1375fd0b74Schristos but WITHOUT ANY WARRANTY; without even the implied warranty of 1475fd0b74Schristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1575fd0b74Schristos GNU General Public License for more details. 1675fd0b74Schristos 1775fd0b74Schristos You should have received a copy of the GNU General Public License 1875fd0b74Schristos along with this program; if not, write to the Free Software 1975fd0b74Schristos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 2075fd0b74Schristos MA 02110-1301, USA. */ 2175fd0b74Schristos 2275fd0b74Schristos #ifndef PEP_DLL_H 2375fd0b74Schristos #define PEP_DLL_H 2475fd0b74Schristos 2575fd0b74Schristos #include "sysdep.h" 2675fd0b74Schristos #include "bfd.h" 2775fd0b74Schristos #include "bfdlink.h" 2875fd0b74Schristos #include "deffile.h" 2975fd0b74Schristos 3075fd0b74Schristos extern def_file * pep_def_file; 3175fd0b74Schristos extern int pep_dll_export_everything; 3275fd0b74Schristos extern int pep_dll_exclude_all_symbols; 3375fd0b74Schristos extern int pep_dll_do_default_excludes; 3475fd0b74Schristos extern int pep_dll_kill_ats; 3575fd0b74Schristos extern int pep_dll_stdcall_aliases; 3675fd0b74Schristos extern int pep_dll_warn_dup_exports; 3775fd0b74Schristos extern int pep_dll_compat_implib; 3875fd0b74Schristos extern int pep_dll_extra_pe_debug; 3975fd0b74Schristos extern int pep_use_nul_prefixed_import_tables; 4075fd0b74Schristos extern int pep_use_coff_long_section_names; 4175fd0b74Schristos extern int pep_leading_underscore; 42012573ebSchristos extern int pep_dll_enable_reloc_section; 4375fd0b74Schristos 4475fd0b74Schristos typedef enum { EXCLUDESYMS, EXCLUDELIBS, EXCLUDEFORIMPLIB } exclude_type; 4575fd0b74Schristos 4675fd0b74Schristos extern void pep_dll_id_target (const char *); 4775fd0b74Schristos extern void pep_dll_add_excludes (const char *, const exclude_type); 4875fd0b74Schristos extern void pep_dll_generate_def_file (const char *); 4975fd0b74Schristos extern void pep_dll_generate_implib (def_file *, const char *, struct bfd_link_info *); 5075fd0b74Schristos extern void pep_process_import_defs (bfd *, struct bfd_link_info *); 51*e992f068Schristos extern bool pep_implied_import_dll (const char *); 5275fd0b74Schristos extern void pep_dll_build_sections (bfd *, struct bfd_link_info *); 5375fd0b74Schristos extern void pep_exe_build_sections (bfd *, struct bfd_link_info *); 5475fd0b74Schristos extern void pep_dll_fill_sections (bfd *, struct bfd_link_info *); 5575fd0b74Schristos extern void pep_exe_fill_sections (bfd *, struct bfd_link_info *); 56ede78133Schristos extern void pep_find_data_imports (const char *, 57ede78133Schristos void (*cb) (arelent *, asection *, char *, 58ede78133Schristos const char *)); 59ede78133Schristos extern void pep_create_import_fixup (arelent * rel, asection *, bfd_vma, 60ede78133Schristos char *, const char *); 61*e992f068Schristos extern bool pep_bfd_is_dll (bfd *); 6275fd0b74Schristos extern void pep_output_file_set_long_section_names (bfd *); 6375fd0b74Schristos 6475fd0b74Schristos #endif /* PEP_DLL_H */ 65