ALS 2000 Abstract
Library Interface Versioning in Solaris and Linux
David J. Brown and Karl Runge, Sun Microsystems Inc.
Abstract
Shared libraries in
Solaris
and
Linux
use a versioning technique which allows the link editor to record an application's dependency on a particular release level of the library. The versioning mechanism operates at the level of the library's
GLOBAL
symbol names--a finer granularity than simply associating a version number with the library itself. In Solaris, this mechanism has also been used to provide a means for the system-supplied shared libraries to define their application interface: to declare specifically which of their symbols are intended for application use (and are stable from one release to the next), and which are internal to the system's implementation (and hence subject to incompatible change).
This paper describes the library symbol-versioning technology in
Linux
and
Solaris
, the ways in which it is used to support upward compatibility for existing compiled applications from one release of
Solaris
to the next, and the potential for similar mechanisms to be applied in
Linux
versioned shared libraries.
|