On Tue, Feb 14, 2012 at 12:34:41AM -0800, Russ Allbery wrote:
> > and goes on an on, repeating the error about  posix_types_32.h.
> > -------------------------------------------------------------------

> > It would help if you could confirm that this is actually an issue caused
> > by multiarch migration and what kind of changes might help.

> This looks like some sort of more prosaic problem to me.  Somehow,
> posix_types.h was included properly (which means that you have
> linux-libc-dev installed and the compiler is searching the arch-specific
> paths for headers), but it can't find posix_types_32.h.  On an i386
> system, both of those files are in linux-libc-dev.

> The complete contents of posix_types.h is:

> # ifdef __i386__
> #  include "posix_types_32.h"
> # else
> #  include "posix_types_64.h"
> # endif

> So, for some reason, include of a file with "" is not searching the same
> directory that the header file itself was found in.

> One of the things that's missing from the above is any hint of what
> compiler flags are in use.  The gcc flag -I- can cause this behavior since
> it changes the handling of #include "".

Where we've run across similar problems with posix_types.h in the recent
past, it has indeed been due to the use of "gcc -I-".  This is tied to
multiarch, in that moving linux-libc-dev headers to the multiarch include
directory triggered the problem; ultimately though I think this is a bug in
linux-libc-dev for using #include "" here.

In any case it can usually be worked around by not using -I-.

Cf. bug #637419.

-- 
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/
slanga...@ubuntu.com                                     vor...@debian.org

Attachment: signature.asc
Description: Digital signature

Reply via email to