diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2022-12-14 15:15:20 +0100 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2022-12-16 00:01:04 +0100 |
| commit | 79457fc76a61695560e6314246b0a8c21a7e2d2c (patch) | |
| tree | 7a35a25f880c057e27098b240f8fac7e42b842eb /lib/std/Thread | |
| parent | ec40c6b28fb1612f401db3c43b68aba670327e2e (diff) | |
| download | zig-79457fc76a61695560e6314246b0a8c21a7e2d2c.tar.gz zig-79457fc76a61695560e6314246b0a8c21a7e2d2c.zip | |
macho: generalize parallel hasher; impl parallel MD5-like hash
By pulling out the parallel hashing setup from `CodeSignature.zig`,
we can now reuse it different places across MachO linker (for now;
I can totally see its usefulness beyond MachO, eg. in COFF or ELF too).
The parallel hasher is generic over actual hasher such as Sha256 or MD5.
The implementation is kept as it was.
For UUID calculation, depending on the linking mode:
* incremental - since it only supports debug mode, we don't bother with MD5
hashing of the contents, and populate it with random data but only once
per a sequence of in-place binary patches
* traditional - in debug, we use random string (for speed); in release,
we calculate the hash, however we use LLVM/LLD's trick in that we
calculate a series of MD5 hashes in parallel and then one an MD5 of MD5
final hash to generate digest.
Diffstat (limited to 'lib/std/Thread')
0 files changed, 0 insertions, 0 deletions
