summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/utils.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py
index 9903183213..b20cdabcf0 100644
--- a/bitbake/lib/bb/utils.py
+++ b/bitbake/lib/bb/utils.py
@@ -524,12 +524,17 @@ def md5_file(filename):
524 """ 524 """
525 Return the hex string representation of the MD5 checksum of filename. 525 Return the hex string representation of the MD5 checksum of filename.
526 """ 526 """
527 import hashlib 527 import hashlib, mmap
528 m = hashlib.md5()
529 528
530 with open(filename, "rb") as f: 529 with open(filename, "rb") as f:
531 for line in f: 530 m = hashlib.md5()
532 m.update(line) 531 try:
532 with mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) as mm:
533 for chunk in iter(lambda: mm.read(8192), b''):
534 m.update(chunk)
535 except ValueError:
536 # You can't mmap() an empty file so silence this exception
537 pass
533 return m.hexdigest() 538 return m.hexdigest()
534 539
535def sha256_file(filename): 540def sha256_file(filename):