Skip to main content
Back to USENIX
  • Conferences
  • Students
Sign in

USENIX Conference Policies

  • Event Code of Conduct
  • Conference Network Policy
  • Statement on Environmental Responsibility Policy

Library Interface Versioning in Solaris and Linux

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.

David J. Brown, Solaris Engineering, Sun Microsystems

Karl Runge, Solaris Engineering, Sun Microsystems

BibTeX
@inproceedings {271258,
author = {David J. Brown and Karl Runge},
title = {Library Interface Versioning in Solaris and Linux},
booktitle = {4th Annual Linux Showcase \& Conference (ALS 2000)},
year = {2000},
address = {Atlanta, GA },
url = {https://www.usenix.org/conference/als-2000/library-interface-versioning-solaris-and-linux},
publisher = {USENIX Association},
month = oct
}
Download

Links

Paper: 
http://www.usenix.org/publications/library/proceedings/als00/2000papers/papers/full_papers/browndavid/browndavid.pdf
Paper (HTML): 
http://www.usenix.org/publications/library/proceedings/als00/2000papers/papers/full_papers/browndavid/browndavid_html/index.html
  • Log in or register to post comments

© USENIX
EIN 13-3055038

  • Privacy Policy
  • Contact Us