summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/build.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2016-08-31 11:37:53 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-02 18:09:49 +0100
commit412a26e154fb70473f2d96283f383aebce8f8e5e (patch)
tree2fcfca7934b84b196b3962c1b21581fdb36bd95a /bitbake/lib/bb/build.py
parente7b2b7d40da1b9b9c67e6f5b0f4183800c664ddd (diff)
downloadpoky-412a26e154fb70473f2d96283f383aebce8f8e5e.tar.gz
bitbake: build/runqueue: Add noextra stamp file parameter to fix multiconfig builds
We can't execute the same task for the same package_arch multiple times as the current setup has conflicting directories. Since these would usually have the same stamp/hash, we want to execute in sequence rather than in parallel, so for the purposes of task execution, don't consider the "extra-info" on the stamp files. We need to add a parameter to the stamp function to achieve this. This avoids multiple update-rc.d populate_sysroot tasks executing in parallel and breaking multiconfig builds. (Bitbake rev: a9041fc96a14e718c0c1d1676e705343b9e872d3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/build.py')
-rw-r--r--bitbake/lib/bb/build.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index c632a271fe..310b5c0511 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -633,7 +633,7 @@ def exec_task(fn, task, d, profile = False):
633 event.fire(failedevent, d) 633 event.fire(failedevent, d)
634 return 1 634 return 1
635 635
636def stamp_internal(taskname, d, file_name, baseonly=False): 636def stamp_internal(taskname, d, file_name, baseonly=False, noextra=False):
637 """ 637 """
638 Internal stamp helper function 638 Internal stamp helper function
639 Makes sure the stamp directory exists 639 Makes sure the stamp directory exists
@@ -656,6 +656,8 @@ def stamp_internal(taskname, d, file_name, baseonly=False):
656 656
657 if baseonly: 657 if baseonly:
658 return stamp 658 return stamp
659 if noextra:
660 extrainfo = ""
659 661
660 if not stamp: 662 if not stamp:
661 return 663 return
@@ -751,12 +753,12 @@ def write_taint(task, d, file_name = None):
751 with open(taintfn, 'w') as taintf: 753 with open(taintfn, 'w') as taintf:
752 taintf.write(str(uuid.uuid4())) 754 taintf.write(str(uuid.uuid4()))
753 755
754def stampfile(taskname, d, file_name = None): 756def stampfile(taskname, d, file_name = None, noextra=False):
755 """ 757 """
756 Return the stamp for a given task 758 Return the stamp for a given task
757 (d can be a data dict or dataCache) 759 (d can be a data dict or dataCache)
758 """ 760 """
759 return stamp_internal(taskname, d, file_name) 761 return stamp_internal(taskname, d, file_name, noextra=noextra)
760 762
761def add_tasks(tasklist, d): 763def add_tasks(tasklist, d):
762 task_deps = d.getVar('_task_deps', False) 764 task_deps = d.getVar('_task_deps', False)