GNU Info

Info Node: (libtool.info)Versioning

(libtool.info)Versioning


Next: Library tips Prev: Integrating libtool Up: Top
Enter node , (file) or (file)node

Library interface versions
**************************

   The most difficult issue introduced by shared libraries is that of
creating and resolving runtime dependencies.  Dependencies on programs
and libraries are often described in terms of a single name, such as
`sed'.  So, one may say "libtool depends on sed," and that is good
enough for most purposes.

   However, when an interface changes regularly, we need to be more
specific: "Gnus 5.1 requires Emacs 19.28 or above."  Here, the
description of an interface consists of a name, and a "version number."

   Even that sort of description is not accurate enough for some
purposes.  What if Emacs 20 changes enough to break Gnus 5.1?

   The same problem exists in shared libraries: we require a formal
version system to describe the sorts of dependencies that programs have
on shared libraries, so that the dynamic linker can guarantee that
programs are linked only against libraries that provide the interface
they require.

Interfaces
What are library interfaces?
Libtool versioning
Libtool's versioning system.
Updating version info
Changing version information before releases.
Release numbers
Breaking binary compatibility for aesthetics.

automatically generated by info2www version 1.2.2.9