summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2021-09-10 14:47:37 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-10-02 09:55:51 +0100
commitcbcdc1e02ed5418a06fa39adf2ea4353253b7079 (patch)
treebbe6afff42774207ee20c8d7b646a72c593950e7
parent4de265915c0a82408778a66179df1ca95568d238 (diff)
downloadpoky-cbcdc1e02ed5418a06fa39adf2ea4353253b7079.zip
poky-cbcdc1e02ed5418a06fa39adf2ea4353253b7079.tar.gz
poky-cbcdc1e02ed5418a06fa39adf2ea4353253b7079.tar.bz2
bitbake: build: Catch and error upon circular task references
If there are circular task references, error on them rather than show a recursion error. A simple reproducer is: """ do_packageswu () { : } addtask do_packageswu after do_image_complete before do_image_qa """ into image_types.bbclass. There is code in runqueue to detect these but we never get that far with the current codebase. [YOCTO #13140] (Bitbake rev: f613d8d601be75e624e46cfe2351d1a067a9c341) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 339d4d6be515a71311b81fb9e99742af0d8a5130) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/bb/build.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
index 6e9c064..17c70d0 100644
--- a/bitbake/lib/bb/build.py
+++ b/bitbake/lib/bb/build.py
@@ -905,6 +905,8 @@ def tasksbetween(task_start, task_end, d):
def follow_chain(task, endtask, chain=None):
if not chain:
chain = []
+ if task in chain:
+ bb.fatal("Circular task dependencies as %s depends on itself via the chain %s" % (task, " -> ".join(chain)))
chain.append(task)
for othertask in tasks:
if othertask == task: