|Non-Confidential||PDF version||ARM 100073_0607_00_en|
|Home > The ARM C and C++ Libraries > C and C++ runtime libraries > Selection of ARM C and C++ library variants based on build options|
When you build your application, you must make certain choices such as the target architecture, instruction set, and byte order. You communicate these choices to the compiler using build options. The linker then selects appropriate C and C++ library variants compatible with these build options.
Choices that influence the ARM® C and C++ library variant include the following:
A32 or T32 (AArch32 state instruction sets).
Position independent code uses PC-relative addressing modes where possible and otherwise accesses global data through the Global Offset Table (GOT).
Different ways to access your data are as follows:
Different ways to access your code are as follows:
pc(read-only position independent).
A bare-metal Position Independent Executable (PIE) is an executable that does not need to be executed at a specific address but can be executed at any suitably aligned address.
The standard C libraries provide variants to support all of these options.
You can only achieve position-independent C++ code with
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.