Mercurial > hg > index.cgi
comparison docs/manual/x781.html @ 231:2cc599f1bebf
Added --define to lwasm documentation.
Added documentation of the -D/--define command line option for lwasm. It has
been present for a long time but has somehow escaped documentation.
author | William Astle <lost@l-w.ca> |
---|---|
date | Sun, 15 Jul 2012 23:12:09 -0600 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
230:e09985968e64 | 231:2cc599f1bebf |
---|---|
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> | |
2 <HTML | |
3 ><HEAD | |
4 ><TITLE | |
5 >Linker Operation</TITLE | |
6 ><META | |
7 NAME="GENERATOR" | |
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK | |
9 REL="HOME" | |
10 TITLE="LW Tool Chain" | |
11 HREF="index.html"><LINK | |
12 REL="UP" | |
13 TITLE="LWLINK" | |
14 HREF="c681.html"><LINK | |
15 REL="PREVIOUS" | |
16 TITLE="LWLINK" | |
17 HREF="c681.html"><LINK | |
18 REL="NEXT" | |
19 TITLE="Linking Scripts" | |
20 HREF="x795.html"></HEAD | |
21 ><BODY | |
22 CLASS="SECTION" | |
23 BGCOLOR="#FFFFFF" | |
24 TEXT="#000000" | |
25 LINK="#0000FF" | |
26 VLINK="#840084" | |
27 ALINK="#0000FF" | |
28 ><DIV | |
29 CLASS="NAVHEADER" | |
30 ><TABLE | |
31 SUMMARY="Header navigation table" | |
32 WIDTH="100%" | |
33 BORDER="0" | |
34 CELLPADDING="0" | |
35 CELLSPACING="0" | |
36 ><TR | |
37 ><TH | |
38 COLSPAN="3" | |
39 ALIGN="center" | |
40 >LW Tool Chain</TH | |
41 ></TR | |
42 ><TR | |
43 ><TD | |
44 WIDTH="10%" | |
45 ALIGN="left" | |
46 VALIGN="bottom" | |
47 ><A | |
48 HREF="c681.html" | |
49 ACCESSKEY="P" | |
50 >Prev</A | |
51 ></TD | |
52 ><TD | |
53 WIDTH="80%" | |
54 ALIGN="center" | |
55 VALIGN="bottom" | |
56 >Chapter 4. LWLINK</TD | |
57 ><TD | |
58 WIDTH="10%" | |
59 ALIGN="right" | |
60 VALIGN="bottom" | |
61 ><A | |
62 HREF="x795.html" | |
63 ACCESSKEY="N" | |
64 >Next</A | |
65 ></TD | |
66 ></TR | |
67 ></TABLE | |
68 ><HR | |
69 ALIGN="LEFT" | |
70 WIDTH="100%"></DIV | |
71 ><DIV | |
72 CLASS="SECTION" | |
73 ><H1 | |
74 CLASS="SECTION" | |
75 ><A | |
76 NAME="AEN781" | |
77 >4.2. Linker Operation</A | |
78 ></H1 | |
79 ><P | |
80 > LWLINK takes one or more files in supported input formats and links them | |
81 into a single binary. Currently supported formats are the LWTOOLS object | |
82 file format and the archive format used by LWAR. While the precise method is | |
83 slightly different, linking can be conceptualized as the following steps. </P | |
84 ><P | |
85 ></P | |
86 ><OL | |
87 TYPE="1" | |
88 ><LI | |
89 ><P | |
90 >First, the linker loads a linking script. If no script is specified, it | |
91 loads a built-in default script based on the output format selected. This | |
92 script tells the linker how to lay out the various sections in the final | |
93 binary.</P | |
94 ></LI | |
95 ><LI | |
96 ><P | |
97 >Next, the linker reads all the input files into memory. At this time, it | |
98 flags any format errors in those files. It constructs a table of symbols | |
99 for each object at this time.</P | |
100 ></LI | |
101 ><LI | |
102 ><P | |
103 >The linker then proceeds with organizing the sections loaded from each file | |
104 according to the linking script. As it does so, it is able to assign addresses | |
105 to each symbol defined in each object file. At this time, the linker may | |
106 also collapse different instances of the same section name into a single | |
107 section by appending the data from each subsequent instance of the section | |
108 to the first instance of the section.</P | |
109 ></LI | |
110 ><LI | |
111 ><P | |
112 >Next, the linker looks through every object file for every incomplete reference. | |
113 It then attempts to fully resolve that reference. If it cannot do so, it | |
114 throws an error. Once a reference is resolved, the value is placed into | |
115 the binary code at the specified section. It should be noted that an | |
116 incomplete reference can reference either a symbol internal to the object | |
117 file or an external symbol which is in the export list of another object | |
118 file.</P | |
119 ></LI | |
120 ><LI | |
121 ><P | |
122 >If all of the above steps are successful, the linker opens the output file | |
123 and actually constructs the binary.</P | |
124 ></LI | |
125 ></OL | |
126 ></DIV | |
127 ><DIV | |
128 CLASS="NAVFOOTER" | |
129 ><HR | |
130 ALIGN="LEFT" | |
131 WIDTH="100%"><TABLE | |
132 SUMMARY="Footer navigation table" | |
133 WIDTH="100%" | |
134 BORDER="0" | |
135 CELLPADDING="0" | |
136 CELLSPACING="0" | |
137 ><TR | |
138 ><TD | |
139 WIDTH="33%" | |
140 ALIGN="left" | |
141 VALIGN="top" | |
142 ><A | |
143 HREF="c681.html" | |
144 ACCESSKEY="P" | |
145 >Prev</A | |
146 ></TD | |
147 ><TD | |
148 WIDTH="34%" | |
149 ALIGN="center" | |
150 VALIGN="top" | |
151 ><A | |
152 HREF="index.html" | |
153 ACCESSKEY="H" | |
154 >Home</A | |
155 ></TD | |
156 ><TD | |
157 WIDTH="33%" | |
158 ALIGN="right" | |
159 VALIGN="top" | |
160 ><A | |
161 HREF="x795.html" | |
162 ACCESSKEY="N" | |
163 >Next</A | |
164 ></TD | |
165 ></TR | |
166 ><TR | |
167 ><TD | |
168 WIDTH="33%" | |
169 ALIGN="left" | |
170 VALIGN="top" | |
171 >LWLINK</TD | |
172 ><TD | |
173 WIDTH="34%" | |
174 ALIGN="center" | |
175 VALIGN="top" | |
176 ><A | |
177 HREF="c681.html" | |
178 ACCESSKEY="U" | |
179 >Up</A | |
180 ></TD | |
181 ><TD | |
182 WIDTH="33%" | |
183 ALIGN="right" | |
184 VALIGN="top" | |
185 >Linking Scripts</TD | |
186 ></TR | |
187 ></TABLE | |
188 ></DIV | |
189 ></BODY | |
190 ></HTML | |
191 > |