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.

Reply via email to