summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/cooker.py3
-rw-r--r--bitbake/lib/bb/siggen.py11
2 files changed, 13 insertions, 1 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index 911805a6e3..d2d308ae20 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -1944,7 +1944,8 @@ class Parser(multiprocessing.Process):
1944 except IndexError: 1944 except IndexError:
1945 break 1945 break
1946 result = self.parse(*job) 1946 result = self.parse(*job)
1947 1947 # Clear the siggen cache after parsing to control memory usage, its huge
1948 bb.parse.siggen.postparsing_clean_cache()
1948 try: 1949 try:
1949 self.results.put(result, timeout=0.25) 1950 self.results.put(result, timeout=0.25)
1950 except queue.Full: 1951 except queue.Full:
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py
index ffd8fcaf36..c2d0c736cf 100644
--- a/bitbake/lib/bb/siggen.py
+++ b/bitbake/lib/bb/siggen.py
@@ -51,6 +51,9 @@ class SignatureGenerator(object):
51 def finalise(self, fn, d, varient): 51 def finalise(self, fn, d, varient):
52 return 52 return
53 53
54 def postparsing_clean_cache(self):
55 return
56
54 def get_unihash(self, tid): 57 def get_unihash(self, tid):
55 return self.taskhash[tid] 58 return self.taskhash[tid]
56 59
@@ -188,6 +191,14 @@ class SignatureGeneratorBasic(SignatureGenerator):
188 for task in taskdeps: 191 for task in taskdeps:
189 d.setVar("BB_BASEHASH_task-%s" % task, self.basehash[fn + ":" + task]) 192 d.setVar("BB_BASEHASH_task-%s" % task, self.basehash[fn + ":" + task])
190 193
194 def postparsing_clean_cache(self):
195 #
196 # After parsing we can remove some things from memory to reduce our memory footprint
197 #
198 self.gendeps = {}
199 self.lookupcache = {}
200 self.taskdeps = {}
201
191 def rundep_check(self, fn, recipename, task, dep, depname, dataCache): 202 def rundep_check(self, fn, recipename, task, dep, depname, dataCache):
192 # Return True if we should keep the dependency, False to drop it 203 # Return True if we should keep the dependency, False to drop it
193 # We only manipulate the dependencies for packages not in the whitelist 204 # We only manipulate the dependencies for packages not in the whitelist