> I haven't witnessed any problems like you describe, so maybe the OS I
> am using is well behaved.

"maybe" is not acceptable answer:-) What is it? I *assumed* it was
Linux, but gcc -dumpspecs predefines __CELLOS_LV2__ which doesn't sound
like Linux... The macro doesn't seem to be present in stock gcc, so it
must be some vendor-specific branch... How did you configure openssl?
What does './config -t' return?

> Interestingly, I just looked at the
> assembly generated by switching to the generic ROTR definition:
> 
> #define ROTR(x,s)     (((x)>>s) | (x)<<(64-s))
> 
> I was surprised to see that the compiler is smart enough to use a
> rotrdi instruction anyway in this case.

Well, we hardly have the choice not to trust vendor judgment and have to
assume that it's safe to use 64-bit instructions in ILP32 application
context on OS in question. So given this new evidence it appears
appropriate to simply "relax" macro with SHA512_LONG... As mentioned,
the limitation is not universal, but does apply to most probable and
originally *assumed* candidate, Linux.

> The output for "gcc -dumpspecs" you requested is attached.

What I was hoping to find in *cpp section is how did it happen that
macro in question slipped through when it shouldn't have to, and figure
out a way to prevent it from doing so... But clue is not there... I
would assume it's _ARCH_PPC64... A.


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to