Hi! On Mon, Sep 12, 2011 at 10:29:30PM -0700, Steve Langasek wrote: > On Tue, Sep 06, 2011 at 03:14:58PM +0100, Ben Hutchings wrote: > > On Tue, 2011-09-06 at 14:44 +0200, Daniel Bayer wrote: > > > Package: linux-libc-dev > > > Version: 3.0.0-3 > > > Severity: normal > > > File: /usr/include/x86_64-linux-gnu/asm/errno.h > > > > since asm/errno.h was moved to the arch specific sub directory it is > > > no longer possible to create 32 Bit Binaries on amd64: > > > > | $ echo '#include <errno.h>' | gcc -E -o - -m32 - > > > > > > | [...] > > > | # 1 "/usr/include/bits/errno.h" 1 3 4 > > > | # 25 "/usr/include/bits/errno.h" 3 4 > > > | # 1 "/usr/include/linux/errno.h" 1 3 4 > > > | In file included from /usr/include/bits/errno.h:25:0, > > > | from /usr/include/errno.h:36, > > > | from <stdin>:1: > > > | /usr/include/linux/errno.h:4:23: fatal error: asm/errno.h: No such file > > > or directory > > > | compilation terminated. > > > > I guess with multiarch I should install the i386 deb, too. But this is > > > not yet supported by dpkg in unstable, is it? > > [...] > > > It's not. And since the kernel uses the same set of header files for > > 32-bit and 64-bit versions of each architecture, I wonder whether that > > would make sense. > > > Maybe the right way to do this is: > > > - linux-libc-dev (multiarch: same) becomes a metapackage depending on > > linux-libc-dev-$SRCARCH > > - linux-libc-dev-$SRCARCH (not multiarch) provides headers for all > > architectures built from kernel $SRCARCH, with symlinks > > I think this entire bug report is based on a misunderstanding of how gcc > -m32 is supposed to work. 'gcc -m32' is not guaranteed to work unless the > gcc-multilib package is installed;
gcc-multilib was always installed: | ii gcc-multilib 4:4.6.1-2 GNU C compiler (multilib files) > and if gcc-multilib is installed, you get > a /usr/include/asm compatibility symlink pointing to > /usr/include/$triplet/asm. nope. With linux-libc-dev 3.0.0-1 installed /usr/include/asm is a directory containing header files provided by linux-libc6-dev. E.g.: | linux-libc-dev: /usr/include/asm/a.out.h | linux-libc-dev: /usr/include/asm/auxvec.h | linux-libc-dev: /usr/include/asm/bitsperlong.h | linux-libc-dev: /usr/include/asm/boot.h and: | $ dpkg -S /usr/include/asm | gcc-multilib, linux-libc-dev: /usr/include/asm Now I updated to linux-libc-dev 3.0.0-3 to test. After this /usr/include/asm is an empty directory which belongs to gcc-multilib: | $ ls /usr/include/asm -lha | insgesamt 88K | drwxr-xr-x 2 root root 12K 13. Sep 20:53 . | drwxr-xr-x 78 root root 72K 8. Sep 21:52 .. | $ dpkg -S /usr/include/asm | gcc-multilib: /usr/include/asm > There are still some problems with this setup, > but I don't agree that the issue reported here is one of them and I don't > see any reason to change the linux-libc-dev package. So it is a bug in gcc-multilib? Or where is the link supposed to come from? I got to this point from a working setup (I use -m32 almost every day since more then 3 years) by daily distupgrade using unstable. Daniel
pgp2ScMqs5F02.pgp
Description: PGP signature