Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- The GNU linker. - <b>mri compatible script files</b> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
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 *Note
Command Language: Commands.  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 here.

   In general, MRI scripts aren't 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; it's 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:

       1. S-records, if OUTPUT-FORMAT is `S'

       2. IEEE, if OUTPUT-FORMAT is `IEEE'

       3. COFF (the `coff-m68k' variant in BFD), if OUTPUT-FORMAT is
          `COFF'

`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 SECNAME.  If
     you have more than one `SECT' statement for the same SECNAME, only
     the *first* sets the start address.


Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson