On Mon, Nov 04, 2002 at 09:23:16AM +0000, Ricardo Javier Cardenes Medina <rcardenes@debian.org> wrote...
> On Sun, Nov 03, 2002 at 12:13:07PM +0100, Michael Karcher wrote:
> > take profit of these instructions, but It seems likely. Is there any way to
> > select libraries based on 'instruction set' instead of architecture, so
> > the VIA C3 could get code 'without cmov', the PII 'with cmov and MMX',
> > the PIII 'with cmov, MMX and SSE' and an Athlon processor 'with cmov, MMX
> > and 3D now!', although they all are 'family: 6'.
>
> See at the end of /proc/cpuinfo. The "flags" field. For my Duron:
>
> flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov
> pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
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.
As another C3 user who has to keep libssl on hold for now, I'd suggest that
the i686-optimized version be replaced with a version that runs on all
i686-family processors.
Another option would be to do runtime detection and choose according to
that, but that would be without the current convenience that the linker
chooses the right lib. As long as the linker only decids on the general
processor type, the code for a specific processor type should match the
least common denominator.
--
Oliver M. Bolzer
oliver@gol.com
GPG (PGP) Fingerprint = 621B 52F6 2AC1 36DB 8761 018F 8786 87AD EF50 D1FF