crypto/md32_common.h currently reads: # if 0 /* defined(_MSC_VER) */ # define ROTATE(a,n) _lrotl(a,n) # elif defined(__MWERKS__) # if defined(__POWERPC__) # define ROTATE(a,n) __rlwinm(a,n,0,31) # elif defined(OPENSSL_SYSNAME_NETWARE) # define ROTATE(a,n) _lrotl(a,n) ...
First #if was zapped with "_lrotl() is a call to the C runtime library! By ulf." comment. Well, _lrotl is a call only as long as optimization for speed is off. As we compile with /Ox, _lrotl is treated as intrinsic and *is* compiled as inline instruction. As for OPENSSL_SYSNAME_NETWARE in __MWERKS__ context. I didn't know that there is/was Metrowerks compiler for Netware... But in either case current Metrowerks documentation doesn't mention _lrotl, but __rol on Intel platform(s). Then if you google for "+_lrotl +metrowerks," you find a statement that Metrowerks defines _MSC_VER, but not _lrotl. Note that current Metrowerks documentation doesn't mention _MSC_VER macro either. So I'm lost... Also note that other #if-s in __MWERKS__ section rely on compiler predefines, which is preferred. Is there a Netware-specific predefine? Where am I heading? If __NETWARE__ was Netware-specific prefefine, wouldn't following be more appropriate: #if defined(__MWERKS__) # if defined(__NETWARE__) # define ROTATE(a,n) _lrotl(a,n) # elif # ... # endif #elif defined(_MSC_VER) # define ROTATE(a,n) _lrotl(a,n) ... A. ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
