[OE-core] [PATCH] gcc: Ensure that the shared source directory shared the same sstate hashes
Richard Purdie
richard.purdie at linuxfoundation.org
Fri Jan 20 13:38:53 UTC 2012
On Fri, 2012-01-20 at 08:49 +0000, Lu, Lianhao wrote:
> > -----Original Message-----
> > From: openembedded-core-bounces at lists.openembedded.org [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf
> > Of Saul Wold
> > Sent: Friday, January 20, 2012 4:19 PM
> > To: Patches and discussions about the oe-core layer
> > Subject: Re: [OE-core] [PATCH] gcc: Ensure that the shared source directory shared the same sstate hashes
> >
> > On 01/19/2012 11:38 AM, Richard Purdie wrote:
> > > The fetch/unpack/patch/headerfix tasks are shared and hence their sstate hashes
> > > should also match. Sadly this is not the case since:
> > >
> > > a) gcc-runtime applies an additional patch
> > > b) The do_headerfix task was missing from libgcc
> > > c) The do_headerfix task is a shell task and hence depends
> > > on all exported variables which can vary between cross and target
> > > recipes.
> > >
> > > To fix this, the patch moves the patch to the common code, adds
> > > the headerfix task to a common include file and disabled shell
> > > dependencies on the do_headerfix task since its clear in this case
> > > we don't need thsoe dependencies since we just call sed.
> > >
> > > With this patch applied, all these recipes now share common sstate checksums.
> > >
> > Richard,
> >
> > I tried both a sstate build with and existing tmp and a clean tmp, the
> > existing tmp seemed to work ok, but with a clean tmp (and sstate), I got
> > the following patch issue still.
> >
> > This was with BB_SIGNATURE_HANDLER ?= 'basichash' set.
> >
> > ERROR: Command Error: exit status: 1 Output:
> > Could not link file
> > `.pc/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch/configure' to `configure': No
> > such file or directory
> > Applying patch gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
> > patching file configure.ac
> > Hunk #1 FAILED at 3073.
> > 1 out of 1 hunk FAILED -- rejects in file configure.ac
> > patching file configure
> > Hunk #1 FAILED at 7594.
> > 1 out of 1 hunk FAILED -- rejects in file configure
> > Patch gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch does not apply (enforce with -f)
> > ERROR: Function failed: patch_do_patch
> > ERROR: Logfile of failure stored in:
> > /intel/poky2/builds/binutils/tmp/work-shared/gcc-4.6.2+svnr181430-r20/temp/log.do_patch.15457
> > NOTE: package libgcc-4.6.2+svnr181430-r20: task do_patch: Failed
> > ERROR: Task 882
> > (/intel/poky2/distro/meta/recipes-devtools/gcc/libgcc_4.6.bb, do_patch)
> > failed with exit code '1'
> >
> > I have not tried a clean sstate / clean tmp.
> >
> Well, using the poky-conrib/rpurdie/t1 branch, it seems that the libgcc still has different signature with
> gcc-cross-initial for task patch. But bitbake-diffsigs reports nothing. gcc-runtime seems to be ok now.
I looked into this and the problem is that the quilt-native dependency
is removed in the target cases (libgcc/gcc-runtime) but not in the cross
cases thanks to BB_HASHTASK_WHITELIST. I'm trying to figure out how to
solve that.
Cheers,
Richard
More information about the Openembedded-core
mailing list