diff options
| -rw-r--r-- | bitbake/lib/bb/runqueue.py | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index bcaaf70abd..2c1714da9d 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
| @@ -2508,17 +2508,6 @@ class RunQueueExecute: | |||
| 2508 | self.sq_buildable.remove(tid) | 2508 | self.sq_buildable.remove(tid) |
| 2509 | if tid in self.sq_running: | 2509 | if tid in self.sq_running: |
| 2510 | self.sq_running.remove(tid) | 2510 | self.sq_running.remove(tid) |
| 2511 | harddepfail = False | ||
| 2512 | for t in self.sqdata.sq_harddeps: | ||
| 2513 | if tid in self.sqdata.sq_harddeps[t] and t in self.scenequeue_notcovered: | ||
| 2514 | harddepfail = True | ||
| 2515 | break | ||
| 2516 | if not harddepfail and self.sqdata.sq_revdeps[tid].issubset(self.scenequeue_covered | self.scenequeue_notcovered): | ||
| 2517 | if tid not in self.sq_buildable: | ||
| 2518 | self.sq_buildable.add(tid) | ||
| 2519 | if not self.sqdata.sq_revdeps[tid]: | ||
| 2520 | self.sq_buildable.add(tid) | ||
| 2521 | |||
| 2522 | if tid in self.sqdata.outrightfail: | 2511 | if tid in self.sqdata.outrightfail: |
| 2523 | self.sqdata.outrightfail.remove(tid) | 2512 | self.sqdata.outrightfail.remove(tid) |
| 2524 | if tid in self.scenequeue_notcovered: | 2513 | if tid in self.scenequeue_notcovered: |
| @@ -2537,21 +2526,36 @@ class RunQueueExecute: | |||
| 2537 | if tid in self.build_stamps: | 2526 | if tid in self.build_stamps: |
| 2538 | del self.build_stamps[tid] | 2527 | del self.build_stamps[tid] |
| 2539 | 2528 | ||
| 2540 | update_tasks.append((tid, harddepfail, tid in self.sqdata.valid)) | 2529 | update_tasks.append(tid) |
| 2530 | |||
| 2531 | update_tasks2 = [] | ||
| 2532 | for tid in update_tasks: | ||
| 2533 | harddepfail = False | ||
| 2534 | for t in self.sqdata.sq_harddeps: | ||
| 2535 | if tid in self.sqdata.sq_harddeps[t] and t in self.scenequeue_notcovered: | ||
| 2536 | harddepfail = True | ||
| 2537 | break | ||
| 2538 | if not harddepfail and self.sqdata.sq_revdeps[tid].issubset(self.scenequeue_covered | self.scenequeue_notcovered): | ||
| 2539 | if tid not in self.sq_buildable: | ||
| 2540 | self.sq_buildable.add(tid) | ||
| 2541 | if not self.sqdata.sq_revdeps[tid]: | ||
| 2542 | self.sq_buildable.add(tid) | ||
| 2543 | |||
| 2544 | update_tasks2.append((tid, harddepfail, tid in self.sqdata.valid)) | ||
| 2541 | 2545 | ||
| 2542 | if update_tasks: | 2546 | if update_tasks2: |
| 2543 | self.sqdone = False | 2547 | self.sqdone = False |
| 2544 | for mc in sorted(self.sqdata.multiconfigs): | 2548 | for mc in sorted(self.sqdata.multiconfigs): |
| 2545 | for tid in sorted([t[0] for t in update_tasks]): | 2549 | for tid in sorted([t[0] for t in update_tasks2]): |
| 2546 | if mc_from_tid(tid) != mc: | 2550 | if mc_from_tid(tid) != mc: |
| 2547 | continue | 2551 | continue |
| 2548 | h = pending_hash_index(tid, self.rqdata) | 2552 | h = pending_hash_index(tid, self.rqdata) |
| 2549 | if h in self.sqdata.hashes and tid != self.sqdata.hashes[h]: | 2553 | if h in self.sqdata.hashes and tid != self.sqdata.hashes[h]: |
| 2550 | self.sq_deferred[tid] = self.sqdata.hashes[h] | 2554 | self.sq_deferred[tid] = self.sqdata.hashes[h] |
| 2551 | bb.note("Deferring %s after %s" % (tid, self.sqdata.hashes[h])) | 2555 | bb.note("Deferring %s after %s" % (tid, self.sqdata.hashes[h])) |
| 2552 | update_scenequeue_data([t[0] for t in update_tasks], self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self, summary=False) | 2556 | update_scenequeue_data([t[0] for t in update_tasks2], self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self, summary=False) |
| 2553 | 2557 | ||
| 2554 | for (tid, harddepfail, origvalid) in update_tasks: | 2558 | for (tid, harddepfail, origvalid) in update_tasks2: |
| 2555 | if tid in self.sqdata.valid and not origvalid: | 2559 | if tid in self.sqdata.valid and not origvalid: |
| 2556 | hashequiv_logger.verbose("Setscene task %s became valid" % tid) | 2560 | hashequiv_logger.verbose("Setscene task %s became valid" % tid) |
| 2557 | if harddepfail: | 2561 | if harddepfail: |
