[oe] [PATCH] bitbake.conf: define shared PERSISTENT_DIR and point it outside TMPDIR

Tom Rini tom_rini at mentor.com
Thu Mar 3 14:38:04 UTC 2011


On 03/03/2011 12:27 AM, Martin Jansa wrote:
> On Fri, Feb 25, 2011 at 04:27:16PM +0100, Martin Jansa wrote:
>> * import from poky 6a11cf7dfe930461a6660e3b783b546fa2634900
>> * we had CACHE var pointing to machine specific dir since 2006
>>    caf077679022f37ce55d758101f130e4e93bd7b5
>> * current bitbake is looking for cache dir like this:
>>    cachedir = (bb.data.getVar("PERSISTENT_DIR", d, True) or
>>                bb.data.getVar("CACHE", d, True))
>>    which without PERSISTENT_DIR defined picks machine-specific CACHE dir
>>    so LOCALCOUNT numbers in SRCPV keeps rolling with every MACHINE switch
>>    in same builddir :/
>
> ping?
>

I'd like Richards comments here.

>>
>> Signed-off-by: Martin Jansa<Martin.Jansa at gmail.com>
>> ---
>>   classes/sanity.bbclass |   12 ++++++++++++
>>   conf/bitbake.conf      |    2 ++
>>   conf/sanity.conf       |    1 +
>>   3 files changed, 15 insertions(+), 0 deletions(-)
>>
>> diff --git a/classes/sanity.bbclass b/classes/sanity.bbclass
>> index 1e6b170..ffe3a49 100644
>> --- a/classes/sanity.bbclass
>> +++ b/classes/sanity.bbclass
>> @@ -189,6 +189,18 @@ def check_sanity(e):
>>   	if messages != "":
>>   		raise_sanity_error(messages)
>>
>> +	#
>> +	# Check there isn't old persistent cache
>> +	#
>> +	cache = data.getVar('CACHE', e.data, True)
>> +	persistent_dir = data.getVar('PERSISTENT_DIR', e.data, True)
>> +	persistent_cache_filename = data.getVar('SANITY_PERSIST_DATA_FILE', e.data, True)
>> +	if os.path.exists(cache + '/' + persistent_cache_filename):
>> +		messages = messages + "Error, persistent cache file '%s' exists in old location '%s', please migrate it to new location '%s' and merge them together if you have one for each MACHINE.\n" % (persistent_cache_filename, cache, persistent_dir)
>> +
>> +	if messages != "":
>> +		raise_sanity_error(messages)
>> +
>>   python check_sanity_eventhandler() {
>>       if isinstance(e, bb.event.BuildStarted):
>>           check_sanity(e)
>> diff --git a/conf/bitbake.conf b/conf/bitbake.conf
>> index 88ad2ba..0c11cdb 100644
>> --- a/conf/bitbake.conf
>> +++ b/conf/bitbake.conf
>> @@ -294,6 +294,8 @@ FILESDIR = "${@bb.which(d.getVar('FILESPATH', 1), '.')}"
>>
>>   TMPDIR = "${TOPDIR}/tmp"
>>   CACHE = "${TMPDIR}/cache${@['', '/' + str(bb.data.getVar('MACHINE', d, 1))][bool(bb.data.getVar('MACHINE', d, 1))]}"
>> +# The persistent cache should be shared by all builds
>> +PERSISTENT_DIR = "${TOPDIR}/conf/persistent"
>>   CO_DIR = "${DL_DIR}"
>>   CVSDIR = "${CO_DIR}/cvs"
>>   SVNDIR = "${CO_DIR}/svn"
>> diff --git a/conf/sanity.conf b/conf/sanity.conf
>> index e9902f6..c1ac332 100644
>> --- a/conf/sanity.conf
>> +++ b/conf/sanity.conf
>> @@ -7,5 +7,6 @@ BB_MIN_VERSION = "1.10.2"
>>
>>   SANITY_ABIFILE = "${TMPDIR}/abi_version"
>>   SANITY_PRFILE = "${TMPDIR}/distro_pr"
>> +SANITY_PERSIST_DATA_FILE = "bb_persist_data.sqlite3"
>>
>>   INHERIT += "sanity"
>> --
>> 1.7.4.1
>>
>
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel


-- 
Tom Rini
Mentor Graphics Corporation




More information about the Openembedded-devel mailing list