The linker, armlink, combines the contents of one or more object files with selected parts of one or more object libraries to produce:
an ARM ELF image
a partially linked ELF object that can be used as input in a subsequent link step
ELF files that can be demand-paged efficiently
a shared object, compatible with the Base Platform Application Binary Interface (BPABI) or System V release 4 (SysV) specification, or a BPABI or SysV executable file.
The linker can:
link ARM code and 16-bit Thumb® and 32-bit Thumb code
generate interworking veneers to switch processor state when required
generate inline veneers or long branch veneers, where required, to extend the range of branch instructions
automatically select the appropriate standard C or C++ library variants to link with, based on the build attributes of the objects it is linking
enable you to specify the locations of code and data within the system memory map, using either a command-line option or a scatter file
perform Read/Write data compression to minimize ROM size
perform unused section elimination to reduce the size of your output image
control the generation of debug information in the output file
generate a static callgraph and list the stack usage
control the contents of the symbol table in output images
show the sizes of code and data in the output
use linker feedback to remove individual unused functions
accept GNU ld scripts, with restrictions.
A 64-bit version of armlink is provided that can utilize the greater amount of memory available to processes on 64-bit operating systems. It supports all the features that are supported by the 32-bit version of armlink in this release.
Introducing the ARM Compiler toolchain:
- Other information