Patchwork bitbake.conf/gcc: Add clean masks for stamp files

login
register
mail settings
Submitter Richard Purdie
Date Sept. 18, 2012, 10:32 a.m.
Message ID <1347964372.13596.110.camel@ted>
Download mbox | patch
Permalink /patch/36729/
State Accepted
Commit e21b6c04e512a3bc2339a20045b7041f1d26e859
Headers show

Comments

Richard Purdie - Sept. 18, 2012, 10:32 a.m.
This takes advantage of new bitbake functionality to clean up stale stamp
files when creating new stamp files.

[YOCTO #2961]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
Enrico Scholz - Sept. 20, 2012, 6:03 p.m.
Richard Purdie
<richard.purdie-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
writes:

> +STAMPCLEAN = "${TMPDIR}/stamps/${MULTIMACH_TARGET_SYS}/${PN}-*-*"

Is it intended that this pattern can match unrelated packages? E.g. for
PN='gcc-cross', the mask will apply to stampfiles for 'gcc-cross-initial'
too.



Enrico
Richard Purdie - Sept. 21, 2012, 9:36 a.m.
On Thu, 2012-09-20 at 20:03 +0200, Enrico Scholz wrote:
> 
> Richard Purdie
> <richard.purdie-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
> writes:
> 
> > +STAMPCLEAN = "${TMPDIR}/stamps/${MULTIMACH_TARGET_SYS}/${PN}-*-*"
> 
> Is it intended that this pattern can match unrelated packages? E.g. for
> PN='gcc-cross', the mask will apply to stampfiles for 'gcc-cross-initial'
> too.

No, this is a problem :(

I saw this last night and have been giving it some thought. We might
have to put a separator into the stamp file format to make this easier
to deal with. The downside is that is a TMPDIR layout change :/.

The thing is the bug this solves is serious even if people only rarely
hit it and I can't think of a better solution...

Cheers,

Richard
Richard Purdie - Sept. 21, 2012, 1:22 p.m.
On Fri, 2012-09-21 at 10:36 +0100, Richard Purdie wrote:
> On Thu, 2012-09-20 at 20:03 +0200, Enrico Scholz wrote:
> > 
> > Richard Purdie
> > <richard.purdie-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
> > writes:
> > 
> > > +STAMPCLEAN = "${TMPDIR}/stamps/${MULTIMACH_TARGET_SYS}/${PN}-*-*"
> > 
> > Is it intended that this pattern can match unrelated packages? E.g. for
> > PN='gcc-cross', the mask will apply to stampfiles for 'gcc-cross-initial'
> > too.
> 
> No, this is a problem :(
> 
> I saw this last night and have been giving it some thought. We might
> have to put a separator into the stamp file format to make this easier
> to deal with. The downside is that is a TMPDIR layout change :/.
> 
> The thing is the bug this solves is serious even if people only rarely
> hit it and I can't think of a better solution...

I've given this some more thought and there is an easier way out if we
assume PV starts with something numeric. Since the current situation is
rather problematic (I didn't see it locally due to another patch I
have), I've pushed a fix:

http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=3c101af5e33b21f53171c66de0c2c3e797d95247

I'm going to post some RFCs on other ideas related to this.

Cheers,

Richard
Khem Raj - Sept. 23, 2012, 5:36 p.m.
On Fri, Sep 21, 2012 at 6:22 AM, Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> I've given this some more thought and there is an easier way out if we
> assume PV starts with something numeric

is this assumption true always I wonder

Patch

diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 9c51630..b3d3f52 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -332,7 +332,8 @@  GITDIR = "${CO_DIR}/git2"
 BZRDIR = "${CO_DIR}/bzr"
 HGDIR = "${CO_DIR}/hg"
 
-STAMP = "${TMPDIR}/stamps/${MULTIMACH_TARGET_SYS}/${PF}"
+STAMP = "${TMPDIR}/stamps/${MULTIMACH_TARGET_SYS}/${PN}-${EXTENDPE}${PV}-${PR}"
+STAMPCLEAN = "${TMPDIR}/stamps/${MULTIMACH_TARGET_SYS}/${PN}-*-*"
 WORKDIR = "${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PF}"
 T = "${WORKDIR}/temp"
 D = "${WORKDIR}/image"
diff --git a/meta/recipes-devtools/gcc/gcc-common.inc b/meta/recipes-devtools/gcc/gcc-common.inc
index 72180db..4ef2a1b 100644
--- a/meta/recipes-devtools/gcc/gcc-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-common.inc
@@ -63,6 +63,10 @@  SS = "${TMPDIR}/stamps/work-shared/gcc-${PV}-${PR}"
 do_fetch[stamp-base] = "${SS}"
 do_unpack[stamp-base] = "${SS}"
 do_patch[stamp-base] = "${SS}"
+SSCLEAN = "${TMPDIR}/stamps/work-shared/gcc-*-*"
+do_fetch[stamp-base-clean] = "${SSCLEAN}"
+do_unpack[stamp-base-clean] = "${SSCLEAN}"
+do_patch[stamp-base-clean] = "${SSCLEAN}"
 
 # SW means Shared Work directory
 SW = "${TMPDIR}/work-shared/gcc-${PV}-${PR}"