10.3.5 Symbol versioning for BPABI models

Symbol versioning provides a way to tightly control the interface of a shared library.

When a symbol is imported from a shared library that has versioned symbols,
armlink binds to the most recent (default) version of the symbol. At
load or run-time when the platform OS resolves the symbol version, it always resolves to the
version selected by armlink, even if there is a more recent version
available. This process is automatic.

When a symbol is exported from an executable or a shared
library, it can be given a version. armlink supports:

Implicit symbol versioning where the version is derived from the shared
object name (set by --soname).

Explicit symbol versioning where you use a script to precisely define
the versions.