Subversion Repositories Kolibri OS

Rev

Rev 5199 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /* pe-dll.h: Header file for routines used to build Windows DLLs.
  2.    Copyright (C) 1999-2015 Free Software Foundation, Inc.
  3.  
  4.    This file is part of the GNU Binutils.
  5.  
  6.    This program is free software; you can redistribute it and/or modify
  7.    it under the terms of the GNU General Public License as published by
  8.    the Free Software Foundation; either version 3 of the License, or
  9.    (at your option) any later version.
  10.  
  11.    This program is distributed in the hope that it will be useful,
  12.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.    GNU General Public License for more details.
  15.  
  16.    You should have received a copy of the GNU General Public License
  17.    along with this program; if not, write to the Free Software
  18.    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
  19.    MA 02110-1301, USA.  */
  20.  
  21. #ifndef PE_DLL_H
  22. #define PE_DLL_H
  23.  
  24. #include "sysdep.h"
  25. #include "bfd.h"
  26. #include "bfdlink.h"
  27. #include "deffile.h"
  28.  
  29. extern def_file *pe_def_file;
  30. extern int pe_dll_export_everything;
  31. extern int pe_dll_exclude_all_symbols;
  32. extern int pe_dll_do_default_excludes;
  33. extern int pe_dll_kill_ats;
  34. extern int pe_dll_stdcall_aliases;
  35. extern int pe_dll_warn_dup_exports;
  36. extern int pe_dll_compat_implib;
  37. extern int pe_dll_extra_pe_debug;
  38. extern int pe_use_nul_prefixed_import_tables;
  39. extern int pe_use_coff_long_section_names;
  40. extern int pe_leading_underscore;
  41.  
  42. typedef enum { EXCLUDESYMS, EXCLUDELIBS, EXCLUDEFORIMPLIB } exclude_type;
  43.  
  44. extern void pe_dll_id_target
  45.   (const char *);
  46. extern void pe_dll_add_excludes
  47.   (const char *, const exclude_type);
  48. extern void pe_dll_generate_def_file
  49.   (const char *);
  50. extern void pe_dll_generate_implib
  51.   (def_file *, const char *, struct bfd_link_info *);
  52. extern void pe_process_import_defs
  53.   (bfd *, struct bfd_link_info *);
  54. extern bfd_boolean pe_implied_import_dll
  55.   (const char *);
  56. extern void pe_dll_build_sections
  57.   (bfd *, struct bfd_link_info *);
  58. extern void pe_exe_build_sections
  59.   (bfd *, struct bfd_link_info *);
  60. extern void pe_dll_fill_sections
  61.   (bfd *, struct bfd_link_info *);
  62. extern void pe_exe_fill_sections
  63.   (bfd *, struct bfd_link_info *);
  64. extern void pe_walk_relocs_of_symbol
  65.   (struct bfd_link_info *, const char *, int (*) (arelent *, asection *));
  66. extern void pe_create_import_fixup
  67.   (arelent * rel, asection *, bfd_vma);
  68. extern bfd_boolean pe_bfd_is_dll
  69.   (bfd *);
  70. extern void pe_output_file_set_long_section_names
  71.   (bfd *);
  72.  
  73. #endif /* PE_DLL_H */
  74.