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

Bug#890801: libc6-i386 conflicts with libc6-amd64:i386



On 2018-02-18 19:17, Hillel Lubman wrote:
> Package: libc6-i386
> Version: 2.26-6
> Severity: important
> 
> Dear Maintainer,
> 
> I tried cross compile 32-bit Mesa on 64-bit Debian (amd64), and I had to
> install these packages in order to do it:
> 
> llvm-5.0-dev:i386 libclang-5.0-dev:i386 gcc-multilib g++-multilib
> 
> Unfortunately it failed, and I managed to narrow it down to the conflict
> between libc6-i386 conflicts and libc6-amd64:i386:

You can install only one set of multilib package at the same time,
otherwise you end up with files conflict. In your case llvm-5.0-dev:i386
requires the :i386 version of the multilib set, while gcc-multilib
requires the :amd64 version of it.

> sudo apt-get install libc6-amd64:i386 libc6-i386
> Reading package lists... Done
> Building dependency tree
> Reading state information... Done
> Some packages could not be installed. This may mean that you have
> requested an impossible situation or if you are using the unstable
> distribution that some required packages have not yet been created
> or been moved out of Incoming.
> The following information may help to resolve the situation:
> 
> The following packages have unmet dependencies:
>  libc6-amd64:i386 : Conflicts: libc6-i386 but 2.26-6 is to be installed
>  libc6-i386 : Conflicts: libc6-amd64:i386 but 2.26-6 is to be installed
> E: Unable to correct problems, you have held broken packages.
> 
> How can this be resolved?

If you want to install llvm for i386 you also need to install gcc for
i386. The other option is to not install gcc-multilib and g++-multilib.

If that solution is not acceptable for you, here are the few other
alternatives I can think of:
- report a bug against llvm to split libclang-common-5.0-dev into two
  parts, one providing the native support, the other one the multilib
  support, just like it is done in GCC.
- report a bug against llvm to support a multiarch alternative to the
  64-bit libraries. That means for example changing the lib64gcc1:i386
  dependency into lib64gcc1:i386 | libgcc1:amd64. This might require
  code change to look into both multiarch and multilib paths.
- report a bug against gcc to support a multiarch alternative to the
  32-bit libraries.
- report a bug against gcc-7-cross to add an i386 cross-compiler on
  amd64.

There is nothing we can do on the glibc side.

Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                 http://www.aurel32.net


Reply to: