diff options
Diffstat (limited to 'bitbake/lib/bb/utils.py')
-rw-r--r-- | bitbake/lib/bb/utils.py | 13 |
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 | ||
535 | def sha256_file(filename): | 540 | def sha256_file(filename): |