[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#882255: libc6-amd64: Multilib causes catastrophic system failure during upgrade to libc 2.25




On Mon, 20 Nov 2017, Aurelien Jarno wrote:

> On 2017-11-20 21:58, Mikulas Patocka wrote:
> > 
> > 
> > On Mon, 20 Nov 2017, Samuel Thibault wrote:
> > 
> > > Mikulas Patocka, on lun. 20 nov. 2017 19:13:31 +0100, wrote:
> > > > There is package libc6-amd64:i386 and libc6-amd64:x32 (which provide
> > > > x86-64 libc in /lib64/). This package is not technically needed (because
> > > > x86-64 libc is already installed in /lib/x86_64-linux-gnu/), but it is
> > > > installed nonetheless because of some dependencies.
> > > 
> > > The issue of libc6-amd64:i386 conflicting with libc6:amd64 is not new, I
> > > tried to do it in the past, just to see, with the same kind of effect as
> > > you had.
> > > 
> > > The question is rather how that got pulled at all. What package thinks
> > > it's a good idea to pull libc6-amd64?  Apart from libc64* packages
> > > (which should normally not get pulled either), I can see uc-echo which
> > > should rather use foreign dependencies, and :i386 multilib packages
> > > which don't really make sense to install either.
> > > 
> > > I don't remember whether it was tried to make libc6-amd64:i386 conflict
> > > with libc6:amd64 (and vice-versa for i386) to make sure that this
> > > doesn't happen by misfortune?
> > > 
> > > Samuel
> > 
> > libc6-amd64 is pulled by lib64asan0, lib64asan1, lib64asan2, lib64asan3, 
> > lib64asan4, lib64atomic1, lib64cilkrts5, lib64gcc1, lib64gomp1, lib64itm1, 
> > lib64quadmath0, lib64stdc++6, lib64ubsan0, libc6-dev-amd64.
> > 
> > If you install gcc-7-multilib for non-default architecture (i386 or x32), 
> > it will inevitably pull libc6-amd64.
> 
> What's the point of doing that, as opposed for example building with
> -m32 or mx32?

The native x32 gcc binary is about 10% faster than the amd64 binary.

> > If we removed libc6-amd64 at all, it would cause problems building amd64 
> > packages on i386 system. We could make those lib64* packages dependent on 
> > libc6:amd64 instead, but that would break if the user has i386 
> > installation and he doesn't have amd64 foreign architecture set up.
> > 
> > It would be best to set it up so that libc6-amd64 doesn't install any 
> > files only if libc6:amd64 is present. Could it be done with the deb 
> > format?
> 
> It's not something possible, and it's even more complicated than that.
> The current ugly way the multiarch + multilib is done, uses a different
> libc for linking and executing. So you definitely need to install both
> if you want to be able to build and execute code.
> 
> -- 
> Aurelien Jarno                          GPG: 4096R/1DDD8C9B
> aurelien@aurel32.net                 http://www.aurel32.net

Mikulas


Reply to: