Overview of linking models
A linking model is a group of command-line options and memory maps that control the behavior of the linker.
The linking models supported by armlink are:
This model does not target any specific platform. It enables you to create an image with your own custom operating system, memory map, and, application code if required. Some limited dynamic linking support is available. You can specify additional options depending on whether or not a scatter file is in use.
- Partial linking
This model produces a relocatable ELF object suitable for input to the linker in a subsequent link step. The partial object can be used as input to another link step. The linker performs limited processing of input objects to produce a single output object.
This model supports the DLL-like Base Platform Application Binary Interface (BPABI). It is intended to produce applications and DLLs that can run on a platform OS that varies in complexity. The memory model is restricted according to the Base Platform ABI for the ARM Architecture (IHI 0037 C).
- Base Platform
This is an extension to the BPABI model to support scatter-loading.
This model supports applications and shared objects as used by System Vr4 (SysV) and ARM Linux. The memory model can be controlled with a GNU compatible ldscript. The memory model is restricted according to the ELF specification.
Related options in each model can be combined to tighten control over the output.
Execute-only (XO) memory is supported only for the bare-metal linking model. For other linking models, armlink generates an error if an object file contains XO sections.