Mercurial > hg > index.cgi
comparison docs/manual/x911.html @ 455:cad5937314cb
Add operandsizewarning pragma
Add operandsizewarning pragma that will raise warnings for certain operands
if the operand size could be smaller. (Long branch used instead of short
branch, for instance.)
author | William Astle <lost@l-w.ca> |
---|---|
date | Fri, 16 Feb 2018 22:53:46 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
454:ffdef8994f13 | 455:cad5937314cb |
---|---|
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="c811.html"><LINK | |
15 REL="PREVIOUS" | |
16 TITLE="LWLINK" | |
17 HREF="c811.html"><LINK | |
18 REL="NEXT" | |
19 TITLE="Linking Scripts" | |
20 HREF="x925.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="c811.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="x925.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="AEN911" | |
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="c811.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="x925.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="c811.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 > |