[OE-core] [PATCH 1/1] gcc-common.inc: Added shared source support for basichash.

Richard Purdie richard.purdie at linuxfoundation.org
Thu Jan 19 10:11:25 UTC 2012


On Thu, 2012-01-19 at 09:40 +0000, Lu, Lianhao wrote:
> Richard Purdie wrote on 2012-01-19:
> > On Tue, 2012-01-17 at 03:05 +0000, Lu, Lianhao wrote:
> >> Richard Purdie wrote on 2012-01-17:
> >>> On Mon, 2012-01-16 at 19:43 +0800, Lianhao Lu wrote:
> >>> 
> >>> Can you please check if this can be fixed by:
> >>> 
> >>> diff --git a/meta/recipes-devtools/gcc/gcc-configure-common.inc b/meta/recipes-devtools/gcc/gcc-configure-common.inc
> >>> index d014980..3a82720 100644
> >>> --- a/meta/recipes-devtools/gcc/gcc-configure-common.inc
> >>> +++ b/meta/recipes-devtools/gcc/gcc-configure-common.inc
> >>> @@ -77,6 +77,9 @@ do_headerfix () {
> >>> 
> >>>  addtask headerfix after do_unpack before do_patch
> >>> +CROSS_TARGET_SYS_DIR[vardepsexclude] = "PN"
> >>> +CROSS_TARGET_SYS_DIR[vardepvalue] = "1"
> >>> +
> >>>  do_configure_prepend () {
> >>>         # teach gcc to find correct target includedir when checking libc ssp support
> >>>         mkdir -p ${B}/gcc
> >>> as discussed in the "sstate info" thread?
> >>> 
> >> 
> >> By using this patch, gcc-cross-initial, gcc-cross-intermediate,
> >> gcc-cross would have the same signatures for tasks like do_fetch,
> >> do_unpack, do_headerfix, do_patch. But libgcc still has different
> >> signature with gcc-cross-initial for task do_patch.
> >> 
> >> By bitbake-diffsigs the do_patch signature files between gcc-cross-initial and libgcc, it says:
> >>   Dependency on task gcc-cross-initial_4.6.bb.do_unpack was added
> >>   Dependency on task gcc-cross-initial_4.6.bb.do_headerfix was added
> >>   Dependency on task libgcc_4.6.bb.do_unpack was removed
> >> Besides, gcc-runtime seems have an additional patch file "fortran-cross-compile-hack.patch" which was never got be used. This would
> > results all the signature difference between gcc-cross-initial and gcc-runtime. After I remove that unused patch file, the signatures begin to
> > differ in  task do_headerfix and do_patch. By bitbake-diffsigs the do_headerfix sigangure files between gcc-cross-initial and gcc-runtime,
> > we could see tons of variable values, variable dependencies, task dependencies difference.
> >> 
> >> So I think this patch alone is not enough to solve all the problems here.
> > 
> > Agreed, there are further issues. The patch should really move into the
> > main SRC_URI which would resolve that problem. libgcc should really be
> > able to see the do_headerfix task so we could move that from
> > gcc-configure-common to gcc-common.inc.
> > 
> > This might not be all of the differences but should get us closer to
> > solving this problem!
> > 
> 
> By moving the gcc-runtime specific patch into main SRC_URI,
> gcc-runtime still has different signature with gcc-cross-initial for
> task do_headerfix. Bitbake-diffsigs gives the following information.
> Is it possible that the difference comes from the "inherit cross" in
> gcc-cross.inc?

Yes, this is exactly where this difference is coming from.

The problem is that do_headerfix has a lot of variables exported into
its environment, even if it doesn't need/use them. I'm wondering if we
should override bitbake in this particular case using the vardeps flag
with something like:

do_headerfix[vardeps] = "PATH"

which might solve this problem cleanly and remove the need for my
original patch too...

Cheers,

Richard





More information about the Openembedded-core mailing list