I suspect this would effect 1.1.2. -M
On Fri, Apr 13, 2012 at 8:13 AM, Richard Purdie <[email protected]> wrote: > If the toolchain is reused from sstate and ccache is installed, build failures > were occuring due to gcc trying to access the original sysroot rather than the > new one, particularly if the old sysroot existed but was not readable by the > current user. > > This turns out of the an issue inside gcc to do with preservation of the > sysroot > option. See the gcc patch for more details. It only triggers when preprocessed > sources are used which happens when ccache is used. > > The same issue occurs with c++ and c++-cpp-output so the same fix is applied > there. > > [YOCTO #2074] > > Signed-off-by: Richard Purdie <[email protected]> > --- > diff --git a/meta/recipes-devtools/gcc/gcc-4.6.inc > b/meta/recipes-devtools/gcc/gcc-4.6.inc > index d40a534..020e21b 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 = "r24" > +PR = "r25" > > # Third digit in PV should be incremented after a minor release > # happens from this branch on gcc e.g. currently its 4.6.0 > @@ -73,6 +73,7 @@ SRC_URI = > "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};proto=http \ > file://gcc-arm-set-cost.patch \ > file://GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch \ > file://fortran-cross-compile-hack.patch \ > + file://cpp-honour-sysroot.patch \ > " > > SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch " > diff --git a/meta/recipes-devtools/gcc/gcc-4.6/cpp-honour-sysroot.patch > b/meta/recipes-devtools/gcc/gcc-4.6/cpp-honour-sysroot.patch > new file mode 100644 > index 0000000..4792c20 > --- /dev/null > +++ b/meta/recipes-devtools/gcc/gcc-4.6/cpp-honour-sysroot.patch > @@ -0,0 +1,40 @@ > +Currently, if the gcc toolchain is relocated and installed from sstate, then > you try and compile > +preprocessed source (.i or .ii files), the compiler will try and access the > builtin sysroot location > +rather than the --sysroot option specified on the commandline. If access to > that directory is > +permission denied (unreadable), gcc will error. > + > +This happens when ccache is in use due to the fact it uses preprocessed > source files. > + > +The fix below adds %I to the cpp-output spec macro so the default > substitutions for -iprefix, > +-isystem, -isysroot happen and the correct sysroot is used. > + > +[YOCTO #2074] > + > +Upstream-Status: Pending > + > +RP 2012/04/13 > + > +Index: gcc-4_6-branch/gcc/gcc.c > +=================================================================== > +--- gcc-4_6-branch.orig/gcc/gcc.c 2012-04-13 12:24:37.939671140 +0000 > ++++ gcc-4_6-branch/gcc/gcc.c 2012-04-13 12:24:54.439670688 +0000 > +@@ -953,7 +953,7 @@ > + %W{o*:--output-pch=%*}}%V}}}}}}", 0, 0, 0}, > + {".i", "@cpp-output", 0, 0, 0}, > + {"@cpp-output", > +- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) > %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, > ++ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) > %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, > + {".s", "@assembler", 0, 0, 0}, > + {"@assembler", > + "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, > 0}, > +Index: gcc-4_6-branch/gcc/cp/lang-specs.h > +=================================================================== > +--- gcc-4_6-branch.orig/gcc/cp/lang-specs.h 2012-04-13 12:25:01.019670594 > +0000 > ++++ gcc-4_6-branch/gcc/cp/lang-specs.h 2012-04-13 12:25:07.567670180 +0000 > +@@ -64,5 +64,5 @@ > + {".ii", "@c++-cpp-output", 0, 0, 0}, > + {"@c++-cpp-output", > + "%{!M:%{!MM:%{!E:\ > +- cc1plus -fpreprocessed %i %(cc1_options) %2\ > ++ cc1plus -fpreprocessed %i %I %(cc1_options) %2\ > + %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, > > > > _______________________________________________ > Openembedded-core mailing list > [email protected] > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core _______________________________________________ Openembedded-core mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
