[OpenAFS-devel] Re: [OpenAFS] jafs et al

Dale Ghent daleg@umbc.edu
Fri, 16 Mar 2007 12:27:49 -0400


On Mar 16, 2007, at 12:19 PM, Chaskiel M Grundman wrote:

> You should be aware that symbol versioning does not do this on  
> solaris.
>
> the notion of a library being able to export symbols with the same  
> name and different versions pointing at different addresses is a  
> gnu LD extension (<http://www.linuxshowcase.org/2000/2000papers/ 
> papers/browndavid/browndavid_html/>. section 4.1 discusses the  
> capabilities of sun and gnu LD. section 4.2 explains sun's  
> versioning policy, and why they don't need the multiple-versions  
> capability: once a function is considered 'public', sun never  
> changes its function signature)

...and here's the scoop on that:

http://docs.sun.com/app/docs/doc/817-4415/6mjum5shb?a=view

Quote:

The Solaris link editor and run-time linker use two kinds of library  
versioning: file versioning and symbol versioning. In file  
versioning, a library is named with an appended version number, such  
as libc.so.1. When an incompatible change is made to one or more  
public interfaces in that library, the version number is incremented  
(for example, to libc.so.2). In a dynamically linked application, a  
symbol bound to at build time might not be present in the library at  
run time. In symbol versioning, the Solaris linker associates a set  
of symbols with a name. The linker then checks for the presence of  
the name in the library during run-time linking to verify the  
presence of the associated symbols.

/dale

--
Dale Ghent
UNIX and Storage Systems Specialist
UMBC - Office of Information Technology
ENG 201 - 410-443-1705