aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2008-05-09 10:23:19 +0000
committerRichard Purdie <rpurdie@linux.intel.com>2008-05-09 10:23:19 +0000
commit5c0671c7028c135e2da5ef832c452af505df740d (patch)
tree81a84809aad710060ba4bc90d14ee24ea83c4949
parent02a48b3e3962b5dc25def67154816de6f97e7f43 (diff)
downloadbitbake-5c0671c7028c135e2da5ef832c452af505df740d.tar.gz
runqueue/taskdata.py: Make sure recrdeps tasks include all inter-task dependencies of a given fn
-rw-r--r--ChangeLog1
-rw-r--r--lib/bb/runqueue.py8
-rw-r--r--lib/bb/taskdata.py10
3 files changed, 17 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 03fc30b8a..ae4e935b4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -132,6 +132,7 @@ Changes in Bitbake 1.9.x:
- No longer weight providers on the basis of a package being "already staged". This
leads to builds being non-deterministic.
- Flush stdout/stderr before forking to fix duplicate console output
+ - Make sure recrdeps tasks include all inter-task dependencies of a given fn
Changes in Bitbake 1.8.0:
- Release 1.7.x as a stable series
diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py
index d7033a3ef..58f067942 100644
--- a/lib/bb/runqueue.py
+++ b/lib/bb/runqueue.py
@@ -417,8 +417,12 @@ class RunQueue:
return []
if task in recursive_tdepends:
return recursive_tdepends[task]
- rectdepends = [task]
- nextdeps = [task]
+
+ fnid = taskData.tasks_fnid[task]
+ taskids = taskData.gettask_ids(fnid)
+
+ rectdepends = taskids
+ nextdeps = taskids
while len(nextdeps) != 0:
newdeps = []
for nextdep in nextdeps:
diff --git a/lib/bb/taskdata.py b/lib/bb/taskdata.py
index 0fb34ad74..566614ee6 100644
--- a/lib/bb/taskdata.py
+++ b/lib/bb/taskdata.py
@@ -91,6 +91,16 @@ class TaskData:
return self.fn_index.index(name)
+ def gettask_ids(self, fnid):
+ """
+ Return an array of the ID numbers matching a given fnid.
+ """
+ ids = []
+ if fnid in self.tasks_lookup:
+ for task in self.tasks_lookup[fnid]:
+ ids.append(self.tasks_lookup[fnid][task])
+ return ids
+
def gettask_id(self, fn, task, create = True):
"""
Return an ID number for the task matching fn and task.