> 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