On second thought, use the SHA2 version that was in bleeding instead. Also
try to mitigate a bogus strict aliasing warning. We are already using a
proper union for all I can see.
Mute harmless compiler warnings if MIN() already defined.