Why versioned library names?

David Newall davidn@davidnewall.com
Wed Dec 5 23:50:00 GMT 2018


On 5/12/18 11:47 pm, Florian Weimer wrote:
> Why does the default “make install” command install the library files
> with versions in their names and relies on symbolic links to provide the
> official names?
>
> Is this so that a previous version of glibc can be restored by using
> sln?  If this is the only reason, is it worth keeping this feature?

It's been a long time since shared libraries became a thing, but, I seem 
to recall that one of the design goals was that you could keep multiple 
versions, and programs would load against the particular version that 
they needed.  That is, each program would specify not just the name of 
the various shared libraries, but the names and versions.  I think this 
is still done with the major version number, but I guess you are asking 
about minor version numbers.

Having the version number in the name of each library allowed symbolic 
links to be used to point each version to a newer compatible version, 
thus saving disk space while still allowing old binaries to run.



More information about the Libc-alpha mailing list