Non-Confidential | ![]() | ARM 100073_0607_00_en | ||
| ||||
Home > The ARM C and C++ Libraries > C and C++ library naming conventions |
The library filename identifies how the variant was built.
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
libcxx
prefix
c
libcpp
libcppabi
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
m
mc
mf
arch
4
t
5
p
w
2
8
o
fpu
m
v
s
Soft VFP.
entrant
e
f
FPIC addressing is enabled (used by
armclang option -bare-metal-pie
).
e
and f
are
not present in a library name, the library uses position-dependent access to
static data.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
b
For example:
armlib/c_2.b libcxx/libcpp_8f.l
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.