1.26 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. The arm_linux subdirectory contains libraries used for building ARM Linux applications.

cpplib

C++ library for ARM.

prefix
armlinux

Libraries used when building ARM Linux applications.

c

ISO C and C++ basic runtime support.

cpp

Rogue Wave C++ library.

cpprt

ARM C++ runtime libraries.

f

--fpmode=ieee_fixed.

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

fj

--fpmode=ieee_no_fenv.

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

fz

--fpmode=fast or --fpmode=std.

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

--fpmode=ieee_full.

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 ARM only library for use with ARMv4.

t

An ARM/Thumb interworking library for use with ARMv4T.

5

An ARM/Thumb interworking library for use with ARMv5T and later.

w

A Thumb only library for use with ARMv6-M.

p

A Thumb only library for use with ARMv7-M.

2

A combined ARM and Thumb library for use with Cortex-A and Cortex-R series processors. You can prevent this library being selected using the linker option --no_thumb2_library.

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.

Note:

If neither e nor f is present in a library name, the library either:
  • Uses position-dependent access to static data. This is the case for the main C libraries with prefixes c or mc.
  • Does not access static data, or does so only with the help of the main C library. This is the case for fplib and mathlib libraries with prefixes fz, fj, f, g, mf, or m.
enum
n

Compatible with the compiler option, --enum_is_int.

wchar
u

Indicates the size of wchar_t.When present, the library is compatible with the compiler option, --wchar32. Otherwise, it is compatible with --wchar16.

endian
l

Little-endian.

b

Big-endian.

For example:

armlib/c_2.b
cpplib/cpprt_8f.l

Note:

Not all variant/name combinations are valid. See the armlib and cpplib 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.

Non-ConfidentialPDF file icon PDF versionARM DUI0475M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.