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

Re: RPM and Crusoe CPUs

On Tue, May 28, 2002 at 10:16:49AM -0700, H. Peter Anvin wrote:
> Hi,
> Transmeta Crusoe CPUs support the instructions that gcc considers
> definitial of a "i686"; mainly CMOV.  Howver, due to "compatibility
> issues with certain non-Linux operating systems" it reports as family=5
> and thus RPM considers it to be incompatible with things like the i686
> glibc.
> Unfortunately, Crusoe will not run a Pentium Pro kernel, solely because
> of the following code in include/asm-i386/pgtable.h:
> /*
>  * Do not check the PGE bit unnecesserily if this is a PPro+ kernel.
>  */
> #ifdef CONFIG_X86_PGE
> # define __flush_tlb_all() __flush_tlb_global()
> #else
> # define __flush_tlb_all()                                              \
>         do {                                                            \
>                 if (cpu_has_pge)                                        \
>                         __flush_tlb_global();                           \
>                 else                                                    \
>                         __flush_tlb();                                  \
>         } while (0)
> #endif

I can add Yet More Mysterious Inline ASM VooDOO (the current paradigm) ...

> What would be the best way to deal with this?

... but the right thing to do is to roll an explicitly dynamic probe
dependency and get rpm out of this arch madness entirely.

By that I mean, that any package that contains an executable that
uses CMOV can/will pick up a probe dependency like (exact syntax yet
to be decided)
	Requires: cpu(HAVE_CMOV)
and then export the cpu(foo) probe mechanism on a per-platform basis
with either static or dynamic resolutionh of the dependency.

Me and rpm don't need no steenkin' CMOV :-)

73 de Jeff

Jeff Johnson	ARS N3NPQ
jbj@redhat.com (jbj@jbj.org)
Chapel Hill, NC

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