f78
MRI Compatible Script Files
Contents|Index|Previous
MRI
Compatible Script Files
To aid users making the transition
to GNU ld
from the MRI linker, ld
can use MRI compatible linker scripts as an alternative to the more general-purpose
linker scripting language described in Command
Language. MRI compatible linker scripts have a much simpler
command set than the scripting language otherwise used with ld.
GNU ld
supports the most commonly used MRI linker commands; these commands are
described in the following.
In general, MRI scripts arent
of much use with the a.out
object 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,
ld
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
-
ABSOLUTE secname, secname,
... secname
Normally, ld
includes in the output file all sections from all the input files. However,
in an MRI-compatible script, you can use the ABSOLUTE
command to restrict the sections that will be present in your output program.
If the ABSOLUTE
command is used at all in a script, then only the sections named explicitly
in ABSOLUTE
commands 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
Use this command to place
the data from input section in-secname
in a section called out-secname
in the linker output file.
in-secname
may be an integer.
-
ALIGN secname=expression
Align the section called
secname
to expression.
The expression
should be a power of two.
-
BASE expression
Use the value of expression
as the lowest address (other than absolute addresses) in the output file.
-
CHIP
expression
-
CHIP expression, expression
This command does nothing;
it is accepted only for compatibility.
-
END
This command does nothing
whatever; its only accepted for compatibility.
-
FORMAT output-format
Similar to the
OUTPUT_FORMAT
command in the more general linker language, but restricted to one of these
output formats:
-
LIST anything...
Print (to the standard output
file) a link map, as produced by the ld
command-line option -M.
The keyword LIST
may be followed by anything on the same line, with no change in its effect.
-
LOAD
filename
-
LOAD
filename, filename,
... filename
Include one or more object
file filename
in the link; this has the same effect as specifying filename
directly on the ld
command line.
-
NAME
output-name
output-name
is the name for the program produced by ld;
the MRI-compatible command NAME
is equivalent to the command-line option -o
or the general script language command OUTPUT.
-
ORDER
secname, secname,
... secname
-
ORDER
secname secname
secname
Normally, ld
orders 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 ORDER
command. The sections you list with ORDER
will appear first in your output file, in the order specified.
-
PUBLIC
name=expression
-
PUBLIC
name, expression
-
PUBLIC
name expression
Supply a value (expression)
for external symbol name used in the linker input files.
-
SECT
secname, expression
-
SECT
secname=expression
-
SECT
secname expression
You can use any of these
three forms of the SECT
command to specify the start address (expression)
for section
sec-name.
If you have more than one SECT
statement for the same sec-name,
only the first sets the start address.
0