You can use the ‘-Aarchitecture’ command line option to specify one of the two-letter names identifying members of the 960 family; the option specifies the desired output target, and warns of any incompatible instructions in the input files. It also modifies the linker's search strategy for archive libraries, to support the use of libraries specific to each particular architecture, by including in the search loop names suffixed with the string identifying the architecture.
For example, if your ld command line included ‘-ACA’ as well as ‘-ltry’, the linker would look (in its built-in search paths, and in any paths you specify with ‘-L’) for a library with the names
try libtry.a tryca libtryca.a
The first two possibilities would be considered in any event; the last two are due to the use of ‘-ACA’.
You can meaningfully use ‘-A’ more than once on a command line, since the 960 architecture family allows combination of target architectures; each use will add another pair of name variants to search for when ‘-l’ specifies a library.
ld supports the ‘--relax’ option for the i960 family. If
you specify ‘--relax’, ld finds all balx
and
calx
instructions whose targets are within 24 bits, and turns
them into 24-bit program-counter relative bal
and cal
instructions, respectively. ld also turns cal
instructions into bal
instructions when it determines that the
target subroutine is a leaf routine (that is, the target subroutine does
not itself call any subroutines).
The ‘--fix-cortex-a8’ switch enables a link-time workaround for an erratum in certain Cortex-A8 processors. The workaround is enabled by default if you are targeting the ARM v7-A architecture profile. It can be enabled otherwise by specifying ‘--fix-cortex-a8’, or disabled unconditionally by specifying ‘--no-fix-cortex-a8’.
The erratum only affects Thumb-2 code. Please contact ARM for further details.
The ‘--no-merge-exidx-entries’ switch disables the merging of adjacent exidx entries in debuginfo.