diff options
Diffstat (limited to 'bitbake/lib')
-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 c540b49cf6..f75312399b 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py | |||
@@ -523,12 +523,17 @@ def md5_file(filename): | |||
523 | """ | 523 | """ |
524 | Return the hex string representation of the MD5 checksum of filename. | 524 | Return the hex string representation of the MD5 checksum of filename. |
525 | """ | 525 | """ |
526 | import hashlib | 526 | import hashlib, mmap |
527 | m = hashlib.md5() | ||
528 | 527 | ||
529 | with open(filename, "rb") as f: | 528 | with open(filename, "rb") as f: |
530 | for line in f: | 529 | m = hashlib.md5() |
531 | m.update(line) | 530 | try: |
531 | with mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) as mm: | ||
532 | for chunk in iter(lambda: mm.read(8192), b''): | ||
533 | m.update(chunk) | ||
534 | except ValueError: | ||
535 | # You can't mmap() an empty file so silence this exception | ||
536 | pass | ||
532 | return m.hexdigest() | 537 | return m.hexdigest() |
533 | 538 | ||
534 | def sha256_file(filename): | 539 | def sha256_file(filename): |