<itemize>
-<item> Accept any number of segments to form an executable module.
+<item> Accept any number of segments to form an executable module.
-<item> Resolve arbitrary expressions stored in the object files.
+<item> Resolve arbitrary expressions stored in the object files.
-<item> In case of errors, use the meta information stored in the object files
- to produce helpful error messages. In case of undefined symbols,
- expression range errors, or symbol type mismatches, ld65 is able to
- tell you the exact location in the original assembler source, where
- the symbol was referenced.
+<item> In case of errors, use the meta information stored in the object files
+ to produce helpful error messages. In case of undefined symbols,
+ expression range errors, or symbol type mismatches, ld65 is able to
+ tell you the exact location in the original assembler source, where
+ the symbol was referenced.
-<item> Flexible output. The output of ld65 is highly configurable by a config
- file. Some more-common platforms are supported by default configurations
- that may be activated by naming the target system. The output
- generation was designed with different output formats in mind, so
- adding other formats shouldn't be a great problem.
+<item> Flexible output. The output of ld65 is highly configurable by a config
+ file. Some more-common platforms are supported by default configurations
+ that may be activated by naming the target system. The output
+ generation was designed with different output formats in mind, so
+ adding other formats shouldn't be a great problem.
</itemize>
-vm Verbose map file
Long options:
- --cfg-path path Specify a config file search path
- --config name Use linker config file
- --dbgfile name Generate debug information
- --define sym=val Define a symbol
- --end-group End a library group
- --force-import sym Force an import of symbol 'sym'
- --help Help (this text)
- --lib file Link this library
- --lib-path path Specify a library search path
- --mapfile name Create a map file
- --module-id id Specify a module id
- --obj file Link this object file
- --obj-path path Specify an object file search path
- --start-addr addr Set the default start address
- --start-group Start a library group
- --target sys Set the target system
- --version Print the linker version
+ --allow-multiple-definition Allow multiple definitions
+ --cfg-path path Specify a config file search path
+ --config name Use linker config file
+ --dbgfile name Generate debug information
+ --define sym=val Define a symbol
+ --end-group End a library group
+ --force-import sym Force an import of symbol 'sym'
+ --help Help (this text)
+ --lib file Link this library
+ --lib-path path Specify a library search path
+ --mapfile name Create a map file
+ --module-id id Specify a module id
+ --obj file Link this object file
+ --obj-path path Specify an object file search path
+ --start-addr addr Set the default start address
+ --start-group Start a library group
+ --target sys Set the target system
+ --version Print the linker version
---------------------------------------------------------------------------
</verb></tscreen>
<descrip>
+ <tag><tt>--allow-multiple-definition</tt></tag>
+
+ Normally when a global symbol is defined multiple times, ld65 will
+ issue an error and not create the output file. This option lets it
+ silently ignore this fact and continue. The first definition of a
+ symbol will be used.
+
+
<label id="option--start-group">
<tag><tt>-(, --start-group</tt></tag>
<sect1>Other SEGMENT attributes<p>
Segments may be aligned to some memory boundary. Specify "<tt/align = num/" to
-request this feature. Num must be a power of two. To align all segments on a
-page boundary, use
+request this feature. To align all segments on a page boundary, use
<tscreen><verb>
SEGMENTS {
}
</verb></tscreen>
-The Atari file format has only one attribute, <tt/RUNAD/ that allows to specify
-a symbol as the run address of the binary. If the attribute is omiteed, no run
-address is specified.
+The Atari file format has two attributes:
+
+<descrip>
+
+ <tag><tt>RUNAD = symbol</tt></tag>
+
+ Specify a symbol as the run address of the binary, the loader will call this
+ address after all the file is loaded in memory. If the attribute is omitted,
+ no run address is included in the file.
+
+ <tag><tt>INITAD = memory_area : symbol</tt></tag>
+
+ Specify a symbol as the initialization address for the given memory area.
+ The binary loader will call this address just after the memory area is loaded
+ into memory, before continuing loading the rest of the file.
+
+</descrip>
+
<tscreen><verb>
FORMATS {
freely, subject to the following restrictions:
<enum>
-<item> The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
-<item> Altered source versions must be plainly marked as such, and must not
- be misrepresented as being the original software.
-<item> This notice may not be removed or altered from any source
- distribution.
+<item> The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+<item> Altered source versions must be plainly marked as such, and must not
+ be misrepresented as being the original software.
+<item> This notice may not be removed or altered from any source
+ distribution.
</enum>