From 28b772e42a20faebe1b4f415d28b42b7e0a424fb Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 16 Dec 2011 14:33:37 -0800 Subject: gcc-4.6: Let G++ relocate gxx-include-dir when using --sysroot option 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= then g++ will search for gxx-headers under /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 Signed-off-by: Khem Raj Signed-off-by: Richard Purdie --- meta/recipes-devtools/gcc/gcc-4.6.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'meta/recipes-devtools/gcc/gcc-4.6.inc') diff --git a/meta/recipes-devtools/gcc/gcc-4.6.inc b/meta/recipes-devtools/gcc/gcc-4.6.inc index 18e05363f..4bbb2d22d 100644 --- a/meta/recipes-devtools/gcc/gcc-4.6.inc +++ b/meta/recipes-devtools/gcc/gcc-4.6.inc @@ -1,6 +1,6 @@ require gcc-common.inc -PR = "r19" +PR = "r20" # Third digit in PV should be incremented after a minor release # happens from this branch on gcc e.g. currently its 4.6.0 @@ -62,7 +62,6 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};proto=http \ file://64bithack.patch \ file://optional_libstdc.patch \ file://disable_relax_pic_calls_flag.patch \ - file://GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch \ file://COLLECT_GCC_OPTIONS.patch \ file://volatile_access_backport.patch \ file://use-defaults.h-and-t-oe-in-B.patch \ @@ -73,6 +72,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};proto=http \ file://pr32219.patch \ file://pr47551.patch \ file://gcc-arm-set-cost.patch \ + file://GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch \ " SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch " -- cgit v1.2.3