1 |
35 |
ultra_embe |
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
|
2 |
|
|
.\"
|
3 |
|
|
.\" Standard preamble:
|
4 |
|
|
.\" ========================================================================
|
5 |
|
|
.de Sp \" Vertical space (when we can't use .PP)
|
6 |
|
|
.if t .sp .5v
|
7 |
|
|
.if n .sp
|
8 |
|
|
..
|
9 |
|
|
.de Vb \" Begin verbatim text
|
10 |
|
|
.ft CW
|
11 |
|
|
.nf
|
12 |
|
|
.ne \\$1
|
13 |
|
|
..
|
14 |
|
|
.de Ve \" End verbatim text
|
15 |
|
|
.ft R
|
16 |
|
|
.fi
|
17 |
|
|
..
|
18 |
|
|
.\" Set up some character translations and predefined strings. \*(-- will
|
19 |
|
|
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
20 |
|
|
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
|
21 |
|
|
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
|
22 |
|
|
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
|
23 |
|
|
.\" nothing in troff, for use with C<>.
|
24 |
|
|
.tr \(*W-
|
25 |
|
|
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
26 |
|
|
.ie n \{\
|
27 |
|
|
. ds -- \(*W-
|
28 |
|
|
. ds PI pi
|
29 |
|
|
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
30 |
|
|
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
31 |
|
|
. ds L" ""
|
32 |
|
|
. ds R" ""
|
33 |
|
|
. ds C` ""
|
34 |
|
|
. ds C' ""
|
35 |
|
|
'br\}
|
36 |
|
|
.el\{\
|
37 |
|
|
. ds -- \|\(em\|
|
38 |
|
|
. ds PI \(*p
|
39 |
|
|
. ds L" ``
|
40 |
|
|
. ds R" ''
|
41 |
|
|
'br\}
|
42 |
|
|
.\"
|
43 |
|
|
.\" Escape single quotes in literal strings from groff's Unicode transform.
|
44 |
|
|
.ie \n(.g .ds Aq \(aq
|
45 |
|
|
.el .ds Aq '
|
46 |
|
|
.\"
|
47 |
|
|
.\" If the F register is turned on, we'll generate index entries on stderr for
|
48 |
|
|
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
49 |
|
|
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
50 |
|
|
.\" output yourself in some meaningful fashion.
|
51 |
|
|
.ie \nF \{\
|
52 |
|
|
. de IX
|
53 |
|
|
. tm Index:\\$1\t\\n%\t"\\$2"
|
54 |
|
|
..
|
55 |
|
|
. nr % 0
|
56 |
|
|
. rr F
|
57 |
|
|
.\}
|
58 |
|
|
.el \{\
|
59 |
|
|
. de IX
|
60 |
|
|
..
|
61 |
|
|
.\}
|
62 |
|
|
.\"
|
63 |
|
|
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
64 |
|
|
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
65 |
|
|
. \" fudge factors for nroff and troff
|
66 |
|
|
.if n \{\
|
67 |
|
|
. ds #H 0
|
68 |
|
|
. ds #V .8m
|
69 |
|
|
. ds #F .3m
|
70 |
|
|
. ds #[ \f1
|
71 |
|
|
. ds #] \fP
|
72 |
|
|
.\}
|
73 |
|
|
.if t \{\
|
74 |
|
|
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
75 |
|
|
. ds #V .6m
|
76 |
|
|
. ds #F 0
|
77 |
|
|
. ds #[ \&
|
78 |
|
|
. ds #] \&
|
79 |
|
|
.\}
|
80 |
|
|
. \" simple accents for nroff and troff
|
81 |
|
|
.if n \{\
|
82 |
|
|
. ds ' \&
|
83 |
|
|
. ds ` \&
|
84 |
|
|
. ds ^ \&
|
85 |
|
|
. ds , \&
|
86 |
|
|
. ds ~ ~
|
87 |
|
|
. ds /
|
88 |
|
|
.\}
|
89 |
|
|
.if t \{\
|
90 |
|
|
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
91 |
|
|
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
92 |
|
|
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
93 |
|
|
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
94 |
|
|
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
95 |
|
|
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
96 |
|
|
.\}
|
97 |
|
|
. \" troff and (daisy-wheel) nroff accents
|
98 |
|
|
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
99 |
|
|
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
100 |
|
|
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
101 |
|
|
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
102 |
|
|
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
103 |
|
|
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
104 |
|
|
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
105 |
|
|
.ds ae a\h'-(\w'a'u*4/10)'e
|
106 |
|
|
.ds Ae A\h'-(\w'A'u*4/10)'E
|
107 |
|
|
. \" corrections for vroff
|
108 |
|
|
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
109 |
|
|
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
110 |
|
|
. \" for low resolution devices (crt and lpr)
|
111 |
|
|
.if \n(.H>23 .if \n(.V>19 \
|
112 |
|
|
\{\
|
113 |
|
|
. ds : e
|
114 |
|
|
. ds 8 ss
|
115 |
|
|
. ds o a
|
116 |
|
|
. ds d- d\h'-1'\(ga
|
117 |
|
|
. ds D- D\h'-1'\(hy
|
118 |
|
|
. ds th \o'bp'
|
119 |
|
|
. ds Th \o'LP'
|
120 |
|
|
. ds ae ae
|
121 |
|
|
. ds Ae AE
|
122 |
|
|
.\}
|
123 |
|
|
.rm #[ #] #H #V #F C
|
124 |
|
|
.\" ========================================================================
|
125 |
|
|
.\"
|
126 |
|
|
.IX Title "DLLTOOL 1"
|
127 |
|
|
.TH DLLTOOL 1 "2013-04-23" "binutils-2.23.51" "GNU Development Tools"
|
128 |
|
|
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
129 |
|
|
.\" way too many mistakes in technical documents.
|
130 |
|
|
.if n .ad l
|
131 |
|
|
.nh
|
132 |
|
|
.SH "NAME"
|
133 |
|
|
dlltool \- Create files needed to build and use DLLs.
|
134 |
|
|
.SH "SYNOPSIS"
|
135 |
|
|
.IX Header "SYNOPSIS"
|
136 |
|
|
dlltool [\fB\-d\fR|\fB\-\-input\-def\fR \fIdef-file-name\fR]
|
137 |
|
|
[\fB\-b\fR|\fB\-\-base\-file\fR \fIbase-file-name\fR]
|
138 |
|
|
[\fB\-e\fR|\fB\-\-output\-exp\fR \fIexports-file-name\fR]
|
139 |
|
|
[\fB\-z\fR|\fB\-\-output\-def\fR \fIdef-file-name\fR]
|
140 |
|
|
[\fB\-l\fR|\fB\-\-output\-lib\fR \fIlibrary-file-name\fR]
|
141 |
|
|
[\fB\-y\fR|\fB\-\-output\-delaylib\fR \fIlibrary-file-name\fR]
|
142 |
|
|
[\fB\-\-export\-all\-symbols\fR] [\fB\-\-no\-export\-all\-symbols\fR]
|
143 |
|
|
[\fB\-\-exclude\-symbols\fR \fIlist\fR]
|
144 |
|
|
[\fB\-\-no\-default\-excludes\fR]
|
145 |
|
|
[\fB\-S\fR|\fB\-\-as\fR \fIpath-to-assembler\fR] [\fB\-f\fR|\fB\-\-as\-flags\fR \fIoptions\fR]
|
146 |
|
|
[\fB\-D\fR|\fB\-\-dllname\fR \fIname\fR] [\fB\-m\fR|\fB\-\-machine\fR \fImachine\fR]
|
147 |
|
|
[\fB\-a\fR|\fB\-\-add\-indirect\fR]
|
148 |
|
|
[\fB\-U\fR|\fB\-\-add\-underscore\fR] [\fB\-\-add\-stdcall\-underscore\fR]
|
149 |
|
|
[\fB\-k\fR|\fB\-\-kill\-at\fR] [\fB\-A\fR|\fB\-\-add\-stdcall\-alias\fR]
|
150 |
|
|
[\fB\-p\fR|\fB\-\-ext\-prefix\-alias\fR \fIprefix\fR]
|
151 |
|
|
[\fB\-x\fR|\fB\-\-no\-idata4\fR] [\fB\-c\fR|\fB\-\-no\-idata5\fR]
|
152 |
|
|
[\fB\-\-use\-nul\-prefixed\-import\-tables\fR]
|
153 |
|
|
[\fB\-I\fR|\fB\-\-identify\fR \fIlibrary-file-name\fR] [\fB\-\-identify\-strict\fR]
|
154 |
|
|
[\fB\-i\fR|\fB\-\-interwork\fR]
|
155 |
|
|
[\fB\-n\fR|\fB\-\-nodelete\fR] [\fB\-t\fR|\fB\-\-temp\-prefix\fR \fIprefix\fR]
|
156 |
|
|
[\fB\-v\fR|\fB\-\-verbose\fR]
|
157 |
|
|
[\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
|
158 |
|
|
[\fB\-\-no\-leading\-underscore\fR] [\fB\-\-leading\-underscore\fR]
|
159 |
|
|
[object\-file ...]
|
160 |
|
|
.SH "DESCRIPTION"
|
161 |
|
|
.IX Header "DESCRIPTION"
|
162 |
|
|
\&\fBdlltool\fR reads its inputs, which can come from the \fB\-d\fR and
|
163 |
|
|
\&\fB\-b\fR options as well as object files specified on the command
|
164 |
|
|
line. It then processes these inputs and if the \fB\-e\fR option has
|
165 |
|
|
been specified it creates a exports file. If the \fB\-l\fR option
|
166 |
|
|
has been specified it creates a library file and if the \fB\-z\fR option
|
167 |
|
|
has been specified it creates a def file. Any or all of the \fB\-e\fR,
|
168 |
|
|
\&\fB\-l\fR and \fB\-z\fR options can be present in one invocation of
|
169 |
|
|
dlltool.
|
170 |
|
|
.PP
|
171 |
|
|
When creating a \s-1DLL\s0, along with the source for the \s-1DLL\s0, it is necessary
|
172 |
|
|
to have three other files. \fBdlltool\fR can help with the creation of
|
173 |
|
|
these files.
|
174 |
|
|
.PP
|
175 |
|
|
The first file is a \fI.def\fR file which specifies which functions are
|
176 |
|
|
exported from the \s-1DLL\s0, which functions the \s-1DLL\s0 imports, and so on. This
|
177 |
|
|
is a text file and can be created by hand, or \fBdlltool\fR can be used
|
178 |
|
|
to create it using the \fB\-z\fR option. In this case \fBdlltool\fR
|
179 |
|
|
will scan the object files specified on its command line looking for
|
180 |
|
|
those functions which have been specially marked as being exported and
|
181 |
|
|
put entries for them in the \fI.def\fR file it creates.
|
182 |
|
|
.PP
|
183 |
|
|
In order to mark a function as being exported from a \s-1DLL\s0, it needs to
|
184 |
|
|
have an \fB\-export:\fR entry in the \fB.drectve\fR
|
185 |
|
|
section of the object file. This can be done in C by using the
|
186 |
|
|
\&\fIasm()\fR operator:
|
187 |
|
|
.PP
|
188 |
|
|
.Vb 2
|
189 |
|
|
\& asm (".section .drectve");
|
190 |
|
|
\& asm (".ascii \e"\-export:my_func\e"");
|
191 |
|
|
\&
|
192 |
|
|
\& int my_func (void) { ... }
|
193 |
|
|
.Ve
|
194 |
|
|
.PP
|
195 |
|
|
The second file needed for \s-1DLL\s0 creation is an exports file. This file
|
196 |
|
|
is linked with the object files that make up the body of the \s-1DLL\s0 and it
|
197 |
|
|
handles the interface between the \s-1DLL\s0 and the outside world. This is a
|
198 |
|
|
binary file and it can be created by giving the \fB\-e\fR option to
|
199 |
|
|
\&\fBdlltool\fR when it is creating or reading in a \fI.def\fR file.
|
200 |
|
|
.PP
|
201 |
|
|
The third file needed for \s-1DLL\s0 creation is the library file that programs
|
202 |
|
|
will link with in order to access the functions in the \s-1DLL\s0 (an `import
|
203 |
|
|
library'). This file can be created by giving the \fB\-l\fR option to
|
204 |
|
|
dlltool when it is creating or reading in a \fI.def\fR file.
|
205 |
|
|
.PP
|
206 |
|
|
If the \fB\-y\fR option is specified, dlltool generates a delay-import
|
207 |
|
|
library that can be used instead of the normal import library to allow
|
208 |
|
|
a program to link to the dll only as soon as an imported function is
|
209 |
|
|
called for the first time. The resulting executable will need to be
|
210 |
|
|
linked to the static delayimp library containing _\|\fI_delayLoadHelper2()\fR,
|
211 |
|
|
which in turn will import LoadLibraryA and GetProcAddress from kernel32.
|
212 |
|
|
.PP
|
213 |
|
|
\&\fBdlltool\fR builds the library file by hand, but it builds the
|
214 |
|
|
exports file by creating temporary files containing assembler statements
|
215 |
|
|
and then assembling these. The \fB\-S\fR command line option can be
|
216 |
|
|
used to specify the path to the assembler that dlltool will use,
|
217 |
|
|
and the \fB\-f\fR option can be used to pass specific flags to that
|
218 |
|
|
assembler. The \fB\-n\fR can be used to prevent dlltool from deleting
|
219 |
|
|
these temporary assembler files when it is done, and if \fB\-n\fR is
|
220 |
|
|
specified twice then this will prevent dlltool from deleting the
|
221 |
|
|
temporary object files it used to build the library.
|
222 |
|
|
.PP
|
223 |
|
|
Here is an example of creating a \s-1DLL\s0 from a source file \fBdll.c\fR and
|
224 |
|
|
also creating a program (from an object file called \fBprogram.o\fR)
|
225 |
|
|
that uses that \s-1DLL:\s0
|
226 |
|
|
.PP
|
227 |
|
|
.Vb 4
|
228 |
|
|
\& gcc \-c dll.c
|
229 |
|
|
\& dlltool \-e exports.o \-l dll.lib dll.o
|
230 |
|
|
\& gcc dll.o exports.o \-o dll.dll
|
231 |
|
|
\& gcc program.o dll.lib \-o program
|
232 |
|
|
.Ve
|
233 |
|
|
.PP
|
234 |
|
|
\&\fBdlltool\fR may also be used to query an existing import library
|
235 |
|
|
to determine the name of the \s-1DLL\s0 to which it is associated. See the
|
236 |
|
|
description of the \fB\-I\fR or \fB\-\-identify\fR option.
|
237 |
|
|
.SH "OPTIONS"
|
238 |
|
|
.IX Header "OPTIONS"
|
239 |
|
|
The command line options have the following meanings:
|
240 |
|
|
.IP "\fB\-d\fR \fIfilename\fR" 4
|
241 |
|
|
.IX Item "-d filename"
|
242 |
|
|
.PD 0
|
243 |
|
|
.IP "\fB\-\-input\-def\fR \fIfilename\fR" 4
|
244 |
|
|
.IX Item "--input-def filename"
|
245 |
|
|
.PD
|
246 |
|
|
Specifies the name of a \fI.def\fR file to be read in and processed.
|
247 |
|
|
.IP "\fB\-b\fR \fIfilename\fR" 4
|
248 |
|
|
.IX Item "-b filename"
|
249 |
|
|
.PD 0
|
250 |
|
|
.IP "\fB\-\-base\-file\fR \fIfilename\fR" 4
|
251 |
|
|
.IX Item "--base-file filename"
|
252 |
|
|
.PD
|
253 |
|
|
Specifies the name of a base file to be read in and processed. The
|
254 |
|
|
contents of this file will be added to the relocation section in the
|
255 |
|
|
exports file generated by dlltool.
|
256 |
|
|
.IP "\fB\-e\fR \fIfilename\fR" 4
|
257 |
|
|
.IX Item "-e filename"
|
258 |
|
|
.PD 0
|
259 |
|
|
.IP "\fB\-\-output\-exp\fR \fIfilename\fR" 4
|
260 |
|
|
.IX Item "--output-exp filename"
|
261 |
|
|
.PD
|
262 |
|
|
Specifies the name of the export file to be created by dlltool.
|
263 |
|
|
.IP "\fB\-z\fR \fIfilename\fR" 4
|
264 |
|
|
.IX Item "-z filename"
|
265 |
|
|
.PD 0
|
266 |
|
|
.IP "\fB\-\-output\-def\fR \fIfilename\fR" 4
|
267 |
|
|
.IX Item "--output-def filename"
|
268 |
|
|
.PD
|
269 |
|
|
Specifies the name of the \fI.def\fR file to be created by dlltool.
|
270 |
|
|
.IP "\fB\-l\fR \fIfilename\fR" 4
|
271 |
|
|
.IX Item "-l filename"
|
272 |
|
|
.PD 0
|
273 |
|
|
.IP "\fB\-\-output\-lib\fR \fIfilename\fR" 4
|
274 |
|
|
.IX Item "--output-lib filename"
|
275 |
|
|
.PD
|
276 |
|
|
Specifies the name of the library file to be created by dlltool.
|
277 |
|
|
.IP "\fB\-y\fR \fIfilename\fR" 4
|
278 |
|
|
.IX Item "-y filename"
|
279 |
|
|
.PD 0
|
280 |
|
|
.IP "\fB\-\-output\-delaylib\fR \fIfilename\fR" 4
|
281 |
|
|
.IX Item "--output-delaylib filename"
|
282 |
|
|
.PD
|
283 |
|
|
Specifies the name of the delay-import library file to be created by dlltool.
|
284 |
|
|
.IP "\fB\-\-export\-all\-symbols\fR" 4
|
285 |
|
|
.IX Item "--export-all-symbols"
|
286 |
|
|
Treat all global and weak defined symbols found in the input object
|
287 |
|
|
files as symbols to be exported. There is a small list of symbols which
|
288 |
|
|
are not exported by default; see the \fB\-\-no\-default\-excludes\fR
|
289 |
|
|
option. You may add to the list of symbols to not export by using the
|
290 |
|
|
\&\fB\-\-exclude\-symbols\fR option.
|
291 |
|
|
.IP "\fB\-\-no\-export\-all\-symbols\fR" 4
|
292 |
|
|
.IX Item "--no-export-all-symbols"
|
293 |
|
|
Only export symbols explicitly listed in an input \fI.def\fR file or in
|
294 |
|
|
\&\fB.drectve\fR sections in the input object files. This is the default
|
295 |
|
|
behaviour. The \fB.drectve\fR sections are created by \fBdllexport\fR
|
296 |
|
|
attributes in the source code.
|
297 |
|
|
.IP "\fB\-\-exclude\-symbols\fR \fIlist\fR" 4
|
298 |
|
|
.IX Item "--exclude-symbols list"
|
299 |
|
|
Do not export the symbols in \fIlist\fR. This is a list of symbol names
|
300 |
|
|
separated by comma or colon characters. The symbol names should not
|
301 |
|
|
contain a leading underscore. This is only meaningful when
|
302 |
|
|
\&\fB\-\-export\-all\-symbols\fR is used.
|
303 |
|
|
.IP "\fB\-\-no\-default\-excludes\fR" 4
|
304 |
|
|
.IX Item "--no-default-excludes"
|
305 |
|
|
When \fB\-\-export\-all\-symbols\fR is used, it will by default avoid
|
306 |
|
|
exporting certain special symbols. The current list of symbols to avoid
|
307 |
|
|
exporting is \fBDllMain@12\fR, \fBDllEntryPoint@0\fR,
|
308 |
|
|
\&\fBimpure_ptr\fR. You may use the \fB\-\-no\-default\-excludes\fR option
|
309 |
|
|
to go ahead and export these special symbols. This is only meaningful
|
310 |
|
|
when \fB\-\-export\-all\-symbols\fR is used.
|
311 |
|
|
.IP "\fB\-S\fR \fIpath\fR" 4
|
312 |
|
|
.IX Item "-S path"
|
313 |
|
|
.PD 0
|
314 |
|
|
.IP "\fB\-\-as\fR \fIpath\fR" 4
|
315 |
|
|
.IX Item "--as path"
|
316 |
|
|
.PD
|
317 |
|
|
Specifies the path, including the filename, of the assembler to be used
|
318 |
|
|
to create the exports file.
|
319 |
|
|
.IP "\fB\-f\fR \fIoptions\fR" 4
|
320 |
|
|
.IX Item "-f options"
|
321 |
|
|
.PD 0
|
322 |
|
|
.IP "\fB\-\-as\-flags\fR \fIoptions\fR" 4
|
323 |
|
|
.IX Item "--as-flags options"
|
324 |
|
|
.PD
|
325 |
|
|
Specifies any specific command line options to be passed to the
|
326 |
|
|
assembler when building the exports file. This option will work even if
|
327 |
|
|
the \fB\-S\fR option is not used. This option only takes one argument,
|
328 |
|
|
and if it occurs more than once on the command line, then later
|
329 |
|
|
occurrences will override earlier occurrences. So if it is necessary to
|
330 |
|
|
pass multiple options to the assembler they should be enclosed in
|
331 |
|
|
double quotes.
|
332 |
|
|
.IP "\fB\-D\fR \fIname\fR" 4
|
333 |
|
|
.IX Item "-D name"
|
334 |
|
|
.PD 0
|
335 |
|
|
.IP "\fB\-\-dll\-name\fR \fIname\fR" 4
|
336 |
|
|
.IX Item "--dll-name name"
|
337 |
|
|
.PD
|
338 |
|
|
Specifies the name to be stored in the \fI.def\fR file as the name of
|
339 |
|
|
the \s-1DLL\s0 when the \fB\-e\fR option is used. If this option is not
|
340 |
|
|
present, then the filename given to the \fB\-e\fR option will be
|
341 |
|
|
used as the name of the \s-1DLL\s0.
|
342 |
|
|
.IP "\fB\-m\fR \fImachine\fR" 4
|
343 |
|
|
.IX Item "-m machine"
|
344 |
|
|
.PD 0
|
345 |
|
|
.IP "\fB\-machine\fR \fImachine\fR" 4
|
346 |
|
|
.IX Item "-machine machine"
|
347 |
|
|
.PD
|
348 |
|
|
Specifies the type of machine for which the library file should be
|
349 |
|
|
built. \fBdlltool\fR has a built in default type, depending upon how
|
350 |
|
|
it was created, but this option can be used to override that. This is
|
351 |
|
|
normally only useful when creating DLLs for an \s-1ARM\s0 processor, when the
|
352 |
|
|
contents of the \s-1DLL\s0 are actually encode using Thumb instructions.
|
353 |
|
|
.IP "\fB\-a\fR" 4
|
354 |
|
|
.IX Item "-a"
|
355 |
|
|
.PD 0
|
356 |
|
|
.IP "\fB\-\-add\-indirect\fR" 4
|
357 |
|
|
.IX Item "--add-indirect"
|
358 |
|
|
.PD
|
359 |
|
|
Specifies that when \fBdlltool\fR is creating the exports file it
|
360 |
|
|
should add a section which allows the exported functions to be
|
361 |
|
|
referenced without using the import library. Whatever the hell that
|
362 |
|
|
means!
|
363 |
|
|
.IP "\fB\-U\fR" 4
|
364 |
|
|
.IX Item "-U"
|
365 |
|
|
.PD 0
|
366 |
|
|
.IP "\fB\-\-add\-underscore\fR" 4
|
367 |
|
|
.IX Item "--add-underscore"
|
368 |
|
|
.PD
|
369 |
|
|
Specifies that when \fBdlltool\fR is creating the exports file it
|
370 |
|
|
should prepend an underscore to the names of \fIall\fR exported symbols.
|
371 |
|
|
.IP "\fB\-\-no\-leading\-underscore\fR" 4
|
372 |
|
|
.IX Item "--no-leading-underscore"
|
373 |
|
|
.PD 0
|
374 |
|
|
.IP "\fB\-\-leading\-underscore\fR" 4
|
375 |
|
|
.IX Item "--leading-underscore"
|
376 |
|
|
.PD
|
377 |
|
|
Specifies whether standard symbol should be forced to be prefixed, or
|
378 |
|
|
not.
|
379 |
|
|
.IP "\fB\-\-add\-stdcall\-underscore\fR" 4
|
380 |
|
|
.IX Item "--add-stdcall-underscore"
|
381 |
|
|
Specifies that when \fBdlltool\fR is creating the exports file it
|
382 |
|
|
should prepend an underscore to the names of exported \fIstdcall\fR
|
383 |
|
|
functions. Variable names and non-stdcall function names are not modified.
|
384 |
|
|
This option is useful when creating GNU-compatible import libs for third
|
385 |
|
|
party DLLs that were built with MS-Windows tools.
|
386 |
|
|
.IP "\fB\-k\fR" 4
|
387 |
|
|
.IX Item "-k"
|
388 |
|
|
.PD 0
|
389 |
|
|
.IP "\fB\-\-kill\-at\fR" 4
|
390 |
|
|
.IX Item "--kill-at"
|
391 |
|
|
.PD
|
392 |
|
|
Specifies that when \fBdlltool\fR is creating the exports file it
|
393 |
|
|
should not append the string \fB@ \fR. These numbers are
|
394 |
|
|
called ordinal numbers and they represent another way of accessing the
|
395 |
|
|
function in a \s-1DLL\s0, other than by name.
|
396 |
|
|
.IP "\fB\-A\fR" 4
|
397 |
|
|
.IX Item "-A"
|
398 |
|
|
.PD 0
|
399 |
|
|
.IP "\fB\-\-add\-stdcall\-alias\fR" 4
|
400 |
|
|
.IX Item "--add-stdcall-alias"
|
401 |
|
|
.PD
|
402 |
|
|
Specifies that when \fBdlltool\fR is creating the exports file it
|
403 |
|
|
should add aliases for stdcall symbols without \fB@ \fR
|
404 |
|
|
in addition to the symbols with \fB@ \fR.
|
405 |
|
|
.IP "\fB\-p\fR" 4
|
406 |
|
|
.IX Item "-p"
|
407 |
|
|
.PD 0
|
408 |
|
|
.IP "\fB\-\-ext\-prefix\-alias\fR \fIprefix\fR" 4
|
409 |
|
|
.IX Item "--ext-prefix-alias prefix"
|
410 |
|
|
.PD
|
411 |
|
|
Causes \fBdlltool\fR to create external aliases for all \s-1DLL\s0
|
412 |
|
|
imports with the specified prefix. The aliases are created for both
|
413 |
|
|
external and import symbols with no leading underscore.
|
414 |
|
|
.IP "\fB\-x\fR" 4
|
415 |
|
|
.IX Item "-x"
|
416 |
|
|
.PD 0
|
417 |
|
|
.IP "\fB\-\-no\-idata4\fR" 4
|
418 |
|
|
.IX Item "--no-idata4"
|
419 |
|
|
.PD
|
420 |
|
|
Specifies that when \fBdlltool\fR is creating the exports and library
|
421 |
|
|
files it should omit the \f(CW\*(C`.idata4\*(C'\fR section. This is for compatibility
|
422 |
|
|
with certain operating systems.
|
423 |
|
|
.IP "\fB\-\-use\-nul\-prefixed\-import\-tables\fR" 4
|
424 |
|
|
.IX Item "--use-nul-prefixed-import-tables"
|
425 |
|
|
Specifies that when \fBdlltool\fR is creating the exports and library
|
426 |
|
|
files it should prefix the \f(CW\*(C`.idata4\*(C'\fR and \f(CW\*(C`.idata5\*(C'\fR by zero an
|
427 |
|
|
element. This emulates old gnu import library generation of
|
428 |
|
|
\&\f(CW\*(C`dlltool\*(C'\fR. By default this option is turned off.
|
429 |
|
|
.IP "\fB\-c\fR" 4
|
430 |
|
|
.IX Item "-c"
|
431 |
|
|
.PD 0
|
432 |
|
|
.IP "\fB\-\-no\-idata5\fR" 4
|
433 |
|
|
.IX Item "--no-idata5"
|
434 |
|
|
.PD
|
435 |
|
|
Specifies that when \fBdlltool\fR is creating the exports and library
|
436 |
|
|
files it should omit the \f(CW\*(C`.idata5\*(C'\fR section. This is for compatibility
|
437 |
|
|
with certain operating systems.
|
438 |
|
|
.IP "\fB\-I\fR \fIfilename\fR" 4
|
439 |
|
|
.IX Item "-I filename"
|
440 |
|
|
.PD 0
|
441 |
|
|
.IP "\fB\-\-identify\fR \fIfilename\fR" 4
|
442 |
|
|
.IX Item "--identify filename"
|
443 |
|
|
.PD
|
444 |
|
|
Specifies that \fBdlltool\fR should inspect the import library
|
445 |
|
|
indicated by \fIfilename\fR and report, on \f(CW\*(C`stdout\*(C'\fR, the name(s)
|
446 |
|
|
of the associated \s-1DLL\s0(s). This can be performed in addition to any
|
447 |
|
|
other operations indicated by the other options and arguments.
|
448 |
|
|
\&\fBdlltool\fR fails if the import library does not exist or is not
|
449 |
|
|
actually an import library. See also \fB\-\-identify\-strict\fR.
|
450 |
|
|
.IP "\fB\-\-identify\-strict\fR" 4
|
451 |
|
|
.IX Item "--identify-strict"
|
452 |
|
|
Modifies the behavior of the \fB\-\-identify\fR option, such
|
453 |
|
|
that an error is reported if \fIfilename\fR is associated with
|
454 |
|
|
more than one \s-1DLL\s0.
|
455 |
|
|
.IP "\fB\-i\fR" 4
|
456 |
|
|
.IX Item "-i"
|
457 |
|
|
.PD 0
|
458 |
|
|
.IP "\fB\-\-interwork\fR" 4
|
459 |
|
|
.IX Item "--interwork"
|
460 |
|
|
.PD
|
461 |
|
|
Specifies that \fBdlltool\fR should mark the objects in the library
|
462 |
|
|
file and exports file that it produces as supporting interworking
|
463 |
|
|
between \s-1ARM\s0 and Thumb code.
|
464 |
|
|
.IP "\fB\-n\fR" 4
|
465 |
|
|
.IX Item "-n"
|
466 |
|
|
.PD 0
|
467 |
|
|
.IP "\fB\-\-nodelete\fR" 4
|
468 |
|
|
.IX Item "--nodelete"
|
469 |
|
|
.PD
|
470 |
|
|
Makes \fBdlltool\fR preserve the temporary assembler files it used to
|
471 |
|
|
create the exports file. If this option is repeated then dlltool will
|
472 |
|
|
also preserve the temporary object files it uses to create the library
|
473 |
|
|
file.
|
474 |
|
|
.IP "\fB\-t\fR \fIprefix\fR" 4
|
475 |
|
|
.IX Item "-t prefix"
|
476 |
|
|
.PD 0
|
477 |
|
|
.IP "\fB\-\-temp\-prefix\fR \fIprefix\fR" 4
|
478 |
|
|
.IX Item "--temp-prefix prefix"
|
479 |
|
|
.PD
|
480 |
|
|
Makes \fBdlltool\fR use \fIprefix\fR when constructing the names of
|
481 |
|
|
temporary assembler and object files. By default, the temp file prefix
|
482 |
|
|
is generated from the pid.
|
483 |
|
|
.IP "\fB\-v\fR" 4
|
484 |
|
|
.IX Item "-v"
|
485 |
|
|
.PD 0
|
486 |
|
|
.IP "\fB\-\-verbose\fR" 4
|
487 |
|
|
.IX Item "--verbose"
|
488 |
|
|
.PD
|
489 |
|
|
Make dlltool describe what it is doing.
|
490 |
|
|
.IP "\fB\-h\fR" 4
|
491 |
|
|
.IX Item "-h"
|
492 |
|
|
.PD 0
|
493 |
|
|
.IP "\fB\-\-help\fR" 4
|
494 |
|
|
.IX Item "--help"
|
495 |
|
|
.PD
|
496 |
|
|
Displays a list of command line options and then exits.
|
497 |
|
|
.IP "\fB\-V\fR" 4
|
498 |
|
|
.IX Item "-V"
|
499 |
|
|
.PD 0
|
500 |
|
|
.IP "\fB\-\-version\fR" 4
|
501 |
|
|
.IX Item "--version"
|
502 |
|
|
.PD
|
503 |
|
|
Displays dlltool's version number and then exits.
|
504 |
|
|
.IP "\fB@\fR\fIfile\fR" 4
|
505 |
|
|
.IX Item "@file"
|
506 |
|
|
Read command-line options from \fIfile\fR. The options read are
|
507 |
|
|
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
|
508 |
|
|
does not exist, or cannot be read, then the option will be treated
|
509 |
|
|
literally, and not removed.
|
510 |
|
|
.Sp
|
511 |
|
|
Options in \fIfile\fR are separated by whitespace. A whitespace
|
512 |
|
|
character may be included in an option by surrounding the entire
|
513 |
|
|
option in either single or double quotes. Any character (including a
|
514 |
|
|
backslash) may be included by prefixing the character to be included
|
515 |
|
|
with a backslash. The \fIfile\fR may itself contain additional
|
516 |
|
|
@\fIfile\fR options; any such options will be processed recursively.
|
517 |
|
|
.SH "SEE ALSO"
|
518 |
|
|
.IX Header "SEE ALSO"
|
519 |
|
|
The Info pages for \fIbinutils\fR.
|
520 |
|
|
.SH "COPYRIGHT"
|
521 |
|
|
.IX Header "COPYRIGHT"
|
522 |
|
|
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
523 |
|
|
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
524 |
|
|
2010, 2011, 2012
|
525 |
|
|
Free Software Foundation, Inc.
|
526 |
|
|
.PP
|
527 |
|
|
Permission is granted to copy, distribute and/or modify this document
|
528 |
|
|
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
|
529 |
|
|
or any later version published by the Free Software Foundation;
|
530 |
|
|
with no Invariant Sections, with no Front-Cover Texts, and with no
|
531 |
|
|
Back-Cover Texts. A copy of the license is included in the
|
532 |
|
|
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
|