When you build your application, you must make certain choices. For example:
- Target Architecture and instruction set
A32 or T32 (AArch32 state instruction sets).
Microlib is not supported in AArch64 state.
- Byte order
Only little-endian is supported.
- Floating-point support
In ARMv8, VFP hardware is integral to the architecture. Software floating-point is supported for AArch32 state, but is not supported for AArch64 state.
Software (SoftVFP), hardware (VFP), software or hardware with half-precision or double-precision extensions, or no floating-point support.
- Position independence
Different ways to access your data are as follows:
By absolute address.
Different ways to access your code are as follows:
By absolute address when appropriate.
pc(read-only position independent).
The standard C libraries provide variants to support all of these options.
Position-independent C++ code can only be achieved with
Position independence is supported only in AArch32 state, and is not supported in microlib.
When you link your assembler code, C or C++ code, the linker selects appropriate C and C++ library variants compatible with the build options you specified. There is a variant of the ISO C library for each combination of major build options.