This is the mail archive of the libstdc++@sources.redhat.com mailing list for the libstdc++ project.


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

Re: g++ not finding the V3 target include dir



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


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