1.1.1 Summary of the linker features
The linker has many features for linking input files to generate various types of output files.
The linker can:
- Link ARM® code and Thumb® code.
- Generate interworking veneers to switch
between ARM and Thumb states when required.
- Generate range extension 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
- 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 RW data compression to minimize ROM size.
- Eliminate unused sections to reduce the size of your output
- 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.
Be aware of the following:
- Generated code might be different between two ARM Compiler
- For a feature release, there might be significant code generation
Note: The command-line option descriptions and related
information in the individual ARM Compiler tools documents describe all the features that ARM Compiler supports. 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