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: