4.5. Tailoring static data access

This section describes using callouts from the C library to access static data. C library functions that use static data can be categorized as follows:

When the C library does something that requires implicit static data, it uses a callout to a function you can replace. These functions are shown in Table 4.5.

Table 4.5. Callouts

FunctionDescription
__rt_errno_addr()Called to get the address of the variable errno. See __rt_errno_addr().
__rt_fp_status_addr()Called by the floating-point support code to get the address of the floating-point status word. See __rt_fp_status_addr().
The locale functionsThe function __user_libspace() creates a block of private static data for the library. See Tailoring locale and CTYPE.

The functions above do not use semihosting.

See also Tailoring the runtime memory model for more information about memory use.

The default implementation of __user_libspace() creates a 96-byte block in the ZI segment. Even if your application does not have a main() function, the __user_libspace() function does not normally have to be redefined. (If you are writing an operating system or a process switcher, however, you must retarget this function.)

Caution

The number of functions that use static data in their definitions might change in future versions of ADS.

Copyright © 1999-2001 ARM Limited. All rights reserved.ARM DUI 0067D
Non-Confidential