c++ includes not getting searched for correctly?

Bryan Hundven bryanhundven@gmail.com
Thu Oct 7 17:01:00 GMT 2010


Sorry, forgot to add crossgcc & friends in my reply...

On Thu, Oct 7, 2010 at 9:59 AM, Bryan Hundven <bryanhundven@gmail.com> wrote:
> On Thu, Oct 7, 2010 at 6:47 AM, Xianghua Xiao <xiaoxianghua@gmail.com> wrote:
>> On Thu, Oct 7, 2010 at 1:31 AM, Bryan Hundven <bryanhundven@gmail.com> wrote:
>>> On Tue, Oct 5, 2010 at 9:01 AM, Anthony Foiani <anthony.foiani@gmail.com> wrote:
>>>> On Mon, Oct 4, 2010 at 9:13 PM, Ralf Corsepius <rc040203@freenet.de> wrote:
>>>>> On 10/01/2010 10:47 PM, Anthony Foiani wrote:
>>>>>> The upshot is that the final cross-compiler looks in the wrong place
>>>>>> for c++ headers; it ends up looking in
>>>>>>
>>>>>>   TARGET/lib/gcc/TARGET/4.5.1/include/
>>>>>>   TARGET/lib/gcc/TARGET/4.5.1/include-fixed/
>>>>>>   TARGET/TARGET/sys-root/usr/include/
>>>>>
>>>>> These are the correct locations.
>>>>>
>>>>>> When it should be looking in:
>>>>>>
>>>>>>   TARGET/TARGET/sys-root/usr/include/c++/4.5.1/
>>>>>
>>>>> And this would be wrong.
>>>
>>> I don't understand. Could you kindly explain more about why this is wrong?
>>>
>>>> Ok, I think I see the reasoning behind this: things like "stdio.h" in
>>>> /usr/include are a part of libc, while the g++ headers are properly a
>>>> part of GCC itself.  Ok.
>>>>
>>>> So how do I get libstdc++ installed into one of those proper search
>>>> directories?  Here's where they ended up:
>>>>
>>>> [tony@fedora12-64 xtools]$ find . -name '*stdc++*' -print
>>>> ./powerpc-e500v2-linux-gnuspe/sys-root/lib/libstdc++.so
>>>> ./powerpc-e500v2-linux-gnuspe/sys-root/lib/libstdc++.so.6.0.14
>>>> ./powerpc-e500v2-linux-gnuspe/sys-root/lib/libstdc++.la
>>>> ./powerpc-e500v2-linux-gnuspe/sys-root/lib/libstdc++.so.6.0.14-gdb.py
>>>> ./powerpc-e500v2-linux-gnuspe/sys-root/lib/libstdc++.a
>>>> ./powerpc-e500v2-linux-gnuspe/sys-root/lib/libstdc++.so.6
>>>> ./powerpc-e500v2-linux-gnuspe/sys-root/usr/include/c++/4.5.1/powerpc-e500v2-linux-gnuspe/bits/stdc++.h
>>>>
>>>> [tony@fedora12-64 xtools]$ find . -name 'iostream' -print
>>>> ./powerpc-e500v2-linux-gnuspe/sys-root/usr/include/c++/4.5.1/iostream
>>>>
>>>> Config file attached.
>>>>
>>>> Thanks,
>>>> Tony
>>>>
>>>> --
>>>> For unsubscribe information see http://sourceware.org/lists.html#faq
>>>>
>>>
>>> I have the same issue on a ppc (e500v2), and armeb (armv5te), and this
>>> x86 toolchain built with crosstool-ng (gcc-4.5.1, eglibc-trunk).
>>>
>>> g++test.cpp:
>>> ----------------------8<---------------------
>>> #include <iostream>
>>> using namespace std;
>>> int main( int argc, char **argv )
>>> {
>>>    cout << "Hello World" << endl;
>>>    return 0;
>>> }
>>> ----------------------8<---------------------
>>>
>>> $ /home/bryan/x-tools/i686-nptl-linux-gnu/bin/i686-nptl-linux-gnu-g++
>>> -o g++test g++test.cpp
>>> g++test.cpp:1:20: fatal error: iostream: No such file or directory
>>> compilation terminated.
>>>
>>> $ /home/bryan/x-tools/i686-nptl-linux-gnu/bin/i686-nptl-linux-gnu-gcc
>>> -print-search-dirs
>>> install: /home/bryan/x-tools/i686-nptl-linux-gnu/lib/gcc/i686-nptl-linux-gnu/4.5.1/
>>> programs: =/home/bryan/x-tools/i686-nptl-linux-gnu/libexec/gcc/i686-nptl-linux-gnu/4.5.1/:/home/bryan/x-tools/i686-nptl-linux-gnu/libexec/gcc/i686-nptl-linux-gnu/4.5.1/:/home/bryan/x-tools/i686-nptl-linux-gnu/libexec/gcc/i686-nptl-linux-gnu/:/home/bryan/x-tools/i686-nptl-linux-gnu/lib/gcc/i686-nptl-linux-gnu/4.5.1/:/home/bryan/x-tools/i686-nptl-linux-gnu/lib/gcc/i686-nptl-linux-gnu/:/home/bryan/x-tools/i686-nptl-linux-gnu/lib/gcc/i686-nptl-linux-gnu/4.5.1/../../../../i686-nptl-linux-gnu/bin/i686-nptl-linux-gnu/4.5.1/:/home/bryan/x-tools/i686-nptl-linux-gnu/lib/gcc/i686-nptl-linux-gnu/4.5.1/../../../../i686-nptl-linux-gnu/bin/
>>> libraries: =/home/bryan/x-tools/i686-nptl-linux-gnu/lib/gcc/i686-nptl-linux-gnu/4.5.1/:/home/bryan/x-tools/i686-nptl-linux-gnu/lib/gcc/i686-nptl-linux-gnu/4.5.1/../../../../i686-nptl-linux-gnu/lib/i686-nptl-linux-gnu/4.5.1/:/home/bryan/x-tools/i686-nptl-linux-gnu/lib/gcc/i686-nptl-linux-gnu/4.5.1/../../../../i686-nptl-linux-gnu/lib/:/home/bryan/x-tools/i686-nptl-linux-gnu/i686-nptl-linux-gnu//sys-root/lib/i686-nptl-linux-gnu/4.5.1/:/home/bryan/x-tools/i686-nptl-linux-gnu/i686-nptl-linux-gnu//sys-root/lib/:/home/bryan/x-tools/i686-nptl-linux-gnu/i686-nptl-linux-gnu//sys-root/usr/lib/i686-nptl-linux-gnu/4.5.1/:/home/bryan/x-tools/i686-nptl-linux-gnu/i686-nptl-linux-gnu//sys-root/usr/lib/
>>>
>>>
>>> I attached my x86.config and output of -dumpspecs
>>>
>>> --Bryan
>>>
>>> --
>>> For unsubscribe information see http://sourceware.org/lists.html#faq
>>>
>>
>> print-seach-dir is really for binaries and libraries, for header
>> files, 'g++ -v' and see wherever its with-sysroot(or
>> with-cxx-include-dir) is located, i found iostream under
>> usr/include/c++ just fine with crosstool-ng 1.8.1 for both x86 and
>> powerpc installations.
>>
>> xianghua
>
> Right, sorry about that.
>
> ppc version
>
> $ x-tools/powerpc-e500v2-linux-gnuspe/bin/powerpc-e500v2-linux-gnuspe-g++
> -v -o g++test g++test.cpp
> Using built-in specs.
> COLLECT_GCC=x-tools/powerpc-e500v2-linux-gnuspe/bin/powerpc-e500v2-linux-gnuspe-g++
> COLLECT_LTO_WRAPPER=/home/bryan/x-tools/powerpc-e500v2-linux-gnuspe/libexec/gcc/powerpc-e500v2-linux-gnuspe/4.5.1/lto-wrapper
> Target: powerpc-e500v2-linux-gnuspe
> Configured with:
> /home/bryan/toolchains/ppc/targets/src/gcc-4.5.1/configure
> --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu
> --target=powerpc-e500v2-linux-gnuspe --prefix=/home/bryan/x-tools/powe
> rpc-e500v2-linux-gnuspe
> --with-sysroot=/home/bryan/x-tools/powerpc-e500v2-linux-gnuspe/powerpc-e500v2-linux-gnuspe//sys-root
> --enable-languages=c,c++ --disable-multilib --with-cpu=8548
> --with-tune=8548 --with-
> pkgversion=crosstool-NG-hg_default@2137_98b51f471fbb+
> --with-bugurl=mailto:bryanhundven@gmail.com --disable-sjlj-exceptions
> --enable-__cxa_atexit --disable-libmudflap
> --with-host-libstdcxx='-static-libgcc -Wl,
> -Bstatic,-lstdc++,-Bdynamic -lm'
> --with-gmp=/home/bryan/toolchains/ppc/targets/powerpc-e500v2-linux-gnuspe/build/static
> --with-mpfr=/home/bryan/toolchains/ppc/targets/powerpc-e500v2-linux-gnuspe/build/static
> -
> -with-mpc=/home/bryan/toolchains/ppc/targets/powerpc-e500v2-linux-gnuspe/build/static
> --with-ppl=/home/bryan/toolchains/ppc/targets/powerpc-e500v2-linux-gnuspe/build/static
> --with-cloog=/home/bryan/toolchains/
> ppc/targets/powerpc-e500v2-linux-gnuspe/build/static
> --with-libelf=/home/bryan/toolchains/ppc/targets/powerpc-e500v2-linux-gnuspe/build/static
> --enable-threads=posix --with-local-prefix=/home/bryan/x-tools/pow
> erpc-e500v2-linux-gnuspe/powerpc-e500v2-linux-gnuspe//sys-root
> --disable-nls --enable-symvers=gnu --enable-c99 --enable-long-long
> --enable-e500_double --with-long-double-128
> Thread model: posix
> gcc version 4.5.1 (crosstool-NG-hg_default@2137_98b51f471fbb+)
> COLLECT_GCC_OPTIONS='-v' '-o' 'g++test' '-shared-libgcc' '-mtune=8548'
> '-mcpu=8548'
>  /home/bryan/x-tools/powerpc-e500v2-linux-gnuspe/libexec/gcc/powerpc-e500v2-linux-gnuspe/4.5.1/cc1plus
> -quiet -v -D_GNU_SOURCE -D__unix__ -D__gnu_linux__ -D__linux__ -Dunix
> -D__unix -Dlinux -D__linux -Asystem=linux -Asystem=unix -Asystem=posix
> g++test.cpp -quiet -dumpbase g++test.cpp -mtune=8548 -mcpu=8548
> -auxbase g++test -version -o /tmp/ccmb4Rsv.s
> GNU C++ (crosstool-NG-hg_default@2137_98b51f471fbb+) version 4.5.1
> (powerpc-e500v2-linux-gnuspe)
>        compiled by GNU C version 4.3.2, GMP version 4.3.2, MPFR
> version 2.4.2-p2, MPC version 0.8.2
> GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
> ignoring nonexistent directory
> "/home/bryan/x-tools/powerpc-e500v2-linux-gnuspe/lib/gcc/powerpc-e500v2-linux-gnuspe/4.5.1/../../../../powerpc-e500v2-linux-gnuspe/include/c++/4.5.1"
> ignoring nonexistent directory
> "/home/bryan/x-tools/powerpc-e500v2-linux-gnuspe/lib/gcc/powerpc-e500v2-linux-gnuspe/4.5.1/../../../../powerpc-e500v2-linux-gnuspe/include/c++/4.5.1/powerpc-e500v2-linux-gnuspe"
> ignoring nonexistent directory
> "/home/bryan/x-tools/powerpc-e500v2-linux-gnuspe/lib/gcc/powerpc-e500v2-linux-gnuspe/4.5.1/../../../../powerpc-e500v2-linux-gnuspe/include/c++/4.5.1/backward"
> ignoring nonexistent directory
> "/home/bryan/x-tools/powerpc-e500v2-linux-gnuspe/powerpc-e500v2-linux-gnuspe//sys-root/home/bryan/x-tools/powerpc-e500v2-linux-gnuspe/powerpc-e500v2-linux-gnuspe//sys-root/include"
> ignoring nonexistent directory
> "/home/bryan/x-tools/powerpc-e500v2-linux-gnuspe/lib/gcc/powerpc-e500v2-linux-gnuspe/4.5.1/../../../../powerpc-e500v2-linux-gnuspe/include"
> #include "..." search starts here:
> #include <...> search starts here:
>  /home/bryan/x-tools/powerpc-e500v2-linux-gnuspe/lib/gcc/powerpc-e500v2-linux-gnuspe/4.5.1/include
>  /home/bryan/x-tools/powerpc-e500v2-linux-gnuspe/lib/gcc/powerpc-e500v2-linux-gnuspe/4.5.1/include-fixed
>  /home/bryan/x-tools/powerpc-e500v2-linux-gnuspe/powerpc-e500v2-linux-gnuspe//sys-root/usr/include
> End of search list.
> GNU C++ (crosstool-NG-hg_default@2137_98b51f471fbb+) version 4.5.1
> (powerpc-e500v2-linux-gnuspe)
>        compiled by GNU C version 4.3.2, GMP version 4.3.2, MPFR
> version 2.4.2-p2, MPC version 0.8.2
> GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
> Compiler executable checksum: d2b201c8c80a9bb42b042fac2b1e592f
> g++test.cpp:1:20: fatal error: iostream: No such file or directory
> compilation terminated.
>
>
> x86 version
>
> $ x-tools/i686-nptl-linux-gnu/bin/i686-nptl-linux-gnu-g++ -v -o
> g++test g++test.cpp
> Using built-in specs.
> COLLECT_GCC=x-tools/i686-nptl-linux-gnu/bin/i686-nptl-linux-gnu-g++
> COLLECT_LTO_WRAPPER=/home/bryan/x-tools/i686-nptl-linux-gnu/libexec/gcc/i686-nptl-linux-gnu/4.5.1/lto-wrapper
> Target: i686-nptl-linux-gnu
> Configured with:
> /home/bryan/toolchains/x86/targets/src/gcc-4.5.1/configure
> --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu
> --target=i686-nptl-linux-gnu
> --prefix=/home/bryan/x-tools/i686-nptl-linux-gnu
> --with-sysroot=/home/bryan/x-tools/i686-nptl-linux-gnu/i686-nptl-linux-gnu//sys-root
> --enable-languages=c,c++ --disable-multilib --with-arch=i686
> --with-pkgversion=crosstool-NG-hg_default@2137_98b51f471fbb+
> --disable-sjlj-exceptions --enable-__cxa_atexit --disable-libmudflap
> --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic
> -lm' --with-gmp=/home/bryan/toolchains/x86/targets/i686-nptl-linux-gnu/build/static
> --with-mpfr=/home/bryan/toolchains/x86/targets/i686-nptl-linux-gnu/build/static
> --with-mpc=/home/bryan/toolchains/x86/targets/i686-nptl-linux-gnu/build/static
> --with-ppl=/home/bryan/toolchains/x86/targets/i686-nptl-linux-gnu/build/static
> --with-cloog=/home/bryan/toolchains/x86/targets/i686-nptl-linux-gnu/build/static
> --with-libelf=/home/bryan/toolchains/x86/targets/i686-nptl-linux-gnu/build/static
> --enable-threads=posix --enable-target-optspace
> --with-local-prefix=/home/bryan/x-tools/i686-nptl-linux-gnu/i686-nptl-linux-gnu//sys-root
> --disable-nls --enable-symvers=gnu --enable-c99 --enable-long-long
> Thread model: posix
> gcc version 4.5.1 (crosstool-NG-hg_default@2137_98b51f471fbb+)
> COLLECT_GCC_OPTIONS='-v' '-o' 'g++test' '-shared-libgcc'
> '-mtune=generic' '-march=i686'
>  /home/bryan/x-tools/i686-nptl-linux-gnu/libexec/gcc/i686-nptl-linux-gnu/4.5.1/cc1plus
> -quiet -v -D_GNU_SOURCE g++test.cpp -quiet -dumpbase g++test.cpp
> -mtune=generic -march=i686 -auxbase g++test -version -o
> /tmp/ccP0wyIp.s
> GNU C++ (crosstool-NG-hg_default@2137_98b51f471fbb+) version 4.5.1
> (i686-nptl-linux-gnu)
>        compiled by GNU C version 4.3.2, GMP version 4.3.2, MPFR
> version 2.4.2-p2, MPC version 0.8.2
> GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
> ignoring nonexistent directory
> "/home/bryan/x-tools/i686-nptl-linux-gnu/lib/gcc/i686-nptl-linux-gnu/4.5.1/../../../../i686-nptl-linux-gnu/include/c++/4.5.1"
> ignoring nonexistent directory
> "/home/bryan/x-tools/i686-nptl-linux-gnu/lib/gcc/i686-nptl-linux-gnu/4.5.1/../../../../i686-nptl-linux-gnu/include/c++/4.5.1/i686-nptl-linux-gnu"
> ignoring nonexistent directory
> "/home/bryan/x-tools/i686-nptl-linux-gnu/lib/gcc/i686-nptl-linux-gnu/4.5.1/../../../../i686-nptl-linux-gnu/include/c++/4.5.1/backward"
> ignoring nonexistent directory
> "/home/bryan/x-tools/i686-nptl-linux-gnu/i686-nptl-linux-gnu//sys-root/home/bryan/x-tools/i686-nptl-linux-gnu/i686-nptl-linux-gnu//sys-root/include"
> ignoring nonexistent directory
> "/home/bryan/x-tools/i686-nptl-linux-gnu/lib/gcc/i686-nptl-linux-gnu/4.5.1/../../../../i686-nptl-linux-gnu/include"
> #include "..." search starts here:
> #include <...> search starts here:
>  /home/bryan/x-tools/i686-nptl-linux-gnu/lib/gcc/i686-nptl-linux-gnu/4.5.1/include
>  /home/bryan/x-tools/i686-nptl-linux-gnu/lib/gcc/i686-nptl-linux-gnu/4.5.1/include-fixed
>  /home/bryan/x-tools/i686-nptl-linux-gnu/i686-nptl-linux-gnu//sys-root/usr/include
> End of search list.
> GNU C++ (crosstool-NG-hg_default@2137_98b51f471fbb+) version 4.5.1
> (i686-nptl-linux-gnu)
>        compiled by GNU C version 4.3.2, GMP version 4.3.2, MPFR
> version 2.4.2-p2, MPC version 0.8.2
> GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
> Compiler executable checksum: bddab6e20a61d6d2a6cec71ec2575050
> g++test.cpp:1:20: fatal error: iostream: No such file or directory
> compilation terminated.
>

--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list