Check out the new USENIX Web site.

Home About USENIX Events Membership Publications Students
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.

?Need help? Use our Contacts page.

Last changed: 29 Jan. 2002 ml
Technical Program
ALS Web Site
USENIX home