From 12b163dbd81cafafec1ebe3c4039c65af60ee261 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 28 Mar 2011 15:09:50 +0100 Subject: bitbake/gcc: Enable a shared common source tree This patch is a quick proof of concept to show how source code could be shared between recipes which use ${B} to have a separate build directory compared to source directory ${S}. Issues: a) gcc uses sed and creates config files against ${S} which means the directory should not be shared. Need to change the way that works. b) Could be extended to cover eglibc except there is a patch applied against nativesdk versions which again makes the source incompatible. c) Need to clean up the layout in work-shared and make a directory level deeper to ensure patch separation. d) clean task does not remove stamps Signed-off-by: Richard Purdie --- bitbake/lib/bb/cache.py | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'bitbake/lib/bb/cache.py') diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py index c56b4b4248..4e76857e6f 100644 --- a/bitbake/lib/bb/cache.py +++ b/bitbake/lib/bb/cache.py @@ -55,6 +55,7 @@ recipe_fields = ( 'provides', 'task_deps', 'stamp', + 'stamp_base', 'stamp_extrainfo', 'broken', 'not_world', @@ -160,6 +161,7 @@ class RecipeInfo(namedtuple('RecipeInfo', recipe_fields)): broken = cls.getvar('BROKEN', metadata), not_world = cls.getvar('EXCLUDE_FROM_WORLD', metadata), stamp = cls.getvar('STAMP', metadata), + stamp_base = cls.flaglist('stamp-base', tasks, metadata), stamp_extrainfo = cls.flaglist('stamp-extra-info', tasks, metadata), packages_dynamic = cls.listvar('PACKAGES_DYNAMIC', metadata), depends = cls.depvar('DEPENDS', metadata), @@ -579,6 +581,7 @@ class CacheData(object): self.task_queues = {} self.task_deps = {} self.stamp = {} + self.stamp_base = {} self.stamp_extrainfo = {} self.preferred = {} self.tasks = {} @@ -604,6 +607,7 @@ class CacheData(object): self.pkg_pepvpr[fn] = (info.pe, info.pv, info.pr) self.pkg_dp[fn] = info.defaultpref self.stamp[fn] = info.stamp + self.stamp_base[fn] = info.stamp_base self.stamp_extrainfo[fn] = info.stamp_extrainfo provides = [info.pn] -- cgit v1.2.3-54-g00ecf