Subversion Repositories Kolibri OS

Rev

Rev 5199 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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