g++ not finding the V3 target include dir
Benjamin Kosnik
bkoz@redhat.com
Wed Dec 20 10:06:00 GMT 2000
I changed the gcc/Makefile.in rules slightly last night. Native targets
shouldn't have been affected, but it appears they are (I've reproduced
your problem with x86/linux and CVS-current.)
> ignoring duplicate directory "/installdir/sparc-sun-solaris2.8/include"
> #include "..." search starts here:
> #include <...> search starts here:
> /installdir/include/g++-v3
> /installdir/sparc-sun-solaris2.8/include/
> /installdir/include
> * /installdir/lib/gcc-lib/sparc-sun-solaris2.8/2.97/include
> /usr/include
> End of search list.
Ugh.
> However, * now also contains its own g++-v3 dir, and the target-specific
> headers in its bits dir (such as c++config.h :-) aren't being found.
>
> I know enough about cpplib to know that I don't know enough about cpplib
> yet. Where should I be looking to fix this?
gcc/cppdefault.o
What's weird is that if I remove cppdefault.o and then remake it, 'make
all' in the gcc subdir and then re-install just this part of gcc
everything is fine again. Psycho.
%make cppdefault.o
gcc -DIN_GCC -g -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long
-DHAVE_CONFIG_H -I. -I. -I/mnt/hd/bliss/src.gcc/gcc
-I/mnt/hd/bliss/src.gcc/gcc/. -I/mnt/hd/bliss/src.gcc/gcc/config
-I/mnt/hd/bliss/src.gcc/gcc/../include \
-DGCC_INCLUDE_DIR=\"/mnt/hd/bliss/H-x86-gcc-debug/lib/gcc-lib/i686-pc-linux-gnu/2.97/include\" -DGPLUSPLUS_INCLUDE_DIR=\"/mnt/hd/bliss/H-x86-gcc-debug/lib/gcc-lib/i686-pc-linux-gnu/2.97/../../../..`echo /mnt/hd/bliss/H-x86-gcc-debug | sed -e 's|^/mnt/hd/bliss/H-x86-gcc-debug||' -e 's|/[^/]*|/..|g'`/include/g++-v3\" -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"/mnt/hd/bliss/H-x86-gcc-debug/i686-pc-linux-gnu/include/g++-v3\" -DLOCAL_INCLUDE_DIR=\"/usr/local/include\" -DCROSS_INCLUDE_DIR=\"/mnt/hd/bliss/H-x86-gcc-debug/lib/gcc-lib/i686-pc-linux-gnu/2.97/../../../../i686-pc-linux-gnu/sys-include\" -DTOOL_INCLUDE_DIR=\"/mnt/hd/bliss/H-x86-gcc-debug/lib/gcc-lib/i686-pc-linux-gnu/2.97/../../../../i686-pc-linux-gnu/include\" \
-c /mnt/hd/bliss/src.gcc/gcc/cppdefault.c
Notice GPLUSPLUS_TOOL_INCLUDE_DIR is correct.
It looks like the rebuild of libcpp.a or libiberty.a that happens after
this file is touched solves the problem. So, perhaps there is a
dependency tracking issue with one of these libraries on the initial build?
Zack, you know more about the preprocessor than I. Does this sound credible?
-benjamin
More information about the Libstdc++
mailing list