# title
Arm Compiler for Embedded Arm C and C++ Libraries and Floating-Point Support User Guide

# topic.label
Arm® Compiler for Embedded Arm® C and C++ Libraries and Floating-Point Support User Guide

# topic.topics[].topics[].topics[].label
Compliance with the Application Binary Interface (ABI) for the Arm architecture

# topic.topics[].topics[].topics[].label
Increasing portability of object files to other CLIBABI implementations

# topic.topics[].topics[].topics[].label
Arm C and C++ library directory structure

# topic.topics[].topics[].topics[].label
Selection of Arm C and C++ library variants based on build options

# topic.topics[].topics[].label
C++ and C libraries and the std namespace

# topic.topics[].topics[].label
Multithreaded support in Arm C libraries

# topic.topics[].topics[].topics[].label
Arm C libraries and thread-safe functions

# topic.topics[].topics[].topics[].label
Use of the __user_libspace static data area by the C libraries

# topic.topics[].topics[].topics[].label
C library functions to access subsections of the __user_libspace static data area

# topic.topics[].topics[].topics[].label
Reimplementation of legacy function __user_libspace() in the C library

# topic.topics[].topics[].topics[].label
Management of locks in multithreaded applications

# topic.topics[].topics[].topics[].label
How to ensure reimplemented mutex functions are called

# topic.topics[].topics[].topics[].label
Using the Arm C library in a multithreaded environment

# topic.topics[].topics[].topics[].label
The floating-point status word in a multithreaded environment

# topic.topics[].topics[].label
Multithreaded support in Arm C++ libraries [ALPHA]

# topic.topics[].topics[].topics[].label
Arm C++ libraries and multithreading [ALPHA]

# topic.topics[].topics[].topics[].label
Supported C++ Concurrency Features [ALPHA]

# topic.topics[].topics[].topics[].label
Standard library concurrency constructs [ALPHA]

# topic.topics[].topics[].topics[].label
Thread-safe initialization of Mutexes and Condition variables [ALPHA]

# topic.topics[].topics[].label
Support for building an application with the C library

# topic.topics[].topics[].topics[].label
Using the C and C++ libraries with an application in a semihosting environment

# topic.topics[].topics[].topics[].label
Using $Sub$$ to mix semihosted and nonsemihosted I/O functionality

# topic.topics[].topics[].topics[].label
Using the libraries in a nonsemihosting environment

# topic.topics[].topics[].topics[].label
Direct semihosting C library function dependencies

# topic.topics[].topics[].topics[].label
Indirect semihosting C library function dependencies

# topic.topics[].topics[].topics[].label
C library API definitions for targeting a different environment

# topic.topics[].topics[].label
Support for building an application without the C library

# topic.topics[].topics[].topics[].label
Creating an application as bare machine C without the C library

# topic.topics[].topics[].topics[].label
Integer and floating-point compiler functions and building an application without the C library

# topic.topics[].topics[].topics[].label
Bare machine C with floating-point processing

# topic.topics[].topics[].topics[].label
Customized C library startup code and access to C library functions

# topic.topics[].topics[].topics[].label
Using low-level functions when exploiting the C library

# topic.topics[].topics[].topics[].label
Using high-level functions when exploiting the C library

# topic.topics[].topics[].topics[].label
Using malloc() when exploiting the C library

# topic.topics[].topics[].label
Tailoring the C library to a new execution environment

# topic.topics[].topics[].topics[].label
Initialization of the execution environment and execution of the application

# topic.topics[].topics[].topics[].label
C++ initialization, construction and destruction

# topic.topics[].topics[].label
Assembler macros that tailor locale functions in the C library

# topic.topics[].topics[].topics[].label
Link time selection of the locale subsystem in the C library

# topic.topics[].topics[].topics[].label
Runtime selection of the locale subsystem in the C library

# topic.topics[].topics[].topics[].label
Definition of locale data blocks in the C library

# topic.topics[].topics[].label
Modification of C library functions for error signaling, error handling, and program exit

# topic.topics[].topics[].label
Stack and heap memory allocation and the Arm C and C++ libraries

