Re: Problem with VIA C3 chip and libcrypto
On Tue, Nov 05, 2002 at 03:47:55PM +0100, Christoph Martin <firstname.lastname@example.org> wrote...
> "Oliver M. Bolzer" <email@example.com> writes:
> > The problem with OpenSSL is, that it is hand-assembly. The author is using
> > the cmov instruction for an i686-optimized routine, though that instruction
> > is not guranteed to be available.
> This is wrong. The cmov instruction is NOT used in the assembly
> routines. Also there are only assembly routines for i586. The cmov
> instruction comes in through the usage of the -mcpu=i686 flag of
> gcc. cmov is optional in i686, so gcc should not use it.
OK, my error. I didn't check the sources myself (root for all evil) and
just assumed it was hand-written based on this thread.
Nevertheless, it IS a real problem. As the cmov instruction is OPTIONAL
for i686 but GCC uses it for 686, that is the cause of the problem. That
the kernel compiles itself as 585 if a C3 is specified is simply a
work-around. The correct solution is to fix GCC, but for now, can we
either not ship a i686-optimized libssl or just hardlink the
i585-version into the i686-directory ? We have lived with the i386
version long enough, using a slightly less optimized version for the
time being is MUCH better than simply breaking on C3 machines.
Oliver M. Bolzer
GPG (PGP) Fingerprint = 621B 52F6 2AC1 36DB 8761 018F 8786 87AD EF50 D1FF