Use of the __user_libspace static data area by the C libraries
__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
errno, used by any function that is capable of setting
errno. By default,
__rt_errno_addr()returns a pointer to
- 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
- The current locale settings, used by functions such
setlocale(), but also used by all other library functions that depend on them. For example, the
ctype.hfunctions have to access the
NoteHow the C and C++ libraries use the
__user_libspacearea might change in future releases.