ld: MRI

 
 Appendix A 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 SeeScripts.
 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 S-records, if OUTPUT-FORMAT is 'S'
 
 '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.