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

Bug#640672: moving files to arch specific include breaks compilations with -m32



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; and if gcc-multilib is installed, you get
a /usr/include/asm compatibility symlink pointing to
/usr/include/$triplet/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.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org

Attachment: signature.asc
Description: Digital signature


Reply to: