i960 - Untitled
Description: Untitled

Next: ARM, Previous: H8/300, Up: Machine Dependent

### 4.2 `ld` and the Intel 960 Family

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.