To aid users making the transition to GNU
ld from the MRI
ld can use MRI compatible linker scripts as an
alternative to the more general-purpose linker scripting language
described in section Command Language. MRI compatible linker
scripts have a much simpler command set than the scripting language
otherwise used with
ld supports the most
commonly used MRI linker commands; these commands are described here.
In general, MRI scripts aren't of much use with the
file format, since it only has three sections and MRI scripts lack some
features to make use of them.
You can specify a file containing an MRI-compatible script using the `-c' command-line option.
Each command in an MRI-compatible script occupies its own line; each
command line starts with the keyword that identifies the command (though
blank lines are also allowed for punctuation). If a line of an
MRI-compatible script begins with an unrecognized keyword,
issues a warning message, but continues processing the script.
Lines beginning with `*' are comments.
You can write these commands using all upper-case letters, or all lower case; for example, `chip' is the same as `CHIP'. The following list shows only the upper-case form of each command.
ABSOLUTE secname, secname, ... secname
ldincludes in the output file all sections from all the input files. However, in an MRI-compatible script, you can use the
ABSOLUTEcommand to restrict the sections that will be present in your output program. If the
ABSOLUTEcommand is used at all in a script, then only the sections named explicitly in
ABSOLUTEcommands will appear in the linker output. You can still use other input sections (whatever you select on the command line, or using
LOAD) to resolve addresses in the output file.
ALIAS out-secname, in-secname
ALIGN secname = expression
CHIP expression, expression
OUTPUT_FORMATcommand in the more general linker language, but restricted to one of these output formats:
ldcommand-line option `-M'. The keyword
LISTmay be followed by anything on the same line, with no change in its effect.
LOAD filename, filename, ... filename
ld; the MRI-compatible command
NAMEis equivalent to the command-line option `-o' or the general script language command
ORDER secname, secname, ... secname
ORDER secname secname secname
ldorders the sections in its output file in the order in which they first appear in the input files. In an MRI-compatible script, you can override this ordering with the
ORDERcommand. The sections you list with
ORDERwill appear first in your output file, in the order specified.
PUBLIC name expression
SECT secname, expression
SECT secname expression
SECTcommand to specify the start address (expression) for section secname. If you have more than one
SECTstatement for the same secname, only the first sets the start address.