> My recommendation is to build for the generic case, and document the
> optimizations available for each platform, and why someone would want
> to (or not want to) use them. Slow and working is always preferable to
> a fast crash.

Let me explain why we need the CPU version:

OpenSSL contains optimized assembler implementations for a number of
cryptographic algorithms. They are only used when you configure the
library for Intel processors, not in the generic case ("Configure cc").

The SHA-1 implementation uses the bswap instruction, which is not
available on the i386. (I consider it a bug if an operating system
doesn't catch the exception and emulate bswap, but apparently OS
authors don't buy into the "slow and working" philosophy.) SHA-1 is
considerably slower with the swap done stepwise, so we do that only
when OpenSSL is built on a 386 or the user explicitly requests it.

The INSTALL file contains the following explanation in a prominent
position:

| There are several options to ./config to customize the build:
|
|  rsaref    Build with RSADSI's RSAREF toolkit.
|  no-asm    Build with no assembler code.
|  386       Use the 80386 instruction set only (the default x86 code is
|            more efficient, but requires at least a 486).

Given the current market share of i386 processors, I believe that is a
reasonable solution.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to