diff options
author | Patrick Ohly <patrick.ohly@intel.com> | 2017-04-11 20:38:40 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-04-12 15:02:14 +0100 |
commit | 67f9a8759f47680dbf349797801b2a1e8d149377 (patch) | |
tree | 82199ce261325d5bdb2ed913ad8ee51df3a4cdf9 /scripts | |
parent | 312edd42b6cc553de4d476c76e8e36a882e11cdd (diff) | |
download | openembedded-core-67f9a8759f47680dbf349797801b2a1e8d149377.tar.gz openembedded-core-67f9a8759f47680dbf349797801b2a1e8d149377.tar.bz2 openembedded-core-67f9a8759f47680dbf349797801b2a1e8d149377.zip |
yocto-compat-layer: also determine tune flags for each task
locked-sigs.inc groups tasks according to their tune flags (allarch,
i586, etc.). Also retrieve that information while getting signatures,
it will be needed to determine when setting a machine changes tasks
that aren't machine-specific.
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/lib/compatlayer/__init__.py | 9 | ||||
-rw-r--r-- | scripts/lib/compatlayer/cases/common.py | 2 | ||||
-rwxr-xr-x | scripts/yocto-compat-layer.py | 2 |
3 files changed, 10 insertions, 3 deletions
diff --git a/scripts/lib/compatlayer/__init__.py b/scripts/lib/compatlayer/__init__.py index b46527a185..6130b8548c 100644 --- a/scripts/lib/compatlayer/__init__.py +++ b/scripts/lib/compatlayer/__init__.py @@ -224,6 +224,7 @@ def get_signatures(builddir, failsafe=False): exclude_recipes = ('meta-world-pkgdata',) sigs = {} + tune2tasks = {} cmd = 'bitbake ' if failsafe: @@ -234,9 +235,14 @@ def get_signatures(builddir, failsafe=False): sigs_file = os.path.join(builddir, 'locked-sigs.inc') sig_regex = re.compile("^(?P<task>.*:.*):(?P<hash>.*) .$") + tune_regex = re.compile("(^|\s)SIGGEN_LOCKEDSIGS_t-(?P<tune>\S*)\s*=\s*") + current_tune = None with open(sigs_file, 'r') as f: for line in f.readlines(): line = line.strip() + t = tune_regex.search(line) + if t: + current_tune = t.group('tune') s = sig_regex.match(line) if s: exclude = False @@ -249,11 +255,12 @@ def get_signatures(builddir, failsafe=False): continue sigs[s.group('task')] = s.group('hash') + tune2tasks.setdefault(current_tune, []).append(s.group('task')) if not sigs: raise RuntimeError('Can\'t load signatures from %s' % sigs_file) - return sigs + return (sigs, tune2tasks) def get_depgraph(targets=['world']): ''' diff --git a/scripts/lib/compatlayer/cases/common.py b/scripts/lib/compatlayer/cases/common.py index a4c2a51aba..8eeada9b1e 100644 --- a/scripts/lib/compatlayer/cases/common.py +++ b/scripts/lib/compatlayer/cases/common.py @@ -33,7 +33,7 @@ class CommonCompatLayer(OECompatLayerTestCase): # task -> (old signature, new signature) sig_diff = {} - curr_sigs = get_signatures(self.td['builddir'], failsafe=True) + curr_sigs, _ = get_signatures(self.td['builddir'], failsafe=True) for task in self.td['sigs']: if task in curr_sigs and \ self.td['sigs'][task] != curr_sigs[task]: diff --git a/scripts/yocto-compat-layer.py b/scripts/yocto-compat-layer.py index 22c0c2ddea..2ebddb66d0 100755 --- a/scripts/yocto-compat-layer.py +++ b/scripts/yocto-compat-layer.py @@ -139,7 +139,7 @@ def main(): td['bbvars'] = get_bb_vars() logger.info('Getting initial signatures ...') td['builddir'] = builddir - td['sigs'] = get_signatures(td['builddir']) + td['sigs'], td['tunetasks'] = get_signatures(td['builddir']) if not add_layer(bblayersconf, layer, dep_layers, logger): logger.info('Skipping %s ???.' % layer['name']) |