diff options
Diffstat (limited to 'bitbake/lib/bb/runqueue.py')
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 52 |
1 files changed, 36 insertions, 16 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 437f4a185c..595a58883e 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
@@ -1311,10 +1311,6 @@ class RunQueue: | |||
1311 | workerpipe = runQueuePipe(worker.stdout, None, self.cfgData, self, rqexec, fakerootlogs=fakerootlogs) | 1311 | workerpipe = runQueuePipe(worker.stdout, None, self.cfgData, self, rqexec, fakerootlogs=fakerootlogs) |
1312 | 1312 | ||
1313 | workerdata = { | 1313 | workerdata = { |
1314 | "taskdeps" : self.rqdata.dataCaches[mc].task_deps, | ||
1315 | "fakerootenv" : self.rqdata.dataCaches[mc].fakerootenv, | ||
1316 | "fakerootdirs" : self.rqdata.dataCaches[mc].fakerootdirs, | ||
1317 | "fakerootnoenv" : self.rqdata.dataCaches[mc].fakerootnoenv, | ||
1318 | "sigdata" : bb.parse.siggen.get_taskdata(), | 1314 | "sigdata" : bb.parse.siggen.get_taskdata(), |
1319 | "logdefaultlevel" : bb.msg.loggerDefaultLogLevel, | 1315 | "logdefaultlevel" : bb.msg.loggerDefaultLogLevel, |
1320 | "build_verbose_shell" : self.cooker.configuration.build_verbose_shell, | 1316 | "build_verbose_shell" : self.cooker.configuration.build_verbose_shell, |
@@ -2139,18 +2135,30 @@ class RunQueueExecute: | |||
2139 | startevent = sceneQueueTaskStarted(task, self.stats, self.rq) | 2135 | startevent = sceneQueueTaskStarted(task, self.stats, self.rq) |
2140 | bb.event.fire(startevent, self.cfgData) | 2136 | bb.event.fire(startevent, self.cfgData) |
2141 | 2137 | ||
2142 | taskdepdata = self.sq_build_taskdepdata(task) | ||
2143 | |||
2144 | taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] | 2138 | taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] |
2145 | taskhash = self.rqdata.get_task_hash(task) | 2139 | runtask = { |
2146 | unihash = self.rqdata.get_task_unihash(task) | 2140 | 'fn' : taskfn, |
2141 | 'task' : task, | ||
2142 | 'taskname' : taskname, | ||
2143 | 'taskhash' : self.rqdata.get_task_hash(task), | ||
2144 | 'unihash' : self.rqdata.get_task_unihash(task), | ||
2145 | 'quieterrors' : True, | ||
2146 | 'appends' : self.cooker.collections[mc].get_file_appends(taskfn), | ||
2147 | 'taskdepdata' : self.sq_build_taskdepdata(task), | ||
2148 | 'dry_run' : False, | ||
2149 | 'taskdep': taskdep, | ||
2150 | 'fakerootenv' : self.rqdata.dataCaches[mc].fakerootenv[taskfn], | ||
2151 | 'fakerootdirs' : self.rqdata.dataCaches[mc].fakerootdirs[taskfn], | ||
2152 | 'fakerootnoenv' : self.rqdata.dataCaches[mc].fakerootnoenv[taskfn] | ||
2153 | } | ||
2154 | |||
2147 | if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not self.cooker.configuration.dry_run: | 2155 | if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not self.cooker.configuration.dry_run: |
2148 | if not mc in self.rq.fakeworker: | 2156 | if not mc in self.rq.fakeworker: |
2149 | self.rq.start_fakeworker(self, mc) | 2157 | self.rq.start_fakeworker(self, mc) |
2150 | self.rq.fakeworker[mc].process.stdin.write(b"<runtask>" + pickle.dumps((taskfn, task, taskname, taskhash, unihash, True, self.cooker.collections[mc].get_file_appends(taskfn), taskdepdata, False)) + b"</runtask>") | 2158 | self.rq.fakeworker[mc].process.stdin.write(b"<runtask>" + pickle.dumps(runtask) + b"</runtask>") |
2151 | self.rq.fakeworker[mc].process.stdin.flush() | 2159 | self.rq.fakeworker[mc].process.stdin.flush() |
2152 | else: | 2160 | else: |
2153 | self.rq.worker[mc].process.stdin.write(b"<runtask>" + pickle.dumps((taskfn, task, taskname, taskhash, unihash, True, self.cooker.collections[mc].get_file_appends(taskfn), taskdepdata, False)) + b"</runtask>") | 2161 | self.rq.worker[mc].process.stdin.write(b"<runtask>" + pickle.dumps(runtask) + b"</runtask>") |
2154 | self.rq.worker[mc].process.stdin.flush() | 2162 | self.rq.worker[mc].process.stdin.flush() |
2155 | 2163 | ||
2156 | self.build_stamps[task] = bb.build.stampfile(taskname, self.rqdata.dataCaches[mc], taskfn, noextra=True) | 2164 | self.build_stamps[task] = bb.build.stampfile(taskname, self.rqdata.dataCaches[mc], taskfn, noextra=True) |
@@ -2220,11 +2228,23 @@ class RunQueueExecute: | |||
2220 | startevent = runQueueTaskStarted(task, self.stats, self.rq) | 2228 | startevent = runQueueTaskStarted(task, self.stats, self.rq) |
2221 | bb.event.fire(startevent, self.cfgData) | 2229 | bb.event.fire(startevent, self.cfgData) |
2222 | 2230 | ||
2223 | taskdepdata = self.build_taskdepdata(task) | ||
2224 | |||
2225 | taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] | 2231 | taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] |
2226 | taskhash = self.rqdata.get_task_hash(task) | 2232 | runtask = { |
2227 | unihash = self.rqdata.get_task_unihash(task) | 2233 | 'fn' : taskfn, |
2234 | 'task' : task, | ||
2235 | 'taskname' : taskname, | ||
2236 | 'taskhash' : self.rqdata.get_task_hash(task), | ||
2237 | 'unihash' : self.rqdata.get_task_unihash(task), | ||
2238 | 'quieterrors' : False, | ||
2239 | 'appends' : self.cooker.collections[mc].get_file_appends(taskfn), | ||
2240 | 'taskdepdata' : self.build_taskdepdata(task), | ||
2241 | 'dry_run' : self.rqdata.setscene_enforce, | ||
2242 | 'taskdep': taskdep, | ||
2243 | 'fakerootenv' : self.rqdata.dataCaches[mc].fakerootenv[taskfn], | ||
2244 | 'fakerootdirs' : self.rqdata.dataCaches[mc].fakerootdirs[taskfn], | ||
2245 | 'fakerootnoenv' : self.rqdata.dataCaches[mc].fakerootnoenv[taskfn] | ||
2246 | } | ||
2247 | |||
2228 | if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not (self.cooker.configuration.dry_run or self.rqdata.setscene_enforce): | 2248 | if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not (self.cooker.configuration.dry_run or self.rqdata.setscene_enforce): |
2229 | if not mc in self.rq.fakeworker: | 2249 | if not mc in self.rq.fakeworker: |
2230 | try: | 2250 | try: |
@@ -2234,10 +2254,10 @@ class RunQueueExecute: | |||
2234 | self.rq.state = runQueueFailed | 2254 | self.rq.state = runQueueFailed |
2235 | self.stats.taskFailed() | 2255 | self.stats.taskFailed() |
2236 | return True | 2256 | return True |
2237 | self.rq.fakeworker[mc].process.stdin.write(b"<runtask>" + pickle.dumps((taskfn, task, taskname, taskhash, unihash, False, self.cooker.collections[mc].get_file_appends(taskfn), taskdepdata, self.rqdata.setscene_enforce)) + b"</runtask>") | 2257 | self.rq.fakeworker[mc].process.stdin.write(b"<runtask>" + pickle.dumps(runtask) + b"</runtask>") |
2238 | self.rq.fakeworker[mc].process.stdin.flush() | 2258 | self.rq.fakeworker[mc].process.stdin.flush() |
2239 | else: | 2259 | else: |
2240 | self.rq.worker[mc].process.stdin.write(b"<runtask>" + pickle.dumps((taskfn, task, taskname, taskhash, unihash, False, self.cooker.collections[mc].get_file_appends(taskfn), taskdepdata, self.rqdata.setscene_enforce)) + b"</runtask>") | 2260 | self.rq.worker[mc].process.stdin.write(b"<runtask>" + pickle.dumps(runtask) + b"</runtask>") |
2241 | self.rq.worker[mc].process.stdin.flush() | 2261 | self.rq.worker[mc].process.stdin.flush() |
2242 | 2262 | ||
2243 | self.build_stamps[task] = bb.build.stampfile(taskname, self.rqdata.dataCaches[mc], taskfn, noextra=True) | 2263 | self.build_stamps[task] = bb.build.stampfile(taskname, self.rqdata.dataCaches[mc], taskfn, noextra=True) |