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

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



At Mon, 27 Jan 2003 11:39:43 -0500 (EST),
Alan Cox wrote:
> > >>>>>GCC 3.2 still uses CMOVE instructions on -march=i686.
> > >>>>>
> > >>>>>On the other hand:
> > >>>>>     {"c3", PROCESSOR_I486, PTA_MMX | PTA_3DNOW},
> > >>>>>GCC disagrees with you that the C3 is an i686.
> 
> gcc uses i486 scheduling because that gives best performance
> 
> The situation is as follows
> 
> gcc "i686" definition is wrong. The gcc people wont fix it because the 686
> definition without cmov is mostly useless anyway.

Thanks for your explanation.  Hmm.  "cmov" is really key instruction...

I think it may be needed that we add -mcpu=c3 for gcc, which generates
i686 without cmov instruction.

> The C3 is a model 6 cpu, the kernel reports it correctly and wont change

Yup.

We finally conclude that we fix this problem using glibc dynamic
libraries harware capabilities.  It fixes at least for dynamic libraries,
not static libraries or single binaries (such software needs to check 
hardware capabilities with itself, I think).

I've made a patch, and wait testers result... (See the last mail sent
by gotom: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=164766 )

I want VIA C3 user to test the latest my libc6 build at

	http://people.debian.org/~gotom/

and test with the latest ssh and libssl0.9.7.  "ldd /usr/bin/ssh" tells
us whether it uses cmov libs or not.

> Non Debian packaging systems know how to handle this and regard cmov as
> a mandatory CPU attribute for 686 package install. Ugly but works.

Interesting, I guess RPM has such capability.  I dunno dpkg has such
functions, but I think it's useful on debian too.

Regards,
-- gotom



Reply to: