9.4.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.


The DLL-like model is not supported for AArch64 state.
Non-ConfidentialPDF file icon PDF versionDUI0803J
Copyright © 2014–2017, 2019 Arm Limited or its affiliates. All rights reserved.