You copied the Doc URL to your clipboard.

Arm Compiler armlink User Guide : Overview of linking models

Overview of linking models

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.
Bare-metal Position Independent Executables (PIE)

This model produces a bare-metal Position Independent Executable (PIE). This is an executable that does not need to be executed at a specific address but can be executed at any suitably aligned address. All objects and libraries linked into the image must be compiled to be position independent.


Bare-metal PIE support is deprecated in this release.
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).


Not supported for AArch64 state.
Base Platform

This is an extension to the BPABI model to support scatter-loading.


Not supported for AArch64 state.

You can combine related options in each model to tighten control over the output.