[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#164766: Problem with VIA C3 chip and libcrypto



Am Die, 2002-11-05 um 01.34 schrieb GOTO Masanori:
> At Mon, 4 Nov 2002 11:07:56 +0100,
> Oliver M. Bolzer <oliver@gol.com> wrote:
> > 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. 
> 
> I could not find which source cmov is used, could you tell me?
> If it's the fact, openssl should be fixed in #164766.

openssl does not use explicitly cmov. On all processors which are
detected as i686 by the linker a library is used which is optimized via
gcc and the -mcpu=i686 flag. This flag brings the cmov in I suspect.

> > 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.
> 
> Yes. It's insane option that linker selects i586 library in only the
> case of "flags: cmov" is detected on VIA C3. It means that linker
> consider "C3 is i586". So, if kernel detects VIA C3, then it's natural
> to be treated with i586 straightforwardly (thus /proc/cpuinfo prints
> processor family: i586).

This is what I said. The linker (glibc) should fix this.

Christoph

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil


Reply to: