160484Sobrien/* pe-dll.h: Header file for routines used to build Windows DLLs.
2218822Sdim   Copyright 1999, 2000, 2001, 2002, 2003, 2007
3218822Sdim   Free Software Foundation, Inc.
460484Sobrien
560484Sobrien   This file is part of GLD, the Gnu Linker.
660484Sobrien
760484Sobrien   GLD is free software; you can redistribute it and/or modify
860484Sobrien   it under the terms of the GNU General Public License as published by
960484Sobrien   the Free Software Foundation; either version 2, or (at your option)
1060484Sobrien   any later version.
1160484Sobrien
1260484Sobrien   GLD is distributed in the hope that it will be useful,
1360484Sobrien   but WITHOUT ANY WARRANTY; without even the implied warranty of
1460484Sobrien   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1560484Sobrien   GNU General Public License for more details.
1660484Sobrien
1760484Sobrien   You should have received a copy of the GNU General Public License
1860484Sobrien   along with GLD; see the file COPYING.  If not, write to the Free
19218822Sdim   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
20218822Sdim   02110-1301, USA.  */
2160484Sobrien
2260484Sobrien#ifndef PE_DLL_H
2360484Sobrien#define PE_DLL_H
2460484Sobrien
25218822Sdim#include "sysdep.h"
2660484Sobrien#include "bfd.h"
2760484Sobrien#include "bfdlink.h"
2860484Sobrien#include "deffile.h"
2960484Sobrien
3060484Sobrienextern def_file *pe_def_file;
3160484Sobrienextern int pe_dll_export_everything;
3260484Sobrienextern int pe_dll_do_default_excludes;
3360484Sobrienextern int pe_dll_kill_ats;
3460484Sobrienextern int pe_dll_stdcall_aliases;
3560484Sobrienextern int pe_dll_warn_dup_exports;
3660484Sobrienextern int pe_dll_compat_implib;
3789857Sobrienextern int pe_dll_extra_pe_debug;
3860484Sobrien
39130561Sobrienextern void pe_dll_id_target
40130561Sobrien  (const char *);
41130561Sobrienextern void pe_dll_add_excludes
42130561Sobrien  (const char *, const int);
43130561Sobrienextern void pe_dll_generate_def_file
44130561Sobrien  (const char *);
45130561Sobrienextern void pe_dll_generate_implib
46130561Sobrien  (def_file *, const char *);
47130561Sobrienextern void pe_process_import_defs
48130561Sobrien  (bfd *, struct bfd_link_info *);
49130561Sobrienextern bfd_boolean pe_implied_import_dll
50130561Sobrien  (const char *);
51130561Sobrienextern void pe_dll_build_sections
52130561Sobrien  (bfd *, struct bfd_link_info *);
53130561Sobrienextern void pe_exe_build_sections
54130561Sobrien  (bfd *, struct bfd_link_info *);
55130561Sobrienextern void pe_dll_fill_sections
56130561Sobrien  (bfd *, struct bfd_link_info *);
57130561Sobrienextern void pe_exe_fill_sections
58130561Sobrien  (bfd *, struct bfd_link_info *);
59130561Sobrienextern void pe_walk_relocs_of_symbol
60130561Sobrien  (struct bfd_link_info *, const char *, int (*) (arelent *, asection *));
61130561Sobrienextern void pe_create_import_fixup
62130561Sobrien  (arelent * rel, asection *, int);
63218822Sdimextern bfd_boolean pe_bfd_is_dll
64218822Sdim  (bfd *);
65218822Sdim
6660484Sobrien#endif /* PE_DLL_H */
67