# topic.topics[].topics[].topics[].label
Library heap usage requirements of the Arm C and C++ libraries

# topic.topics[].topics[].topics[].label
Choosing a heap implementation for memory allocation functions

# topic.topics[].topics[].topics[].label
Stack pointer initialization and heap bounds

# topic.topics[].topics[].topics[].label
Avoiding the heap and heap-using library functions supplied by Arm

# topic.topics[].topics[].label
Tailoring input/output functions in the C and C++ libraries

# topic.topics[].topics[].label
Target dependencies on low-level functions in the C and C++ libraries

# topic.topics[].topics[].label
The C library printf family of functions

# topic.topics[].topics[].label
Redefining low-level library functions to enable direct use of high-level library functions in the C library

# topic.topics[].topics[].label
The C library functions fread(), fgets() and gets()

# topic.topics[].topics[].label
Reimplementing __backspace() in the C library

# topic.topics[].topics[].label
Reimplementing __backspacewc() in the C library

# topic.topics[].topics[].label
Redefining target-dependent system I/O functions in the C library

# topic.topics[].topics[].label
Tailoring non-input/output C library functions

# topic.topics[].topics[].label
Real-time integer division in the Arm libraries

# topic.topics[].topics[].topics[].label
How the Arm C library fulfills ISO C specification requirements

# topic.topics[].topics[].topics[].label
ISO-compliant implementation of signals supported by the signal() function in the C library and additional type arguments

# topic.topics[].topics[].topics[].label
Standard C++ library implementation definition

# topic.topics[].topics[].label
Using macro__ARM_WCHAR_NO_IO to disable FILE declaration and wide I/O function prototypes

# topic.topics[].topics[].label
Using library functions with execute-only memory

# topic.topics[].topics[].topics[].label
Entering and exiting programs linked with microlib

# topic.topics[].topics[].topics[].label
Configuring the stack and heap for use with microlib

# topic.topics[].topics[].topics[].label
Tailoring the microlib input/output functions

# topic.topics[].topics[].topics[].label
Library heap usage requirements of microlib

# topic.topics[].topics[].label
Differences between microlib and the default C library

# topic.topics[].topics[].label
Controlling the Arm floating-point environment

# topic.topics[].topics[].topics[].label
Floating-point functions for compatibility with Microsoft products

# topic.topics[].topics[].topics[].label
C99-compatible functions for controlling the Arm floating-point environment

# topic.topics[].topics[].topics[].label
C99 rounding mode and floating-point exception macros

# topic.topics[].topics[].topics[].label
Functions for saving and restoring the whole floating-point environment

# topic.topics[].topics[].topics[].label
Functions for temporarily disabling exceptions

# topic.topics[].topics[].topics[].label
Arm floating-point compiler extensions to the C99 interface

# topic.topics[].topics[].label
mathlib double and single-precision floating-point functions

# topic.topics[].topics[].topics[].label
Basic data types for IEEE 754 arithmetic

# topic.topics[].topics[].topics[].label
Single precision data type for IEEE 754 arithmetic

# topic.topics[].topics[].topics[].label
Double precision data type for IEEE 754 arithmetic

# topic.topics[].topics[].topics[].label
Sample single precision floating-point values for IEEE 754 arithmetic

# topic.topics[].topics[].topics[].label
Sample double precision floating-point values for IEEE 754 arithmetic

# topic.topics[].topics[].topics[].label
Exceptions arising from IEEE 754 floating-point arithmetic

# topic.topics[].topics[].topics[].label
Exception types recognized by the Arm floating-point environment

# topic.topics[].label
The C and C++ Library Functions Reference

# topic.topics[].topics[].label
C library functions that are not thread-safe

# topic.topics[].label
Arm C and C++ Libraries and Floating-Point Support User Guide Changes

# topic.topics[].topics[].label
Changes for the Arm C and C++ Libraries and Floating-Point Support User Guide

# metadata.contentDescription
Arm Compiler for Embedded Arm C and C++ Libraries and Floating-Point Support User Guide. This manual provides user information for the Arm libraries and floating-point support.