[Bitbake-dev,oe] How does oe handle rebuilds?
Details
Commit Message
@@ -174,6 +174,7 @@ class RunQueue:
self.scheduler = bb.data.getVar("BB_SCHEDULER", cfgData, 1) or "speed"
self.stamppolicy = bb.data.getVar("BB_STAMP_POLICY", cfgData, 1) or "perfile"
self.stampwhitelist = bb.data.getVar("BB_STAMP_WHITELIST", cfgData, 1) or ""
+ self.stampblacklist = bb.data.getVar("BB_STAMP_BLACKLIST", cfgData, 1) or ""
def reset_runqueue(self):
self.runq_fnid = []
@@ -688,6 +689,17 @@ class RunQueue:
stampfnwhitelist.append(fn)
self.stampfnwhitelist = stampfnwhitelist
+ # Create a blacklist usable by the stamp checks
+ stampfnblacklist = []
+ for entry in self.stampblacklist.split():
+ entryid = self.taskData.getbuild_id(entry)
+ if entryid not in self.taskData.build_targets:
+ continue
+ fnid = self.taskData.build_targets[entryid][0]
+ fn = self.taskData.fn_index[fnid]
+ stampfnblacklist.append(fn)
+ self.stampfnblacklist = stampfnblacklist
+
#self.dump_data(taskData)
self.state = runQueueRunInit
@@ -796,6 +808,9 @@ class RunQueue:
if self.stamppolicy == "whitelist":
stampwhitelist = self.stampfnwhitelist
+ stampblacklist = []
+ stampblacklist = self.stampfnblacklist
+
fn = self.taskData.fn_index[self.runq_fnid[task]]
if taskname is None:
taskname = self.runq_task[task]
@@ -817,7 +832,7 @@ class RunQueue:
fn2 = self.taskData.fn_index[self.runq_fnid[dep]]
taskname2 = self.runq_task[dep]
stampfile2 = "%s.%s" % (self.dataCache.stamp[fn2], taskname2)
- if fn == fn2 or (fulldeptree and fn2 not in stampwhitelist):
+ if fn == fn2 or (fulldeptree and fn2 not in stampwhitelist) or fn2 in stampblacklist:
try:
t2 = os.stat(stampfile2)[stat.ST_MTIME]
if t1 < t2: