C++ initialization in the BPABI DLL-like model
A dynamically linked library (DLL) supports the initialization of static constructors with a table that contains references to initializer functions that perform the initialization.
The table is stored in an ELF section with a special section type of
SHT_INIT_ARRAY. For each of these initializers there is a relocation of
R_ARM_TARGET1 to a function that performs the initialization.
The ELF Application Binary Interface (ABI) specification
R_ARM_TARGET1 as either a relative form, or an absolute form.
The ARM C libraries use the relative form. For example, if the linker detects a definition
of the ARM C library
__cpp_initialize__aeabi, it uses the relative form of
R_ARM_TARGET1 otherwise it uses the absolute form.