summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib')
-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 378e699e0c..2ff7e82222 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):