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
--sysvcommand-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
You can replace the internal control script with a user-defined control script using the
- 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
Sand a Thumb Global Symbol Definition of
Sto 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
L6455Ewhen it detects ARM/Thumb Synonyms.
In 4.1 armlink gives an error message
L6822Ewhen 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.