10.5.7 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 type R_ARM_TARGET1 to a function that performs the initialization.

The ELF Application Binary Interface (ABI) specification describes 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.

Non-ConfidentialPDF file icon PDF versionARM DUI0474M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.