You copied the Doc URL to your clipboard.

Selection of ARM C and C++ library variants based on build options

When you build your application, you must make certain choices. For example:

Target Architecture and instruction set

ARM or Thumb instruction sets.

Byte order

Big-endian or little-endian.

Floating-point support

Software (SoftVFP), hardware (VFP), software or hardware with half-precision or double-precision extensions, or no floating-point support.

Position independence

Different ways to access your data are as follows:

  • By absolute address.

  • Relative to sb (read/write position-independent).

  • Relative to pc (fpic).

Different ways to access your code are as follows:

  • By absolute address when appropriate.

  • Relative to pc (read-only position independent).

The standard C libraries provide variants to support all of these options.

Position-independent C++ code can only be achieved with --apcs=/fpic.


Position independence is not supported in microlib.

When you link your assembler code, C or C++ code, the linker selects appropriate C and C++ library variants compatible with the build options you specified. There is a variant of the ISO C library for each combination of major build options.

See also