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
C8-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_HIDDENSTV_INTERNAL
Symbol must be resolved within the module.
Symbol is not visible outside the module.
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.
Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers of your data.