af9c75c8f5
Currently we have a problem in our cross compiler since we use /usr/include/c++ to be default gxx-include-dir and then expect the patch we did to do the relocation w.r.t. sysroot however it does not quite work so and we end up gxx-include-dirs not respecting sysroot. A small test case would be tst-unique4.cc and it would fails like tst-unique4.cc:1:18: fatal error: cstdio: No such file or directory compilation terminated. weather we use --sysroot or not it does not matter arm-oe-linux-gnueabi-g++ -S tst-unique4.cc --sysroot=/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm failed in same way. so we redo the GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch based on upstream submitted patch which tries to relocate the gxx-include-dir and to achieve the relocation it has to be specified w.r.t to --with-sysroot directory. e.g. --with-sysroot=${SYSROOT} --with-gxx-include-dir=${SYSROOT}/usr/include/c++ if we configure gcc like above then it becomes relocatable when we run the compiler and specify --sysroot=<blah> then g++ will search for gxx-headers under <blah>/usr/include/c++ if sysroot is not defined then it will use the default sysroot and gxx-include-dir will be w.r.t. default sysroot. Tested on qemuarm /arm-oe-linux-gnueabi-g++ -S tst-unique4.cc --sysroot=/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm -v ... /home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm/usr/include/c++ /home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm/usr/include/c++/arm-oe-linux-gnueabi /home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm/usr/include/c++/backward ... and if I now change --sysroot to something else /arm-oe-linux-gnueabi-g++ -S tst-unique4.cc --sysroot=/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm4 -v ... ignoring nonexistent directory "/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm4/usr/include/c++" ignoring nonexistent directory "/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm4/usr/include/c++/arm-oe-linux-gnueabi" ignoring nonexistent directory "/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm4/usr/include/c++/backward" ... See now its looking for them in 'qemuarm4' sysroot (From OE-Core rev: 28b772e42a20faebe1b4f415d28b42b7e0a424fb) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> |
||
---|---|---|
.. | ||
gcc-4.6 | ||
gcc-csl-arm | ||
gcc-4.6.inc | ||
gcc-common.inc | ||
gcc-configure-common.inc | ||
gcc-configure-cross.inc | ||
gcc-configure-runtime.inc | ||
gcc-configure-sdk.inc | ||
gcc-configure-target.inc | ||
gcc-cross-canadian.inc | ||
gcc-cross-canadian_4.6.bb | ||
gcc-cross-initial.inc | ||
gcc-cross-initial_4.6.bb | ||
gcc-cross-initial_csl-arm-2008q1.bb | ||
gcc-cross-intermediate.inc | ||
gcc-cross-intermediate_4.6.bb | ||
gcc-cross-intermediate_csl-arm-2008q1.bb | ||
gcc-cross-kernel.inc | ||
gcc-cross.inc | ||
gcc-cross4.inc | ||
gcc-cross_4.6.bb | ||
gcc-cross_csl-arm-2008q1.bb | ||
gcc-crosssdk-initial.inc | ||
gcc-crosssdk-initial_4.6.bb | ||
gcc-crosssdk-intermediate.inc | ||
gcc-crosssdk-intermediate_4.6.bb | ||
gcc-crosssdk.inc | ||
gcc-crosssdk_4.6.bb | ||
gcc-csl-arm-2005q3.inc | ||
gcc-csl-arm-2008q1.inc | ||
gcc-package-cross.inc | ||
gcc-package-runtime.inc | ||
gcc-package-sdk.inc | ||
gcc-package-target.inc | ||
gcc-runtime_4.6.bb | ||
gcc_4.6.bb | ||
gcc_csl-arm-2008q1.bb | ||
libgcc_4.6.bb |