10.3.2 Symbol visibility for BPABI models

For Base Platform Application Binary Interface (BPABI) models, each symbol has a visibility property that can be controlled by compiler switches, a steering file, or attributes in the source code.

If a symbol is a reference, the visibility controls the definitions that the linker can use to define the symbol.

If a symbol is a definition, the visibility controls whether the symbol can be made visible outside the current module.

The visibility options defined by the ELF specification are:

Table 10-1 Symbol visibility

Visibility Reference Definition
STV_DEFAULT Symbol can be bound to a definition in a shared object. Symbol can be made visible outside the module. It can be preempted by the dynamic linker by a definition from another module.
STV_PROTECTED Symbol must be resolved within the module. Symbol can be made visible outside the module. It cannot be preempted at run-time by a definition from another module.
STV_HIDDEN STV_INTERNAL Symbol must be resolved within the module. Symbol is not visible outside the module.

Symbol preemption is most common in System V (SysV) systems. Symbol preemption can happen in dynamically linked library (DLL) like implementations of the BPABI. The platform owner defines how this works. See the documentation for your specific platform for more information.

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