Anton Graham <[EMAIL PROTECTED]> writes:
> This hasn't affected me yet, because I have opt flags defined in
you shouldn't.
> ~/.rpmmacros, but in /usr/lib/rpm/i586-mandrake-linux we have:
>
> %optflags -O2 -march=i686 -O3 -fomit-frame-pointer
> -fno-exceptions -fno-rtti -pipe -s -mcpu=pentiumpro -march=pentiumpro
> -ffast-math -fexpensive-optimizations
>
> That will break a great number of packages for those of us who still
> run 586's. I *did* build a package (I forget which) with those opt
> flags, and, as expected, got illegal instruction errors running the
> binary on a p200.
Wrong. Actually the used cflags are ' -O3 -fomit-frame-pointer -fno-exceptions
-fno-rtti -pipe -s -march=pentium -mcpu=pentiumpro -ffast-math
-fexpensive-optimizations' (make a rpm to check)
It only schedule the generated instructions to work better on i386 and
i686+ (-mcpu=XXXX)
the -march=XXX enable to generate specific i586 opcodes so that produced
binaries won't work on pre i586.
So our binaries'll _always_ work on i586. But they'll run a lot better
on PII/PIII/Celeron.
For your illegal instruction, the odds are high you've compiled something with only
-march=i686.