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. (From OE-Core rev: 67f9a8759f47680dbf349797801b2a1e8d149377) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
937c1ea974
commit
e93a2ab3e3
|
@ -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']):
|
||||
'''
|
||||
|
|
|
@ -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]:
|
||||
|
|
|
@ -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'])
|
||||
|
|
Loading…
Reference in New Issue