Bug in sha512 digest with -march=native -mtune=native -m64

Peter Gutmann pgut001 at cs.auckland.ac.nz
Thu Jun 20 07:48:47 CEST 2013

David Shaw <dshaw at jabberwocky.com> writes:

>I've seen something like this once before.  That one turned out to be a
>compiler issue with -O greater than 2, coincidentally also breaking the
>hashing code (it was TIGER if I recall).  I'm not saying your problem is a
>compiler issue, but out of curiosity, what happens if you compile with -O2 ?

I've found so many optimiser bugs in gcc across different platforms with -O3 
(and wasted so much time staring at -S output that bore no resemablance to the 
original C code) that I switched to -O2 by default in my code.  I don't think 
I've had any problems since.  You don't lose much -O with -O2 (and in 
particular in gcc 4.x they made changes that produce far larger binaries than 
-O2, with ensuing poor cache localisation properties), so the switch to -O2 
was pretty easy and solved a lot of headaches.


More information about the Gnupg-devel mailing list