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 1124332186..a05630d52d 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -1940,7 +1940,8 @@ class Parser(multiprocessing.Process):
1940 except IndexError: 1940 except IndexError:
1941 break 1941 break
1942 result = self.parse(*job) 1942 result = self.parse(*job)
1943 1943 # Clear the siggen cache after parsing to control memory usage, its huge
1944 bb.parse.siggen.postparsing_clean_cache()
1944 try: 1945 try:
1945 self.results.put(result, timeout=0.25) 1946 self.results.put(result, timeout=0.25)
1946 except queue.Full: 1947 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