On 2021/02/17 09:34, Jan Engelhardt wrote:
On Wednesday 2021-02-17 16:19, L A Walsh wrote:
Windows gets around it by having multiple
so's -- installing the 'so'
that each program compiled with.
Which is a problematic approach too, because
(a) even functions that are unchanged between two versions now occupy extra
Back when disks were sized in MB, I was more concerned about that.
However it doesn't seem to be an issue on today's disks.
(b) when a program loads two or more versions,
possibly indirectly (and thus
can't control it), the libraries compete on who gets to provide what symbol.
Why would 1 program load two or more versions? It only binds with
And then things can crash because oh the library with the slightly different
ABI won the dlopen competition.
The program binds with the lib it was built against in a similar way as
binding with a static lib, but if that library is already installed, on a
given machine, it can be shared with other programs that use the same version.
Ultimately MS uses GUID's for describing uniq libraries. I've never
heard of a program binding to 2 different libraries, but that seems like
some sort of quantum binding where something can be 2 things at once. But
once the program binds, it decays into 1 fixed state, no?
That said, the repositories ship multiple SOs when the
dependency tree needs
Satisfying dependencies within 1 daily TW release is 1 thing, but
I'm talking about satisfying dependencies for all programs the user has built
or installed during the life of the OS's installation on the machine.
I shouldn't have to wipe my machine's OS during it's lifetime
unless there is a problem, but given that I build my own packages and
rebuild my own versions of some from included sources, that means
there are dependencies on my machine for some library versions that
wouldn't be listed in a repository's manifest. I would expect that the
libraries I build with aren't going to suddenly become unavailable for
programs I've built myself.
Not being able to build and install your own SW makes a personal
computer a bit less useful, especially where open source is involved.