> 
> Hello all!  I searched the mailing list archives and found a few
> discussions of this topic, way back when, but there weren't any
> satisfactory answers.  I'm wondering...why does RedHat not natively
> support i586 and i686 builds?  (They do in the kernel, but that appears
> to be the *only* place.)
> 

Because doing so at this moment would only be an El Cheapo marketing
trick.  For this having real effect you need either one of two
conditions: the code contains architecture-dependent ifdefs or the
compiler is able to genrate faster code when you tell it to compile
for higher processors than 386/486s

2.0 kernels had some architecture-specific ifdefs but when I looked at
them I found their impact was microscopical.  It is only with 2.2
kernels that compiling with -DMPENTIUM or -DPPRO leads to including
portions of code with real impact on the speed of the kernel.  RedHat
also provides separate RPMs for Mesa in order to allow use of MMX
instructions for processors with these instrctions.  But other
software does not use compile-time processor optimizations or at least
not significant ones.

About the impact of compiler options, RedHat could do an "invisible"
optimization by using the alignment flags recommended for higher
processors.  This way it would get code who can be executed on
386/486s while higher processors with more astringent alignement
requirements are not slowed down by unaligned accesses.  Notice
however that the code is bigger and the speed increase is under 2 %
with gcc 2.7 and egcs 1.0, slightly higher on egcs 1.1.  Finally there
is the effect of using the -m flags whose effect is to make the
compiler generate generating sequences who work better on a determined
processor or at times using processor-specific instructions.  However
gcc 2.7 and at least egcs 1.0 do not generate correct code when using
-mpentium option.

gcc-2.95 gives a measurable performance boost when you use -mpentium
or -mppro options but RedHat considers it not mature enough for prime
time.  My own experience has been that sometimes gcc 2.95 fails to
compile programs who compile perfectly well with egcs so I would tend
to think RH is right.

Mandrake's marketing claims strongly performance improvements due to
being compiled with PGCC (an unofficial GCC optimized for Pentiuls and
above).  While this could be right on an Intel CPU a few months ago
someone published a comparison of Mandrake versus RedHat on an Athlon
and difference in speed was close to zero.  In addition I have seen
someone where I work crash Mandrake 6.1 with a ten lines program run
as normal user.  It worked on RH.  I don't know if the problem was due
to a weird patch or to a kernel compiled with an "unapproved" compiler
or options but that day I suffered a major loss of face and I have
been wary both of PGCC and Mandrake since then.


> I looked through the source code to rpm, and found that it folds all
> i[456]86 architecture requests to i386.  That wasn't very hard to fix. 
> I've looked at the makefiles for egcs and XFree86 so far, and although
> it took a bit of trekking, I figured out where to patch in the options
> so that i586 and i686 native versions could be built.  (Both are still
> in the testing phase.)
> 
> If the reason i586 and i686 native builds aren't supported is because no
> one has yet bothered to do the work and send the patch file to RedHat,
> that's fine.  I'll be happy to send in my changes, once I'm confident
> about them.  But is that the kind of change RedHat even wants?  They're
> not supporting it now; do they have a good reason that hasn't occurred
> to me?
> 

Probably because they did the same thing I did: benchmark.

-- 
                        Jean Francois Martinez

Project Independence: Linux for the Masses
http://www.independence.seul.org

-- 
To unsubscribe:
mail -s unsubscribe [EMAIL PROTECTED] < /dev/null

Reply via email to