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]

Reply via email to