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.