diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-03-28 15:09:50 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-03-28 15:09:50 +0100 |
commit | 12b163dbd81cafafec1ebe3c4039c65af60ee261 (patch) | |
tree | bb4b0aed62393b27c05d2a977b256be67c42be58 /bitbake/lib/bb/cache.py | |
parent | afd28598368963dc49bfd02ef2d6f54218d663ae (diff) | |
download | poky-12b163dbd81cafafec1ebe3c4039c65af60ee261.tar.gz |
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 <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/cache.py')
-rw-r--r-- | bitbake/lib/bb/cache.py | 4 |
1 files changed, 4 insertions, 0 deletions
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 = ( | |||
55 | 'provides', | 55 | 'provides', |
56 | 'task_deps', | 56 | 'task_deps', |
57 | 'stamp', | 57 | 'stamp', |
58 | 'stamp_base', | ||
58 | 'stamp_extrainfo', | 59 | 'stamp_extrainfo', |
59 | 'broken', | 60 | 'broken', |
60 | 'not_world', | 61 | 'not_world', |
@@ -160,6 +161,7 @@ class RecipeInfo(namedtuple('RecipeInfo', recipe_fields)): | |||
160 | broken = cls.getvar('BROKEN', metadata), | 161 | broken = cls.getvar('BROKEN', metadata), |
161 | not_world = cls.getvar('EXCLUDE_FROM_WORLD', metadata), | 162 | not_world = cls.getvar('EXCLUDE_FROM_WORLD', metadata), |
162 | stamp = cls.getvar('STAMP', metadata), | 163 | stamp = cls.getvar('STAMP', metadata), |
164 | stamp_base = cls.flaglist('stamp-base', tasks, metadata), | ||
163 | stamp_extrainfo = cls.flaglist('stamp-extra-info', tasks, metadata), | 165 | stamp_extrainfo = cls.flaglist('stamp-extra-info', tasks, metadata), |
164 | packages_dynamic = cls.listvar('PACKAGES_DYNAMIC', metadata), | 166 | packages_dynamic = cls.listvar('PACKAGES_DYNAMIC', metadata), |
165 | depends = cls.depvar('DEPENDS', metadata), | 167 | depends = cls.depvar('DEPENDS', metadata), |
@@ -579,6 +581,7 @@ class CacheData(object): | |||
579 | self.task_queues = {} | 581 | self.task_queues = {} |
580 | self.task_deps = {} | 582 | self.task_deps = {} |
581 | self.stamp = {} | 583 | self.stamp = {} |
584 | self.stamp_base = {} | ||
582 | self.stamp_extrainfo = {} | 585 | self.stamp_extrainfo = {} |
583 | self.preferred = {} | 586 | self.preferred = {} |
584 | self.tasks = {} | 587 | self.tasks = {} |
@@ -604,6 +607,7 @@ class CacheData(object): | |||
604 | self.pkg_pepvpr[fn] = (info.pe, info.pv, info.pr) | 607 | self.pkg_pepvpr[fn] = (info.pe, info.pv, info.pr) |
605 | self.pkg_dp[fn] = info.defaultpref | 608 | self.pkg_dp[fn] = info.defaultpref |
606 | self.stamp[fn] = info.stamp | 609 | self.stamp[fn] = info.stamp |
610 | self.stamp_base[fn] = info.stamp_base | ||
607 | self.stamp_extrainfo[fn] = info.stamp_extrainfo | 611 | self.stamp_extrainfo[fn] = info.stamp_extrainfo |
608 | 612 | ||
609 | provides = [info.pn] | 613 | provides = [info.pn] |