Visibility of symbols
A visibility property can be associated with global symbols to
be used by the linker when it creates a program or a shared object.
The visibility of a symbol is specified with an optional parameter
of the .extern, .globl, .weak, or .comm pseudo-op.
The following visibility properties are defined for a symbol:
- exported: The symbol is exported and preemptible.
- protected: The symbol is exported but is not preemptible.
- hidden: The symbol is not exported.
- internal: The symbol cannot be exported.
Symbol visibilities are also affected by linker options.