Why versioned library names?
Siddhesh Poyarekar
siddhesh@gotplt.org
Tue Dec 11 04:39:00 GMT 2018
On 23/11/18 5:32 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?
That has been my understanding as well; I'm not old enough to
definitively claim that it is.
As for removing this feature, on the contrary I feel like it's not
sufficient and that we need to strengthen this to make recoveries from
botched updates more solid, similar to the kernel. Right now a botched
glibc update means that you have to go looking for your rescue disc to
recover. An ideal set up would be:
1. Versioned (e.g. ld-2.25-200.fc29.so) glibc libraries
2. glibc symlinks set using sln at every boot by the kernel based on a
configuration file. A glibc update then only updates that configuration
file and a subsequent reboot picks up the correct glibc. This solves
the race conditions that occur with updates of different library files.
3. A kernel boot option glibcver=2.25-200.fc29 to override the
configuration file.
Siddhesh
PS: I won't call the config file a systemwide tunable file, but you
could call it that if you want ;)
More information about the Libc-alpha
mailing list