11.3 Linker changes between RVCT v4.0 and ARM Compiler v4.1

Various changes have been made to armlink in ARM Compiler toolchain v4.1.

The following changes to the linker have been made:

GNU ld script support

armlink v4.1 supports a subset of GNU linker control scripts. To more closely match the behavior of GNU ld, armlink uses an internal linker control script when you specify the --sysv command-line option. In previous versions of armlink an internal scatter file was used.

The use of a control script produces a logically equivalent, but physically different layout to RVCT v4.0. To revert back to the default scatter file layout use the command-line option --no_use_sysv_default_script.

You can replace the internal control script with a user-defined control script using the -T option.

ARM/Thumb synonyms removed

Support for the deprecated feature ARM/Thumb Synonyms has been removed in 4.1. The ARM/Thumb synonyms feature permits an ARM Global Symbol Definition of symbol S and a Thumb Global Symbol Definition of S to coexist. All branches from ARM state are directed at the ARM Definition, all branches from Thumb state are directed at the Thumb Definition.

In 4.0 armlink gives a deprecated feature warning L6455E when it detects ARM/Thumb Synonyms.

In 4.1 armlink gives an error message L6822E when it detects ARM/Thumb Synonyms.

To recreate the behavior of synonyms rename both the ARM and Thumb definitions and relink. For each undefined symbol you have to point it at the ARM or the Thumb synonym.

Non-ConfidentialPDF file icon PDF versionARM DUI0530M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.