This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: libstdc++-v3/std_cstddef.h's #include_next x libg++


On Aug  9, 2000, Benjamin Kosnik <bkoz@redhat.com> wrote:

> Then again, this could be something completely different, relating to 
> changes in the shadow-headers script...

More likely to be related with the recent changes I made to the
top-level configure.in.  We're using mkcheck to find out what are the
-I flags to be passed to the C++ compiler, but configure.in arranges
for -I to be replaced with -isystem, since presumably the libstdc++
headers are all system headers.

> Hmm. Does your problem manifest itself without trying to build
> libg++

So far, I've only got the problem with libg++, but it'd probably
happen whenever you configure some C++ target library after
libstdc++-v3, so that the mkcheck script already exists.

> I'm a bit confused as to what your exact problem is: can you provide a 
> bit more detail please?

/home/guarana/aoliva/test/log/guarana/.tmp/gcc-lstdc++/gcc/g++ -nostdinc++ -isystem /home/guarana/aoliva/test/log/guarana/.tmp/gcc-lstdc++/i686-pc-linux/libstdc++-v3 -isystem /home/guarana/aoliva/test/log/guarana/.tmp/gcc-lstdc++/i686-pc-linux/libstdc++-v3/libio -isystem /home/guarana/aoliva/src/gcc-main/libstdc++-v3/config/gnu-linux -isystem /home/guarana/aoliva/src/gcc-main/libstdc++-v3/config/cpu/i486 -isystem /home/guarana/aoliva/src/gcc-main/libstdc++-v3/std -isystem /home/guarana/aoliva/src/gcc-main/libstdc++-v3 -isystem /home/guarana/aoliva/src/gcc-main/libstdc++-v3/libio -isystem /home/guarana/aoliva/src/gcc-main/libstdc++-v3/backward -isystem /home/guarana/aoliva/src/gcc-main/libstdc++-v3/ext -L/home/guarana/aoliva/test/log/guarana/.tmp/gcc-lstdc++/i686-pc-linux/libstd++-v3/src -L/home/guarana/aoliva/test/log/guarana/.tmp/gcc-lstdc++/i686-pc-linux/libstd++-v3/src/.libs -B/home/guarana/aoliva/test/log/guarana/.tmp/gcc-lstdc++/gcc/ -B/usr/local/i686-pc-linux/bin/ -B/usr!
/local/i686-pc-linux/lib/ -isystem /usr/local/i686-pc-linux/include -L/home/guarana/aoliva/test/log/guarana/.tmp/gcc-lstdc++/ld -c -g -O2 -fvtable-thunks -D_GNU_SOURCE -fno-implicit-templates -nostdinc++ -I. -I../../libio -I/home/guarana/aoliva/src/gcc-main/libg++/src -I/home/guarana/aoliva/src/gcc-main/libg++/src/../../libio -I/home/guarana/aoliva/src/gcc-main/libg++/src/../../libstdc++ -I/home/guarana/aoliva/src/gcc-main/libg++/src/../src    /home/guarana/aoliva/src/gcc-main/libg++/src/AllocRing.cc
In file included from /home/guarana/aoliva/src/gcc-main/libstdc++-v3/libio/_G_config.h:19,
                 from /home/guarana/aoliva/src/gcc-main/libg++/src/std.h:22,
                 from /home/guarana/aoliva/src/gcc-main/libg++/src/AllocRing.cc:22:
/home/guarana/aoliva/src/gcc-main/libstdc++-v3/bits/std_cstddef.h:39:26: stddef.h: No such file or directory
make[2]: *** [AllocRing.o] Error 1
make[2]: Leaving directory `/l/x/tmp/gcc-lstdc++/i686-pc-linux/libg++/src'
make[1]: *** [src/libgxx.list] Error 2
make[1]: Leaving directory `/l/x/tmp/gcc-lstdc++/i686-pc-linux/libg++'
make: *** [all-target-libg++] Error 2

Running this huge command line with `-v -E -', I get:

#include "..." search starts here:
#include <...> search starts here:
 .
 /home/guarana/aoliva/src/gcc-main/libg++/src
 /home/guarana/aoliva/src/gcc-main/libio
 /home/guarana/aoliva/src/gcc-main/libstdc++
 /home/guarana/aoliva/test/log/guarana/.tmp/gcc-lstdc++/gcc/include
 /home/guarana/aoliva/test/log/guarana/.tmp/gcc-lstdc++/i686-pc-linux/libstdc++-v3
 /home/guarana/aoliva/test/log/guarana/.tmp/gcc-lstdc++/i686-pc-linux/libstdc++-v3/libio
 /home/guarana/aoliva/src/gcc-main/libstdc++-v3/config/gnu-linux
 /home/guarana/aoliva/src/gcc-main/libstdc++-v3/config/cpu/i486
 /home/guarana/aoliva/src/gcc-main/libstdc++-v3/std
 /home/guarana/aoliva/src/gcc-main/libstdc++-v3
 /home/guarana/aoliva/src/gcc-main/libstdc++-v3/libio
 /home/guarana/aoliva/src/gcc-main/libstdc++-v3/backward
 /home/guarana/aoliva/src/gcc-main/libstdc++-v3/ext
 /usr/include
End of search list.

See, libstdc++-v3/bits is searched after gcc/include, so #include_next
doesn't work.  But replacing all occurrences of -isystem with -I, I
get the order expected by mkcheck:

 /home/guarana/aoliva/test/log/guarana/.tmp/gcc-lstdc++/i686-pc-linux/libstdc++-v3
 /home/guarana/aoliva/test/log/guarana/.tmp/gcc-lstdc++/i686-pc-linux/libstdc++-v3/libio
 /home/guarana/aoliva/src/gcc-main/libstdc++-v3/config/gnu-linux
 /home/guarana/aoliva/src/gcc-main/libstdc++-v3/config/cpu/i486
 /home/guarana/aoliva/src/gcc-main/libstdc++-v3/std
 /home/guarana/aoliva/src/gcc-main/libstdc++-v3
 /home/guarana/aoliva/src/gcc-main/libstdc++-v3/libio
 /home/guarana/aoliva/src/gcc-main/libstdc++-v3/backward
 /home/guarana/aoliva/src/gcc-main/libstdc++-v3/ext
 .
 /home/guarana/aoliva/src/gcc-main/libg++/src
 /home/guarana/aoliva/src/gcc-main/libio
 /home/guarana/aoliva/src/gcc-main/libstdc++
 /home/guarana/aoliva/test/log/guarana/.tmp/gcc-lstdc++/gcc/include
 /usr/include

So, should I stop replacing -I with -isystem in the output of mkcheck,
in the top-level configure.in?

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                  aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist    *Please* write to mailing lists, not to me


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]