This is an old revision of the document!


Symbol Versioning

Starting with FreeBSD 7.0, several libraries (including libc and the thread libraries) use symbol versioning.

This means that each exported symbol has a version tag attached to it, and that when a program is compiled and linked, the linker resolves symbols against the newest available version tag.

When the API changes—for instance, the argument list or return type of a function changes—the old version of the function is replaced with a compatibility stub. Symbol versioning ensures that old programs will use the compatibility stub, while new ones will use the new version.

Currently defined version tags are:

Tag Version
FBSD_1.0 FreeBSD 7
FBSD_1.1 FreeBSD 8
  • symbolversioning.1202220502.txt.gz
  • Last modified: 2008/02/05 14:08
  • by DagErlingSmørgrav