hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1991-2016 Free Software Foundation, Inc.
 
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts.  A copy of the license is included in the
section entitled "GNU Free Documentation License".
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Binary Utilities: def file format</title>
 
<meta name="description" content="GNU Binary Utilities: def file format">
<meta name="keywords" content="GNU Binary Utilities: def file format">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Binutils-Index.html#Binutils-Index" rel="index" title="Binutils Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="dlltool.html#dlltool" rel="up" title="dlltool">
<link href="readelf.html#readelf" rel="next" title="readelf">
<link href="dlltool.html#dlltool" rel="prev" title="dlltool">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
 
 
</head>
 
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="def-file-format"></a>
<div class="header">
<p>
Up: <a href="dlltool.html#dlltool" accesskey="u" rel="up">dlltool</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Binutils-Index.html#Binutils-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="The-format-of-the-dlltool-_002edef-file"></a>
<h3 class="section">14.1 The format of the <code>dlltool</code> <samp>.def</samp> file</h3>
 
<p>A <samp>.def</samp> file contains any number of the following commands:
</p>
<dl compact="compact">
<dt><code>NAME</code> <var>name</var> <code>[ ,</code> <var>base</var> <code>]</code></dt>
<dd><p>The result is going to be named <var>name</var><code>.exe</code>.
</p>
</dd>
<dt><code>LIBRARY</code> <var>name</var> <code>[ ,</code> <var>base</var> <code>]</code></dt>
<dd><p>The result is going to be named <var>name</var><code>.dll</code>.
Note: If you want to use LIBRARY as name then you need to quote.  Otherwise
this will fail due a necessary hack for libtool (see PR binutils/13710 for more
details).
</p>
</dd>
<dt><code>EXPORTS ( ( (</code> <var>name1</var> <code>[ = </code> <var>name2</var> <code>] ) | ( </code> <var>name1</var> <code>=</code> <var>module-name</var> <code>.</code> <var>external-name</var> <code>) ) [ == </code> <var>its_name</var> <code>]</code></dt>
<dt><code>[</code> <var>integer</var> <code>] [ NONAME ] [ CONSTANT ] [ DATA ] [ PRIVATE ] ) *</code></dt>
<dd><p>Declares <var>name1</var> as an exported symbol from the DLL, with optional
ordinal number <var>integer</var>, or declares <var>name1</var> as an alias
(forward) of the function <var>external-name</var> in the DLL.
If <var>its_name</var> is specified, this name is used as string in export table.
<var>module-name</var>.
Note: The <code>EXPORTS</code> has to be the last command in .def file, as keywords
are treated - beside <code>LIBRARY</code> - as simple name-identifiers.
If you want to use LIBRARY as name then you need to quote it.
</p>
</dd>
<dt><code>IMPORTS ( (</code> <var>internal-name</var> <code>=</code> <var>module-name</var> <code>.</code> <var>integer</var> <code>) | [</code> <var>internal-name</var> <code>= ]</code> <var>module-name</var> <code>.</code> <var>external-name</var> <code>) [ == ) <var>its_name</var> <code>]</code> *</code></dt>
<dd><p>Declares that <var>external-name</var> or the exported function whose
ordinal number is <var>integer</var> is to be imported from the file
<var>module-name</var>.  If <var>internal-name</var> is specified then this is
the name that the imported function will be referred to in the body of
the DLL.
If <var>its_name</var> is specified, this name is used as string in import table.
Note: The <code>IMPORTS</code> has to be the last command in .def file, as keywords
are treated - beside <code>LIBRARY</code> - as simple name-identifiers.
If you want to use LIBRARY as name then you need to quote it.
</p>
</dd>
<dt><code>DESCRIPTION</code> <var>string</var></dt>
<dd><p>Puts <var>string</var> into the output <samp>.exp</samp> file in the
<code>.rdata</code> section.
</p>
</dd>
<dt><code>STACKSIZE</code> <var>number-reserve</var> <code>[, </code> <var>number-commit</var> <code>]</code></dt>
<dt><code>HEAPSIZE</code> <var>number-reserve</var> <code>[, </code> <var>number-commit</var> <code>]</code></dt>
<dd><p>Generates <code>--stack</code> or <code>--heap</code>
<var>number-reserve</var>,<var>number-commit</var> in the output <code>.drectve</code>
section.  The linker will see this and act upon it.
</p>
</dd>
<dt><code>CODE</code> <var>attr</var> <code>+</code></dt>
<dt><code>DATA</code> <var>attr</var> <code>+</code></dt>
<dt><code>SECTIONS (</code> <var>section-name</var> <var>attr</var><code> + ) *</code></dt>
<dd><p>Generates <code>--attr</code> <var>section-name</var> <var>attr</var> in the output
<code>.drectve</code> section, where <var>attr</var> is one of <code>READ</code>,
<code>WRITE</code>, <code>EXECUTE</code> or <code>SHARED</code>.  The linker will see
this and act upon it.
</p>
</dd>
</dl>
 
 
<hr>
<div class="header">
<p>
Up: <a href="dlltool.html#dlltool" accesskey="u" rel="up">dlltool</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Binutils-Index.html#Binutils-Index" title="Index" rel="index">Index</a>]</p>
</div>
 
 
 
</body>
</html>