You copied the Doc URL to your clipboard.

Use of the __user_libspace static data area by the C libraries

The __user_libspace static data area holds the static data for the C libraries. The C libraries use the __user_libspace area to store a number of different types of data.

This is a block of 96 bytes of zero-initialized data, supplied by the C library. It is also used as a temporary stack during C library initialization.

The default ARM® C libraries use the __user_libspace area to hold:

  • errno, used by any function that is capable of setting errno. By default, __rt_errno_addr() returns a pointer to errno.
  • The Floating-Point (FP) status word for software floating-point (exception flags, rounding mode). It is unused in hardware floating-point. By default, __rt_fp_status_addr() returns a pointer to the FP status word.
  • A pointer to the base of the heap (that is, the __Heap_Descriptor), used by all the malloc-related functions.
  • The current locale settings, used by functions such as setlocale(), but also used by all other library functions that depend on them. For example, the ctype.h functions have to access the LC_CTYPE setting.


How the C and C++ libraries use the __user_libspace area might change in future releases.
Was this page helpful? Yes No