Patchwork ccache: Ensure CCACHE_DIR is cleaned by do_clean task

login
register
mail settings
Submitter Richard Purdie
Date July 9, 2012, 11:55 a.m.
Message ID <1341834900.8066.9.camel@ted>
Download mbox | patch
Permalink /patch/31413/
State Accepted
Commit ddf52d0161096b089fad8f3ace69b6515d7b7226
Headers show

Comments

Richard Purdie - July 9, 2012, 11:55 a.m.
This ensures a rebuild does really build from scratch when ccache is in use.

[YOCTO #2696]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
Khem Raj - July 9, 2012, 2:16 p.m.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 7/9/2012 4:55 AM, Richard Purdie wrote:
> This ensures a rebuild does really build from scratch when ccache
> is in use.
> 
> [YOCTO #2696]
> 
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> 
> --- diff --git a/meta/classes/ccache.bbclass
> b/meta/classes/ccache.bbclass index 5aa2da2..cd06a4b 100644 ---
> a/meta/classes/ccache.bbclass +++ b/meta/classes/ccache.bbclass @@
> -4,3 +4,5 @@ CCACHE_DISABLE[unexport] = "1"
> 
> do_configure[dirs] =+ "${CCACHE_DIR}" do_kernel_configme[dirs] =+
> "${CCACHE_DIR}" + +do_clean[cleandirs] += "${CCACHE_DIR}"
> 

so will this remove all contents of .ccache dir ?
or just the package you are cleanall'ing
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk/657cACgkQuwUzVZGdMxR6/gCeIFHIc01FiI5bCB5jiFaPev0/
VXkAn1V/VQEEfwQop6kt2/kgaei2A5yZ
=gYFM
-----END PGP SIGNATURE-----
Mark Hatle - July 9, 2012, 2:25 p.m.
On 7/9/12 9:16 AM, Khem Raj wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 7/9/2012 4:55 AM, Richard Purdie wrote:
>> This ensures a rebuild does really build from scratch when ccache
>> is in use.
>>
>> [YOCTO #2696]
>>
>> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
>> --- diff --git a/meta/classes/ccache.bbclass
>> b/meta/classes/ccache.bbclass index 5aa2da2..cd06a4b 100644 ---
>> a/meta/classes/ccache.bbclass +++ b/meta/classes/ccache.bbclass @@
>> -4,3 +4,5 @@ CCACHE_DISABLE[unexport] = "1"
>>
>> do_configure[dirs] =+ "${CCACHE_DIR}" do_kernel_configme[dirs] =+
>> "${CCACHE_DIR}" + +do_clean[cleandirs] += "${CCACHE_DIR}"
>>
>
> so will this remove all contents of .ccache dir ?
> or just the package you are cleanall'ing

I was wondering the same thing, with the default configuration:

bitbake.conf:# Assign CCACHE_DIR a default value to fix a bug of ccache 3.1.7,
bitbake.conf:# since it would always create CCACHE_DIR/.ccache even if
bitbake.conf:export CCACHE_DIR ??= "${@os.getenv('HOME')}"

--Mark

> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.12 (MingW32)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iEYEARECAAYFAk/657cACgkQuwUzVZGdMxR6/gCeIFHIc01FiI5bCB5jiFaPev0/
> VXkAn1V/VQEEfwQop6kt2/kgaei2A5yZ
> =gYFM
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
Richard Purdie - July 9, 2012, 2:27 p.m.
On Mon, 2012-07-09 at 07:16 -0700, Khem Raj wrote:
> On 7/9/2012 4:55 AM, Richard Purdie wrote:
> > This ensures a rebuild does really build from scratch when ccache
> > is in use.
> > 
> > [YOCTO #2696]
> > 
> > Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> 
> > --- diff --git a/meta/classes/ccache.bbclass
> > b/meta/classes/ccache.bbclass index 5aa2da2..cd06a4b 100644 ---
> > a/meta/classes/ccache.bbclass +++ b/meta/classes/ccache.bbclass @@
> > -4,3 +4,5 @@ CCACHE_DISABLE[unexport] = "1"
> > 
> > do_configure[dirs] =+ "${CCACHE_DIR}" do_kernel_configme[dirs] =+
> > "${CCACHE_DIR}" + +do_clean[cleandirs] += "${CCACHE_DIR}"
> > 
> 
> so will this remove all contents of .ccache dir ?
> or just the package you are cleanall'ing

Our default CCACHE_DIR defined above this has ${PN} in it so just the
package you are cleaning.

Cheers,

Richard
Mark Hatle - July 9, 2012, 2:31 p.m.
On 7/9/12 9:27 AM, Richard Purdie wrote:
> On Mon, 2012-07-09 at 07:16 -0700, Khem Raj wrote:
>> On 7/9/2012 4:55 AM, Richard Purdie wrote:
>>> This ensures a rebuild does really build from scratch when ccache
>>> is in use.
>>>
>>> [YOCTO #2696]
>>>
>>> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
>>> --- diff --git a/meta/classes/ccache.bbclass
>>> b/meta/classes/ccache.bbclass index 5aa2da2..cd06a4b 100644 ---
>>> a/meta/classes/ccache.bbclass +++ b/meta/classes/ccache.bbclass @@
>>> -4,3 +4,5 @@ CCACHE_DISABLE[unexport] = "1"
>>>
>>> do_configure[dirs] =+ "${CCACHE_DIR}" do_kernel_configme[dirs] =+
>>> "${CCACHE_DIR}" + +do_clean[cleandirs] += "${CCACHE_DIR}"
>>>
>>
>> so will this remove all contents of .ccache dir ?
>> or just the package you are cleanall'ing
>
> Our default CCACHE_DIR defined above this has ${PN} in it so just the
> package you are cleaning.

I'm worried about what happens if someone changes the CCACHE_DIR to a single 
shared location.

--Mark

> Cheers,
>
> Richard
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
Richard Purdie - July 9, 2012, 2:31 p.m.
On Mon, 2012-07-09 at 09:25 -0500, Mark Hatle wrote:
> On 7/9/12 9:16 AM, Khem Raj wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > On 7/9/2012 4:55 AM, Richard Purdie wrote:
> >> This ensures a rebuild does really build from scratch when ccache
> >> is in use.
> >>
> >> [YOCTO #2696]
> >>
> >> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> >> --- diff --git a/meta/classes/ccache.bbclass
> >> b/meta/classes/ccache.bbclass index 5aa2da2..cd06a4b 100644 ---
> >> a/meta/classes/ccache.bbclass +++ b/meta/classes/ccache.bbclass @@
> >> -4,3 +4,5 @@ CCACHE_DISABLE[unexport] = "1"
> >>
> >> do_configure[dirs] =+ "${CCACHE_DIR}" do_kernel_configme[dirs] =+
> >> "${CCACHE_DIR}" + +do_clean[cleandirs] += "${CCACHE_DIR}"
> >>
> >
> > so will this remove all contents of .ccache dir ?
> > or just the package you are cleanall'ing
> 
> I was wondering the same thing, with the default configuration:
> 
> bitbake.conf:# Assign CCACHE_DIR a default value to fix a bug of ccache 3.1.7,
> bitbake.conf:# since it would always create CCACHE_DIR/.ccache even if
> bitbake.conf:export CCACHE_DIR ??= "${@os.getenv('HOME')}"

That line is only in the class file and that class redefines CCACHE_DIR
to include PN.

Cheers,

Richard
Richard Purdie - July 9, 2012, 2:48 p.m.
On Mon, 2012-07-09 at 09:31 -0500, Mark Hatle wrote:
> On 7/9/12 9:27 AM, Richard Purdie wrote:
> > On Mon, 2012-07-09 at 07:16 -0700, Khem Raj wrote:
> >> On 7/9/2012 4:55 AM, Richard Purdie wrote:
> >>> This ensures a rebuild does really build from scratch when ccache
> >>> is in use.
> >>>
> >>> [YOCTO #2696]
> >>>
> >>> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> >>> --- diff --git a/meta/classes/ccache.bbclass
> >>> b/meta/classes/ccache.bbclass index 5aa2da2..cd06a4b 100644 ---
> >>> a/meta/classes/ccache.bbclass +++ b/meta/classes/ccache.bbclass @@
> >>> -4,3 +4,5 @@ CCACHE_DISABLE[unexport] = "1"
> >>>
> >>> do_configure[dirs] =+ "${CCACHE_DIR}" do_kernel_configme[dirs] =+
> >>> "${CCACHE_DIR}" + +do_clean[cleandirs] += "${CCACHE_DIR}"
> >>>
> >>
> >> so will this remove all contents of .ccache dir ?
> >> or just the package you are cleanall'ing
> >
> > Our default CCACHE_DIR defined above this has ${PN} in it so just the
> > package you are cleaning.
> 
> I'm worried about what happens if someone changes the CCACHE_DIR to a single 
> shared location.

It would wipe that shared location upon a clean unless they change the
class...

Cheers,

Richard

Patch

diff --git a/meta/classes/ccache.bbclass b/meta/classes/ccache.bbclass
index 5aa2da2..cd06a4b 100644
--- a/meta/classes/ccache.bbclass
+++ b/meta/classes/ccache.bbclass
@@ -4,3 +4,5 @@  CCACHE_DISABLE[unexport] = "1"
 
 do_configure[dirs] =+ "${CCACHE_DIR}"
 do_kernel_configme[dirs] =+ "${CCACHE_DIR}"
+
+do_clean[cleandirs] += "${CCACHE_DIR}"