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

An ARM C library. The arm_linux subdirectory contains libraries used for building ARM Linux applications.

cpplib

An ARM C++ library.

prefix

armlinux

Libraries used when building ARM Linux applications.

c

ISO C and C++ basic runtime support.

cpp

Rogue Wave C++ library.

cpprt

The 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_4.b
cpplib/cpprt_5f.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.

Was this page helpful? Yes No