Mercurial > hg > index.cgi
comparison docs/manual/manual.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 | 1e0a0e6cd918 |
children | 7da0452512b2 |
comparison
equal
deleted
inserted
replaced
230:e09985968e64 | 231:2cc599f1bebf |
---|---|
98 HREF="#AEN48" | 98 HREF="#AEN48" |
99 >Command Line Options</A | 99 >Command Line Options</A |
100 ></DT | 100 ></DT |
101 ><DT | 101 ><DT |
102 >3.2. <A | 102 >3.2. <A |
103 HREF="#AEN163" | 103 HREF="#AEN170" |
104 >Dialects</A | 104 >Dialects</A |
105 ></DT | 105 ></DT |
106 ><DT | 106 ><DT |
107 >3.3. <A | 107 >3.3. <A |
108 HREF="#AEN170" | 108 HREF="#AEN177" |
109 >Source Format</A | 109 >Source Format</A |
110 ></DT | 110 ></DT |
111 ><DT | 111 ><DT |
112 >3.4. <A | 112 >3.4. <A |
113 HREF="#AEN180" | 113 HREF="#AEN187" |
114 >Symbols</A | 114 >Symbols</A |
115 ></DT | 115 ></DT |
116 ><DT | 116 ><DT |
117 >3.5. <A | 117 >3.5. <A |
118 HREF="#AEN185" | 118 HREF="#AEN192" |
119 >Numbers and Expressions</A | 119 >Numbers and Expressions</A |
120 ></DT | 120 ></DT |
121 ><DT | 121 ><DT |
122 >3.6. <A | 122 >3.6. <A |
123 HREF="#AEN193" | 123 HREF="#AEN200" |
124 >Assembler Directives</A | 124 >Assembler Directives</A |
125 ></DT | 125 ></DT |
126 ><DD | 126 ><DD |
127 ><DL | 127 ><DL |
128 ><DT | 128 ><DT |
129 >3.6.1. <A | 129 >3.6.1. <A |
130 HREF="#AEN196" | 130 HREF="#AEN203" |
131 >Data Directives</A | 131 >Data Directives</A |
132 ></DT | 132 ></DT |
133 ><DT | 133 ><DT |
134 >3.6.2. <A | 134 >3.6.2. <A |
135 HREF="#AEN299" | 135 HREF="#AEN306" |
136 >Address Definition</A | 136 >Address Definition</A |
137 ></DT | 137 ></DT |
138 ><DT | 138 ><DT |
139 >3.6.3. <A | 139 >3.6.3. <A |
140 HREF="#AEN346" | 140 HREF="#AEN353" |
141 >Conditional Assembly</A | 141 >Conditional Assembly</A |
142 ></DT | 142 ></DT |
143 ><DT | 143 ><DT |
144 >3.6.4. <A | 144 >3.6.4. <A |
145 HREF="#AEN411" | 145 HREF="#AEN418" |
146 >OS9 Target Directives</A | 146 >OS9 Target Directives</A |
147 ></DT | 147 ></DT |
148 ><DT | 148 ><DT |
149 >3.6.5. <A | 149 >3.6.5. <A |
150 HREF="#AEN436" | 150 HREF="#AEN443" |
151 >Miscelaneous Directives</A | 151 >Miscelaneous Directives</A |
152 ></DT | 152 ></DT |
153 ></DL | 153 ></DL |
154 ></DD | 154 ></DD |
155 ><DT | 155 ><DT |
156 >3.7. <A | 156 >3.7. <A |
157 HREF="#AEN476" | 157 HREF="#AEN483" |
158 >Macros</A | 158 >Macros</A |
159 ></DT | 159 ></DT |
160 ><DT | 160 ><DT |
161 >3.8. <A | 161 >3.8. <A |
162 HREF="#AEN499" | 162 HREF="#AEN506" |
163 >Structures</A | 163 >Structures</A |
164 ></DT | 164 ></DT |
165 ><DT | 165 ><DT |
166 >3.9. <A | 166 >3.9. <A |
167 HREF="#AEN520" | 167 HREF="#AEN527" |
168 >Object Files and Sections</A | 168 >Object Files and Sections</A |
169 ></DT | 169 ></DT |
170 ><DT | 170 ><DT |
171 >3.10. <A | 171 >3.10. <A |
172 HREF="#AEN584" | 172 HREF="#AEN591" |
173 >Assembler Modes and Pragmas</A | 173 >Assembler Modes and Pragmas</A |
174 ></DT | 174 ></DT |
175 ></DL | 175 ></DL |
176 ></DD | 176 ></DD |
177 ><DT | 177 ><DT |
178 >4. <A | 178 >4. <A |
179 HREF="#AEN662" | 179 HREF="#AEN681" |
180 >LWLINK</A | 180 >LWLINK</A |
181 ></DT | 181 ></DT |
182 ><DD | 182 ><DD |
183 ><DL | 183 ><DL |
184 ><DT | 184 ><DT |
185 >4.1. <A | 185 >4.1. <A |
186 HREF="#AEN665" | 186 HREF="#AEN684" |
187 >Command Line Options</A | 187 >Command Line Options</A |
188 ></DT | 188 ></DT |
189 ><DT | 189 ><DT |
190 >4.2. <A | 190 >4.2. <A |
191 HREF="#AEN762" | 191 HREF="#AEN781" |
192 >Linker Operation</A | 192 >Linker Operation</A |
193 ></DT | 193 ></DT |
194 ><DT | 194 ><DT |
195 >4.3. <A | 195 >4.3. <A |
196 HREF="#AEN776" | 196 HREF="#AEN795" |
197 >Linking Scripts</A | 197 >Linking Scripts</A |
198 ></DT | 198 ></DT |
199 ><DT | 199 ><DT |
200 >4.4. <A | 200 >4.4. <A |
201 HREF="#AEN810" | 201 HREF="#AEN829" |
202 >Format Specific Linking Notes</A | 202 >Format Specific Linking Notes</A |
203 ></DT | 203 ></DT |
204 ><DD | 204 ><DD |
205 ><DL | 205 ><DL |
206 ><DT | 206 ><DT |
207 >4.4.1. <A | 207 >4.4.1. <A |
208 HREF="#AEN813" | 208 HREF="#AEN832" |
209 >OS9 Modules</A | 209 >OS9 Modules</A |
210 ></DT | 210 ></DT |
211 ></DL | 211 ></DL |
212 ></DD | 212 ></DD |
213 ></DL | 213 ></DL |
214 ></DD | 214 ></DD |
215 ><DT | 215 ><DT |
216 >5. <A | 216 >5. <A |
217 HREF="#AEN825" | 217 HREF="#AEN844" |
218 >Libraries and LWAR</A | 218 >Libraries and LWAR</A |
219 ></DT | 219 ></DT |
220 ><DD | 220 ><DD |
221 ><DL | 221 ><DL |
222 ><DT | 222 ><DT |
223 >5.1. <A | 223 >5.1. <A |
224 HREF="#AEN829" | 224 HREF="#AEN848" |
225 >Command Line Options</A | 225 >Command Line Options</A |
226 ></DT | 226 ></DT |
227 ></DL | 227 ></DL |
228 ></DD | 228 ></DD |
229 ><DT | 229 ><DT |
241 ><B | 241 ><B |
242 >List of Tables</B | 242 >List of Tables</B |
243 ></DT | 243 ></DT |
244 ><DT | 244 ><DT |
245 >6-1. <A | 245 >6-1. <A |
246 HREF="#AEN912" | 246 HREF="#AEN931" |
247 >Object File Term Types</A | 247 >Object File Term Types</A |
248 ></DT | 248 ></DT |
249 ><DT | 249 ><DT |
250 >6-2. <A | 250 >6-2. <A |
251 HREF="#AEN942" | 251 HREF="#AEN961" |
252 >Object File Operator Numbers</A | 252 >Object File Operator Numbers</A |
253 ></DT | 253 ></DT |
254 ></DL | 254 ></DL |
255 ></DIV | 255 ></DIV |
256 ><DIV | 256 ><DIV |
621 > to the end of the include path.</P | 621 > to the end of the include path.</P |
622 ></DD | 622 ></DD |
623 ><DT | 623 ><DT |
624 ><CODE | 624 ><CODE |
625 CLASS="OPTION" | 625 CLASS="OPTION" |
626 >--define=SYM[=VAL]</CODE | |
627 >, <CODE | |
628 CLASS="OPTION" | |
629 >-I SYM[=VAL]</CODE | |
630 ></DT | |
631 ><DD | |
632 ><P | |
633 >Pre-defines the symbol SYM as either the specified VAL. If VAL is omitted, | |
634 the symbol is defined as 1. The symbol will be defined as though it were | |
635 defined using the SET directive in the assembly source. That means it can | |
636 be overridden by a SET directive within the source code. Attempting to | |
637 redefine SYM using EQU will result in a multiply defined symbol error.</P | |
638 ></DD | |
639 ><DT | |
640 ><CODE | |
641 CLASS="OPTION" | |
626 >--help</CODE | 642 >--help</CODE |
627 >, <CODE | 643 >, <CODE |
628 CLASS="OPTION" | 644 CLASS="OPTION" |
629 >-?</CODE | 645 >-?</CODE |
630 ></DT | 646 ></DT |
672 ><DIV | 688 ><DIV |
673 CLASS="SECTION" | 689 CLASS="SECTION" |
674 ><HR><H2 | 690 ><HR><H2 |
675 CLASS="SECTION" | 691 CLASS="SECTION" |
676 ><A | 692 ><A |
677 NAME="AEN163" | 693 NAME="AEN170" |
678 >3.2. Dialects</A | 694 >3.2. Dialects</A |
679 ></H2 | 695 ></H2 |
680 ><P | 696 ><P |
681 >LWASM supports all documented MC6809 instructions as defined by Motorola. | 697 >LWASM supports all documented MC6809 instructions as defined by Motorola. |
682 It also supports all known HD6309 instructions. While there is general | 698 It also supports all known HD6309 instructions. While there is general |
706 ><DIV | 722 ><DIV |
707 CLASS="SECTION" | 723 CLASS="SECTION" |
708 ><HR><H2 | 724 ><HR><H2 |
709 CLASS="SECTION" | 725 CLASS="SECTION" |
710 ><A | 726 ><A |
711 NAME="AEN170" | 727 NAME="AEN177" |
712 >3.3. Source Format</A | 728 >3.3. Source Format</A |
713 ></H2 | 729 ></H2 |
714 ><P | 730 ><P |
715 >LWASM accepts plain text files in a relatively free form. It can handle | 731 >LWASM accepts plain text files in a relatively free form. It can handle |
716 lines terminated with CR, LF, CRLF, or LFCR which means it should be able | 732 lines terminated with CR, LF, CRLF, or LFCR which means it should be able |
752 ><DIV | 768 ><DIV |
753 CLASS="SECTION" | 769 CLASS="SECTION" |
754 ><HR><H2 | 770 ><HR><H2 |
755 CLASS="SECTION" | 771 CLASS="SECTION" |
756 ><A | 772 ><A |
757 NAME="AEN180" | 773 NAME="AEN187" |
758 >3.4. Symbols</A | 774 >3.4. Symbols</A |
759 ></H2 | 775 ></H2 |
760 ><P | 776 ><P |
761 >Symbols have no length restriction. They may contain letters, numbers, dots, | 777 >Symbols have no length restriction. They may contain letters, numbers, dots, |
762 dollar signs, and underscores. They must start with a letter, dot, or | 778 dollar signs, and underscores. They must start with a letter, dot, or |
780 ><DIV | 796 ><DIV |
781 CLASS="SECTION" | 797 CLASS="SECTION" |
782 ><HR><H2 | 798 ><HR><H2 |
783 CLASS="SECTION" | 799 CLASS="SECTION" |
784 ><A | 800 ><A |
785 NAME="AEN185" | 801 NAME="AEN192" |
786 >3.5. Numbers and Expressions</A | 802 >3.5. Numbers and Expressions</A |
787 ></H2 | 803 ></H2 |
788 ><P | 804 ><P |
789 > Numbers can be expressed in binary, octal, decimal, or hexadecimal. Binary | 805 > Numbers can be expressed in binary, octal, decimal, or hexadecimal. Binary |
790 numbers may be prefixed with a "%" symbol or suffixed with a "b" or "B". | 806 numbers may be prefixed with a "%" symbol or suffixed with a "b" or "B". |
825 ><DIV | 841 ><DIV |
826 CLASS="SECTION" | 842 CLASS="SECTION" |
827 ><HR><H2 | 843 ><HR><H2 |
828 CLASS="SECTION" | 844 CLASS="SECTION" |
829 ><A | 845 ><A |
830 NAME="AEN193" | 846 NAME="AEN200" |
831 >3.6. Assembler Directives</A | 847 >3.6. Assembler Directives</A |
832 ></H2 | 848 ></H2 |
833 ><P | 849 ><P |
834 >Various directives can be used to control the behaviour of the | 850 >Various directives can be used to control the behaviour of the |
835 assembler or to include non-code/data in the resulting output. Those directives | 851 assembler or to include non-code/data in the resulting output. Those directives |
838 ><DIV | 854 ><DIV |
839 CLASS="SECTION" | 855 CLASS="SECTION" |
840 ><HR><H3 | 856 ><HR><H3 |
841 CLASS="SECTION" | 857 CLASS="SECTION" |
842 ><A | 858 ><A |
843 NAME="AEN196" | 859 NAME="AEN203" |
844 >3.6.1. Data Directives</A | 860 >3.6.1. Data Directives</A |
845 ></H3 | 861 ></H3 |
846 ><P | 862 ><P |
847 ></P | 863 ></P |
848 ><DIV | 864 ><DIV |
1054 ><DIV | 1070 ><DIV |
1055 CLASS="SECTION" | 1071 CLASS="SECTION" |
1056 ><HR><H3 | 1072 ><HR><H3 |
1057 CLASS="SECTION" | 1073 CLASS="SECTION" |
1058 ><A | 1074 ><A |
1059 NAME="AEN299" | 1075 NAME="AEN306" |
1060 >3.6.2. Address Definition</A | 1076 >3.6.2. Address Definition</A |
1061 ></H3 | 1077 ></H3 |
1062 ><P | 1078 ><P |
1063 >The directives in this section all control the addresses of symbols | 1079 >The directives in this section all control the addresses of symbols |
1064 or the assembly process itself.</P | 1080 or the assembly process itself.</P |
1190 ><DIV | 1206 ><DIV |
1191 CLASS="SECTION" | 1207 CLASS="SECTION" |
1192 ><HR><H3 | 1208 ><HR><H3 |
1193 CLASS="SECTION" | 1209 CLASS="SECTION" |
1194 ><A | 1210 ><A |
1195 NAME="AEN346" | 1211 NAME="AEN353" |
1196 >3.6.3. Conditional Assembly</A | 1212 >3.6.3. Conditional Assembly</A |
1197 ></H3 | 1213 ></H3 |
1198 ><P | 1214 ><P |
1199 >Portions of the source code can be excluded or included based on conditions | 1215 >Portions of the source code can be excluded or included based on conditions |
1200 known at assembly time. Conditionals can be nested arbitrarily deeply. The | 1216 known at assembly time. Conditionals can be nested arbitrarily deeply. The |
1353 ><DIV | 1369 ><DIV |
1354 CLASS="SECTION" | 1370 CLASS="SECTION" |
1355 ><HR><H3 | 1371 ><HR><H3 |
1356 CLASS="SECTION" | 1372 CLASS="SECTION" |
1357 ><A | 1373 ><A |
1358 NAME="AEN411" | 1374 NAME="AEN418" |
1359 >3.6.4. OS9 Target Directives</A | 1375 >3.6.4. OS9 Target Directives</A |
1360 ></H3 | 1376 ></H3 |
1361 ><P | 1377 ><P |
1362 >This section includes directives that apply solely to the OS9 | 1378 >This section includes directives that apply solely to the OS9 |
1363 target.</P | 1379 target.</P |
1420 ><DIV | 1436 ><DIV |
1421 CLASS="SECTION" | 1437 CLASS="SECTION" |
1422 ><HR><H3 | 1438 ><HR><H3 |
1423 CLASS="SECTION" | 1439 CLASS="SECTION" |
1424 ><A | 1440 ><A |
1425 NAME="AEN436" | 1441 NAME="AEN443" |
1426 >3.6.5. Miscelaneous Directives</A | 1442 >3.6.5. Miscelaneous Directives</A |
1427 ></H3 | 1443 ></H3 |
1428 ><P | 1444 ><P |
1429 >This section includes directives that do not fit into the other | 1445 >This section includes directives that do not fit into the other |
1430 categories.</P | 1446 categories.</P |
1534 ><DIV | 1550 ><DIV |
1535 CLASS="SECTION" | 1551 CLASS="SECTION" |
1536 ><HR><H2 | 1552 ><HR><H2 |
1537 CLASS="SECTION" | 1553 CLASS="SECTION" |
1538 ><A | 1554 ><A |
1539 NAME="AEN476" | 1555 NAME="AEN483" |
1540 >3.7. Macros</A | 1556 >3.7. Macros</A |
1541 ></H2 | 1557 ></H2 |
1542 ><P | 1558 ><P |
1543 >LWASM is a macro assembler. A macro is simply a name that stands in for a | 1559 >LWASM is a macro assembler. A macro is simply a name that stands in for a |
1544 series of instructions. Once a macro is defined, it is used like any other | 1560 series of instructions. Once a macro is defined, it is used like any other |
1633 ><DIV | 1649 ><DIV |
1634 CLASS="SECTION" | 1650 CLASS="SECTION" |
1635 ><HR><H2 | 1651 ><HR><H2 |
1636 CLASS="SECTION" | 1652 CLASS="SECTION" |
1637 ><A | 1653 ><A |
1638 NAME="AEN499" | 1654 NAME="AEN506" |
1639 >3.8. Structures</A | 1655 >3.8. Structures</A |
1640 ></H2 | 1656 ></H2 |
1641 ><P | 1657 ><P |
1642 > Structures are used to group related data in a fixed structure. A structure | 1658 > Structures are used to group related data in a fixed structure. A structure |
1643 consists a number of fields, defined in sequential order and which take up | 1659 consists a number of fields, defined in sequential order and which take up |
1726 ><DIV | 1742 ><DIV |
1727 CLASS="SECTION" | 1743 CLASS="SECTION" |
1728 ><HR><H2 | 1744 ><HR><H2 |
1729 CLASS="SECTION" | 1745 CLASS="SECTION" |
1730 ><A | 1746 ><A |
1731 NAME="AEN520" | 1747 NAME="AEN527" |
1732 >3.9. Object Files and Sections</A | 1748 >3.9. Object Files and Sections</A |
1733 ></H2 | 1749 ></H2 |
1734 ><P | 1750 ><P |
1735 >The object file target is very useful for large project because it allows | 1751 >The object file target is very useful for large project because it allows |
1736 multiple files to be assembled independently and then linked into the final | 1752 multiple files to be assembled independently and then linked into the final |
1943 ><DIV | 1959 ><DIV |
1944 CLASS="SECTION" | 1960 CLASS="SECTION" |
1945 ><HR><H2 | 1961 ><HR><H2 |
1946 CLASS="SECTION" | 1962 CLASS="SECTION" |
1947 ><A | 1963 ><A |
1948 NAME="AEN584" | 1964 NAME="AEN591" |
1949 >3.10. Assembler Modes and Pragmas</A | 1965 >3.10. Assembler Modes and Pragmas</A |
1950 ></H2 | 1966 ></H2 |
1951 ><P | 1967 ><P |
1952 >There are a number of options that affect the way assembly is performed. | 1968 >There are a number of options that affect the way assembly is performed. |
1953 Some of these options can only be specified on the command line because | 1969 Some of these options can only be specified on the command line because |
2016 >This directive will not throw any errors for any reason.</P | 2032 >This directive will not throw any errors for any reason.</P |
2017 ></DD | 2033 ></DD |
2018 ></DL | 2034 ></DL |
2019 ></DIV | 2035 ></DIV |
2020 ><P | 2036 ><P |
2021 >Each pragma supported has a positive version and a negative version. | 2037 >Each pragma supported has a positive version and a negative version. |
2022 The positive version enables the pragma while the negative version disables | 2038 The positive version enables the pragma while the negative version disables |
2023 it. The negatitve version is simply the positive version with "no" prefixed | 2039 it. The negatitve version is simply the positive version with "no" prefixed |
2024 to it. For instance, "pragma" vs. "nopragma". Only the positive version is | 2040 to it. For instance, "pragma" vs. "nopragma". When only one version is |
2025 listed below.</P | 2041 listed below, its opposite can be obtained by prepending "no" if it is not |
2042 present or removing "no" from the beginning if it is present.</P | |
2026 ><P | 2043 ><P |
2027 >Pragmas are not case sensitive.</P | 2044 >Pragmas are not case sensitive.</P |
2028 ><P | 2045 ><P |
2029 ></P | 2046 ></P |
2030 ><DIV | 2047 ><DIV |
2150 ><P | 2167 ><P |
2151 >Because this pragma leads to source that is incompatible with other | 2168 >Because this pragma leads to source that is incompatible with other |
2152 assemblers, it is strongly recommended that it be invoked using the PRAGMA | 2169 assemblers, it is strongly recommended that it be invoked using the PRAGMA |
2153 directive within the source code rather than on the command line or via the | 2170 directive within the source code rather than on the command line or via the |
2154 *PRAGMA directive. This way, an error will be raised if someone tries to | 2171 *PRAGMA directive. This way, an error will be raised if someone tries to |
2155 * assemble the code under a different assembler.</P | 2172 assemble the code under a different assembler.</P |
2173 ></DD | |
2174 ><DT | |
2175 >nosymbolcase, symbolnocase</DT | |
2176 ><DD | |
2177 ><P | |
2178 >Any symbol defined while this pragma is in force will be treated as | |
2179 case insensitive, regardless whether the pragma is in force when the symbol | |
2180 is referenced.</P | |
2181 ><P | |
2182 >It is important to note that this pragma will not work as expected in | |
2183 all cases when using the object file assembly target. It is intended for | |
2184 use only when the assembler will be producing the final binary.</P | |
2185 ></DD | |
2186 ><DT | |
2187 >condundefzero</DT | |
2188 ><DD | |
2189 ><P | |
2190 >This pragma will cause the assembler to change the way it handles | |
2191 symbols in conditional expressions. Ordinarily, any symbol that is not | |
2192 defined prior to the conditional will throw an undefined symbol error. With | |
2193 this pragma in effect, symbols that are not yet defined at the point the | |
2194 conditional is encountered will be treated as zero.</P | |
2195 ><P | |
2196 >This is not the default because it encourages poor code design. One | |
2197 should use the "IFDEF" or "IFNDEF" conditionals to test for the presence of | |
2198 a symbol.</P | |
2199 ><P | |
2200 >It is important to note that if a symbol is defined but it does not | |
2201 yet evaluate to a constant value at the point where the conditional appears, | |
2202 the assembler will still complain about a non constant condition.</P | |
2156 ></DD | 2203 ></DD |
2157 ></DL | 2204 ></DL |
2158 ></DIV | 2205 ></DIV |
2159 ><P | 2206 ><P |
2160 >As a convenience, each input file has a pragma state stack. This | 2207 >As a convenience, each input file has a pragma state stack. This |
2176 ></DIV | 2223 ></DIV |
2177 ><DIV | 2224 ><DIV |
2178 CLASS="CHAPTER" | 2225 CLASS="CHAPTER" |
2179 ><HR><H1 | 2226 ><HR><H1 |
2180 ><A | 2227 ><A |
2181 NAME="AEN662" | 2228 NAME="AEN681" |
2182 ></A | 2229 ></A |
2183 >Chapter 4. LWLINK</H1 | 2230 >Chapter 4. LWLINK</H1 |
2184 ><P | 2231 ><P |
2185 >The LWTOOLS linker is called LWLINK. This chapter documents the various features | 2232 >The LWTOOLS linker is called LWLINK. This chapter documents the various features |
2186 of the linker.</P | 2233 of the linker.</P |
2187 ><DIV | 2234 ><DIV |
2188 CLASS="SECTION" | 2235 CLASS="SECTION" |
2189 ><HR><H2 | 2236 ><HR><H2 |
2190 CLASS="SECTION" | 2237 CLASS="SECTION" |
2191 ><A | 2238 ><A |
2192 NAME="AEN665" | 2239 NAME="AEN684" |
2193 >4.1. Command Line Options</A | 2240 >4.1. Command Line Options</A |
2194 ></H2 | 2241 ></H2 |
2195 ><P | 2242 ><P |
2196 >The binary for LWLINK is called "lwlink". Note that the binary is in lower | 2243 >The binary for LWLINK is called "lwlink". Note that the binary is in lower |
2197 case. lwlink takes the following command line arguments.</P | 2244 case. lwlink takes the following command line arguments.</P |
2384 ><DIV | 2431 ><DIV |
2385 CLASS="SECTION" | 2432 CLASS="SECTION" |
2386 ><HR><H2 | 2433 ><HR><H2 |
2387 CLASS="SECTION" | 2434 CLASS="SECTION" |
2388 ><A | 2435 ><A |
2389 NAME="AEN762" | 2436 NAME="AEN781" |
2390 >4.2. Linker Operation</A | 2437 >4.2. Linker Operation</A |
2391 ></H2 | 2438 ></H2 |
2392 ><P | 2439 ><P |
2393 > LWLINK takes one or more files in supported input formats and links them | 2440 > LWLINK takes one or more files in supported input formats and links them |
2394 into a single binary. Currently supported formats are the LWTOOLS object | 2441 into a single binary. Currently supported formats are the LWTOOLS object |
2440 ><DIV | 2487 ><DIV |
2441 CLASS="SECTION" | 2488 CLASS="SECTION" |
2442 ><HR><H2 | 2489 ><HR><H2 |
2443 CLASS="SECTION" | 2490 CLASS="SECTION" |
2444 ><A | 2491 ><A |
2445 NAME="AEN776" | 2492 NAME="AEN795" |
2446 >4.3. Linking Scripts</A | 2493 >4.3. Linking Scripts</A |
2447 ></H2 | 2494 ></H2 |
2448 ><P | 2495 ><P |
2449 >A linker script is used to instruct the linker about how to assemble the | 2496 >A linker script is used to instruct the linker about how to assemble the |
2450 various sections into a completed binary. It consists of a series of | 2497 various sections into a completed binary. It consists of a series of |
2548 ><DIV | 2595 ><DIV |
2549 CLASS="SECTION" | 2596 CLASS="SECTION" |
2550 ><HR><H2 | 2597 ><HR><H2 |
2551 CLASS="SECTION" | 2598 CLASS="SECTION" |
2552 ><A | 2599 ><A |
2553 NAME="AEN810" | 2600 NAME="AEN829" |
2554 >4.4. Format Specific Linking Notes</A | 2601 >4.4. Format Specific Linking Notes</A |
2555 ></H2 | 2602 ></H2 |
2556 ><P | 2603 ><P |
2557 >Some formats require special information to be able to generate actual | 2604 >Some formats require special information to be able to generate actual |
2558 binaries. If the specific format you are interested in is not listed in | 2605 binaries. If the specific format you are interested in is not listed in |
2561 ><DIV | 2608 ><DIV |
2562 CLASS="SECTION" | 2609 CLASS="SECTION" |
2563 ><HR><H3 | 2610 ><HR><H3 |
2564 CLASS="SECTION" | 2611 CLASS="SECTION" |
2565 ><A | 2612 ><A |
2566 NAME="AEN813" | 2613 NAME="AEN832" |
2567 >4.4.1. OS9 Modules</A | 2614 >4.4.1. OS9 Modules</A |
2568 ></H3 | 2615 ></H3 |
2569 ><P | 2616 ><P |
2570 >OS9 modules need to embed several items into the module header. These | 2617 >OS9 modules need to embed several items into the module header. These |
2571 items are the type of module, the langauge of the module, the module | 2618 items are the type of module, the langauge of the module, the module |
2637 ></DIV | 2684 ></DIV |
2638 ><DIV | 2685 ><DIV |
2639 CLASS="CHAPTER" | 2686 CLASS="CHAPTER" |
2640 ><HR><H1 | 2687 ><HR><H1 |
2641 ><A | 2688 ><A |
2642 NAME="AEN825" | 2689 NAME="AEN844" |
2643 ></A | 2690 ></A |
2644 >Chapter 5. Libraries and LWAR</H1 | 2691 >Chapter 5. Libraries and LWAR</H1 |
2645 ><P | 2692 ><P |
2646 >LWTOOLS also includes a tool for managing libraries. These are analogous to | 2693 >LWTOOLS also includes a tool for managing libraries. These are analogous to |
2647 the static libraries created with the "ar" tool on POSIX systems. Each library | 2694 the static libraries created with the "ar" tool on POSIX systems. Each library |
2656 ><DIV | 2703 ><DIV |
2657 CLASS="SECTION" | 2704 CLASS="SECTION" |
2658 ><HR><H2 | 2705 ><HR><H2 |
2659 CLASS="SECTION" | 2706 CLASS="SECTION" |
2660 ><A | 2707 ><A |
2661 NAME="AEN829" | 2708 NAME="AEN848" |
2662 >5.1. Command Line Options</A | 2709 >5.1. Command Line Options</A |
2663 ></H2 | 2710 ></H2 |
2664 ><P | 2711 ><P |
2665 >The binary for LWAR is called "lwar". Note that the binary is in lower | 2712 >The binary for LWAR is called "lwar". Note that the binary is in lower |
2666 case. The options lwar understands are listed below. For archive manipulation | 2713 case. The options lwar understands are listed below. For archive manipulation |
2857 followed by any data required by the term. Then end of the list is flagged | 2904 followed by any data required by the term. Then end of the list is flagged |
2858 by a NULL expression (only an end of expression term).</P | 2905 by a NULL expression (only an end of expression term).</P |
2859 ><DIV | 2906 ><DIV |
2860 CLASS="TABLE" | 2907 CLASS="TABLE" |
2861 ><A | 2908 ><A |
2862 NAME="AEN912" | 2909 NAME="AEN931" |
2863 ></A | 2910 ></A |
2864 ><P | 2911 ><P |
2865 ><B | 2912 ><B |
2866 >Table 6-1. Object File Term Types</B | 2913 >Table 6-1. Object File Term Types</B |
2867 ></P | 2914 ></P |
2929 allows local symbols that are not exported to have the same names as | 2976 allows local symbols that are not exported to have the same names as |
2930 exported symbols or external references.</P | 2977 exported symbols or external references.</P |
2931 ><DIV | 2978 ><DIV |
2932 CLASS="TABLE" | 2979 CLASS="TABLE" |
2933 ><A | 2980 ><A |
2934 NAME="AEN942" | 2981 NAME="AEN961" |
2935 ></A | 2982 ></A |
2936 ><P | 2983 ><P |
2937 ><B | 2984 ><B |
2938 >Table 6-2. Object File Operator Numbers</B | 2985 >Table 6-2. Object File Operator Numbers</B |
2939 ></P | 2986 ></P |