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 a BPABI executable file.
The linker can:
Link A32 code and T32 code.
Link A64 code.
Generate interworking veneers to switch between A32 and T32 states 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.
Accept GNU ld scripts when linking code for AArch32 state, with restrictions.
Be aware of the following:
Generated code might be different between two ARM Compiler releases.
For a feature release, there might be significant code generation differences.
The command-line option descriptions and related information in the individual ARM Compiler tools documents describe all the features supported by ARM Compiler. Any features not documented are not supported and are used at your own risk. You are responsible for making sure that any generated code using unsupported features is operating correctly.
Getting Started Guide:
- Other information