diff options
Diffstat (limited to 'bitbake/bin')
| -rwxr-xr-x | bitbake/bin/bitbake-worker | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/bitbake/bin/bitbake-worker b/bitbake/bin/bitbake-worker index 963b4cdf93..1926b89882 100755 --- a/bitbake/bin/bitbake-worker +++ b/bitbake/bin/bitbake-worker | |||
| @@ -115,7 +115,7 @@ def sigterm_handler(signum, frame): | |||
| 115 | os.killpg(0, signal.SIGTERM) | 115 | os.killpg(0, signal.SIGTERM) |
| 116 | sys.exit() | 116 | sys.exit() |
| 117 | 117 | ||
| 118 | def fork_off_task(cfg, data, workerdata, fn, task, taskname, appends, taskdepdata, quieterrors=False): | 118 | def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, appends, taskdepdata, quieterrors=False): |
| 119 | # We need to setup the environment BEFORE the fork, since | 119 | # We need to setup the environment BEFORE the fork, since |
| 120 | # a fork() or exec*() activates PSEUDO... | 120 | # a fork() or exec*() activates PSEUDO... |
| 121 | 121 | ||
| @@ -193,15 +193,18 @@ def fork_off_task(cfg, data, workerdata, fn, task, taskname, appends, taskdepdat | |||
| 193 | if umask: | 193 | if umask: |
| 194 | os.umask(umask) | 194 | os.umask(umask) |
| 195 | 195 | ||
| 196 | data.setVar("BB_WORKERCONTEXT", "1") | ||
| 197 | data.setVar("BB_TASKDEPDATA", taskdepdata) | ||
| 198 | data.setVar("BUILDNAME", workerdata["buildname"]) | ||
| 199 | data.setVar("DATE", workerdata["date"]) | ||
| 200 | data.setVar("TIME", workerdata["time"]) | ||
| 201 | bb.parse.siggen.set_taskdata(workerdata["sigdata"]) | ||
| 202 | ret = 0 | ||
| 203 | try: | 196 | try: |
| 204 | the_data = bb.cache.Cache.loadDataFull(fn, appends, data) | 197 | bb_cache = bb.cache.NoCache(databuilder) |
| 198 | the_data = databuilder.data | ||
| 199 | the_data.setVar("BB_WORKERCONTEXT", "1") | ||
| 200 | the_data.setVar("BB_TASKDEPDATA", taskdepdata) | ||
| 201 | the_data.setVar("BUILDNAME", workerdata["buildname"]) | ||
| 202 | the_data.setVar("DATE", workerdata["date"]) | ||
| 203 | the_data.setVar("TIME", workerdata["time"]) | ||
| 204 | bb.parse.siggen.set_taskdata(workerdata["sigdata"]) | ||
| 205 | ret = 0 | ||
| 206 | |||
| 207 | the_data = bb_cache.loadDataFull(fn, appends) | ||
| 205 | the_data.setVar('BB_TASKHASH', workerdata["runq_hash"][task]) | 208 | the_data.setVar('BB_TASKHASH', workerdata["runq_hash"][task]) |
| 206 | 209 | ||
| 207 | bb.utils.set_process_name("%s:%s" % (the_data.getVar("PN", True), taskname.replace("do_", ""))) | 210 | bb.utils.set_process_name("%s:%s" % (the_data.getVar("PN", True), taskname.replace("do_", ""))) |
| @@ -389,7 +392,7 @@ class BitbakeWorker(object): | |||
| 389 | fn, task, taskname, quieterrors, appends, taskdepdata = pickle.loads(data) | 392 | fn, task, taskname, quieterrors, appends, taskdepdata = pickle.loads(data) |
| 390 | workerlog_write("Handling runtask %s %s %s\n" % (task, fn, taskname)) | 393 | workerlog_write("Handling runtask %s %s %s\n" % (task, fn, taskname)) |
| 391 | 394 | ||
| 392 | pid, pipein, pipeout = fork_off_task(self.cookercfg, self.data, self.workerdata, fn, task, taskname, appends, taskdepdata, quieterrors) | 395 | pid, pipein, pipeout = fork_off_task(self.cookercfg, self.data, self.databuilder, self.workerdata, fn, task, taskname, appends, taskdepdata, quieterrors) |
| 393 | 396 | ||
| 394 | self.build_pids[pid] = task | 397 | self.build_pids[pid] = task |
| 395 | self.build_pipes[pid] = runQueueWorkerPipe(pipein, pipeout) | 398 | self.build_pipes[pid] = runQueueWorkerPipe(pipein, pipeout) |
