Dutch Ingraham <s...@gmx.us> writes:

> Hi everyone -
>
> It seems Debian has moved some header directories, like /usr/include/bits (and
> sys, and asm, etc.) from /usr/include/ to, e.g., 
> /usr/include/i386-linux-gnu/bits/
> (arch-specific).
>
> My first question is:  Why?
>

This is so that headers that are architecture independent are separated
from headers with are architecture dependent.  Specifically, that they
are available at different paths.  This lets you install the headers
(and libraries) for different architectures simultaneously, which is
essential for debian's multiarch support.

> My second question is: How does this work?  There are no symlinks, yet a file
> like /usr/include/signal.h, has the standard "#include <bits/sigset.h>", yet
> that path does not exist with the change noted above.  So how is this file
> included?
>
> Any enlightenment is appreciated.

There are several directories configured for searching header files.
The command "gcc -xc -E -v - < /dev/null" will print those paths out.
For my system, the directories are:

 /usr/lib/gcc/x86_64-linux-gnu/6/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/6/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include

The list will be different for you because you appear to be running
i386.

-- 
regards,
kushal

Reply via email to