Other linker script commands
----------------------------
There are a few other linker scripts commands.
`ASSERT(EXP, MESSAGE)'
Ensure that EXP is non-zero. If it is zero, then exit the linker
with an error code, and print MESSAGE.
`EXTERN(SYMBOL SYMBOL ...)'
Force SYMBOL to be entered in the output file as an undefined
symbol. Doing this may, for example, trigger linking of additional
modules from standard libraries. You may list several SYMBOLs for
each `EXTERN', and you may use `EXTERN' multiple times. This
command has the same effect as the `-u' command-line option.
`FORCE_COMMON_ALLOCATION'
This command has the same effect as the `-d' command-line option:
to make `ld' assign space to common symbols even if a relocatable
output file is specified (`-r').
`INHIBIT_COMMON_ALLOCATION'
This command has the same effect as the `--no-define-common'
command-line option: to make `ld' omit the assignment of addresses
to common symbols even for a non-relocatable output file.
`NOCROSSREFS(SECTION SECTION ...)'
This command may be used to tell `ld' to issue an error about any
references among certain output sections.
In certain types of programs, particularly on embedded systems when
using overlays, when one section is loaded into memory, another
section will not be. Any direct references between the two
sections would be errors. For example, it would be an error if
code in one section called a function defined in the other section.
The `NOCROSSREFS' command takes a list of output section names. If
`ld' detects any cross references between the sections, it reports
an error and returns a non-zero exit status. Note that the
`NOCROSSREFS' command uses output section names, not input section
names.
`OUTPUT_ARCH(BFDARCH)'
Specify a particular output machine architecture. The argument is
one of the names used by the BFD library (Note:BFD). You can
see the architecture of an object file by using the `objdump'
program with the `-f' option.