Re: Requested FAQ addition - Mandrake and partial-i686 platforms

From: Juan Quintela
Date: Wed Aug 13 2003 - 11:28:34 EST


>>>>> "alan" == Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> writes:

Hi

alan> gcc i686 mode outputs cmov instruction sequences without checking cmov
alan> is present at runtime. So gcc "i686" is actually "i686 and a bit". It
alan> actually doesn't really make sense to do a true i686 mode without cmov
alan> either.

alan> Red Hat's rpm knows about this so I'm suprised the Mandrake one gets it
alan> wrong and installs arch=686 packages without checking for cmov.

again, it is a bit more complex than that :p

Mandrake glibc _alsa_ has a /lib/i686/ directory (i.e. it is not a
separate package). ld.so looks at the architecture for choice about
what lib to load.

Problem, as others stated is that kernel i686 definition and gcc i686
definition are different (gcc definition is i686+cmov basically).

Mandrake kernels workaround that telling ld.so that i686 without cmov
are i586 class machines, not i686 class machines.

It will be more elegant to make the decission in ld.so, but there are
other problems with dlopen() that I don't remember.

To make things worse, via c3 implement cmov instruction if all
operands are in registers (i.e. no operand in memory), I know that
this faked somebody that did a test on cmov :(

To make history more intersting, new Via C3 have a complet cmov
instruction.

Later, Juan.

--
In theory, practice and theory are the same, but in practice they
are different -- Larry McVoy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/