On Thu, 8 Apr 2021 13:11:46 +0100, Ximin Luo <[email protected]> wrote: > > On Thu, 08 Apr 2021 01:35:49 +0100, Ximin Luo <[email protected]> > > wrote: > >> Please mark gcc-mingw-w64-base "Multi-Arch: same" so that different > >> architectures can be co-installed. This is necessary to support > >> co-installing the i686 and x86-64 toolchain packages, both of which > >> depend on this package but for their respective architectures. > >> > >> As far as I can tell this package has the same content on all > >> architectures, so this should be safe: > >> https://wiki.debian.org/MultiArch/Hints#set_Multi-Arch:_same > > > > It should be, yes, but I’m curious about why you’d want to install the > > packages for both architectures simultaneously. Could you explain the > > scenario? > > Hi, yes my scenario is to co-install both libstd-rust-dev-windows:i386 and > libstd-rust-dev-windows:amd64 so that my rustc can cross-compile to both > 32-bit and 64-bit windows at the same time.
OK, I understand. I didn’t follow that route with the GCC MinGW-w64 package because my initial goal (still relevant, albeit not something I’ll have time to work on in the foreseeable future) was to add real arches for the targets, so the library packages would ultimately have been :win32 and :win64 (or something like that). > To do that, I need to co-install both gcc-mingw-w64-i686-posix:i386 and > gcc-mingw-w64-x86-64-posix, but this is not yet possible due to this bug. > > Alternatively (and thinking about it, you should probably both), you can > mark the compiler packages gcc-mingw-w64-*-* as "Multi-Arch: foreign" - > this would e.g. allow gcc-mingw-w64-i686-posix:amd64 to satisfy the > dependency from libstd-rust-dev-windows:i386 -> gcc-mingw-w64-i686-posix > [no explicit architecture annotation] - without Multi-Arch: foreign, this > dependency can only be satisfied by "gcc-mingw-w64-i686-posix:i386". It > seems that gcc-mingw-w64-i686-posix:amd64 gcc-mingw-w64-x86-64-posix:amd64 > are already co-installable, so this would work for me too. > > Multi-Arch: foreign is what the gcc cross-compilers do, e.g. > gcc-powerpc-linux-gnu. So in summary, amending my original instructions: > > - Multi-Arch: foreign - gcc-mingw-w64-*-* > - Multi-Arch: same - gcc-mingw-w64-base - in fact the Debian QA Multi-Arch > hinter[1] goes a step further, it suggests you convert this package to > Architecture: all and mark it Multi-Arch: foreign; I'm not sure why this > package is arch-dependent in the first place. > > [1] > https://qa.debian.org/[email protected]&piuparts=1#gcc-mingw-w64 The reason -base is arch-dependent is that it carries the changelog for all the arch-dependent packages, so it has to remain arch-dependent to provide binNMU changelogs. I’m somewhat reliant on binNMUs for GCC updates so I’d rather keep it that way. > (Note, libstd-rust-dev-windows:i386 doesn't exist in the Debian FTP archive > yet, but I'm testing it locally - I'm only now just getting around to > updating the rustc package to support cross-compiling to 32-bit windows > after you fixed #540782, so thanks for that.) So that means all this is not for Bullseye, right? That’s somewhat reassuring ;-). Regards, Stephen
pgpEmDyb8XOFX.pgp
Description: OpenPGP digital signature

