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

FBSD_1.2

FreeBSD 9

FBSD_1.3

FreeBSD 10

FBSD_1.4

FreeBSD 11

FBSD_1.5

FreeBSD 12

FBSD_1.6

FreeBSD 13

FBSD_1.7

FreeBSD 14

Further reading

SymbolVersioning (last edited 2022-09-12T16:37:10+0000 by XinLi)