You copied the Doc URL to your clipboard.

C and C++ library naming conventions

The library filename identifies how the variant was built.

Note

The library naming convention described in this documentation applies to the current release of the ARM compilation tools. Do not rely on C and C++ library names. They might change in future releases.

Normally, you do not have to list any of the C and C++ libraries explicitly on the linker command line. The ARM linker automatically selects the correct C or C++ libraries to use, and it might use several, based on the accumulation of the object attributes.

The values for the fields of the filename, and the relevant build options are:

root/prefix_arch[fpu][entrant][enum][wchar].endian

root
armlib
ARM C library.
libcxx
libc++ library.
prefix
c
ISO C and C++ basic runtime support.
libcpp
libc++ library.
libcppabi
libc++abi runtime library.
f

IEEE-compliant library with a fixed rounding mode (round to nearest) and no inexact exceptions.

fj

IEEE-compliant library with a fixed rounding mode (round to nearest) and no exceptions.

fz

Behaves like the fj library, but additionally flushes denormals and infinities to zero.

This library behaves like the ARM VFP in Fast mode. This is the default.

g

IEEE-compliant library with configurable rounding mode and all IEEE exceptions.

h
Compiler support (helper function) library.
m
Transcendental math functions.
mc
Non ISO C-compliant ISO C micro-library basic runtime support.
mf
Non IEEE 754 floating-point compliant micro-library support.
arch
4
An A32 only library for use with ARMv4. This is not available for C++.
t
An A32/T32 interworking library for use with ARMv4T. This is not available for C++.
5
An A32/T32 interworking library for use with ARMv5T and later. This is not available for C++.
p
A T32 only library for use with ARMv6-M.
w
A T32 only library for use with ARMv7-M.
2
A combined A32 and T32 library for use with Cortex-A and Cortex-R series processors.
8
An A32/T32 interworking library for use with ARMv8, AArch32 state.
o
An A64 library for use with ARMv8, AArch64 state.
fpu
m
A variant of the library for processors that have single-precision hardware floating-point only, such as Cortex-M4.
v
Uses VFP instruction set.
s

Soft VFP.

Note

If none of v, m, or s are present in a library name, the library provides no floating-point support.
entrant
e
Position-independent access to static data.
f

FPIC addressing is enabled (used by armclang option -bare-metal-pie).

Note

  • Position independence is only supported in AArch32 state. If both e and f are not present in a library name, the library uses position-dependent access to static data.
  • Bare-metal PIE support is deprecated in this release.
enum
n

Compatible with the default compiler option, -fno-short-enums.

wchar
u

Indicates the size of wchar_t.When present, the library is compatible with the compiler option, -fno-short-wchar. Otherwise, it is compatible with -fshort-wchar.

endian
l
Little-endian.
b
Big-endian.

For example:

armlib/c_2.b
libcxx/libcpp_8f.l

Note

Not all variant/name combinations are valid. See the armlib and libcxx directories for the libraries that are supplied with the ARM Compiler.

The linker command-line option --info libraries provides information on every library that is automatically selected for the link stage.

Was this page helpful? Yes No