[CentOS] CentOS 4.0 -> 4.1 update failing

Tue Jun 21 12:29:50 UTC 2005
Aleksandar Milivojevic <alex at milivojevic.org>

Maciej Żenczykowski wrote:
> c) If redhat isn't supporting anything below a 686 anyway then why don't 
> they switch all .386 packages all the way up to 686?  I know the 
> performance gain isn't stellar, but if the packages are not designed for 
> installation on anything < 686 then there's not much point in _not_ 
> compiling for 686 - the binary packages will be the approx same size 
> anyway and will require the same amount of CDspace/bandwidth.

The key word is "support".  They don't support it, but you are welcome 
to install it on preatty much anything from i386 to P4, and it will most 
likely run.  The "we don't support it" here means only that if you run 
into trouble, you are on your own to solve it.  I think Bryan was a bit 
wrong when it said how the packages are compiled.  The options are "-m32 
-march=i386 -mtune=i686" for wast majority of packages (some have 
different tune option).  If you ever build any SRPM package, you'll 
clearly see that in the output.  Unless Red Hat folks are manually 
instructing rpmbuild to use -march=i486 flag on each and every build. 
That combination of flags is probably the most tested one, and by far 
less likely to generate incorrect code than any other combination of flags.

To install on i386 or i486 you'd obviously need to build kernel yourself 
(for some distros, you'd also need to build i586 kernel).  All other 
packages will work, even the quazy-i386 glibc.  On i386 you will loose 
NPTL, and that is the only part of glibc that uses i486 instructions 
(the rest is compiled with -march=i386).  Actually, if you list the 
files from i386 glibc package, you'll see it has way more branched 
directory structure than i686 version of package (i386 version has 
directory branches with additional i486, i586 and i686 optimized code).

For average package, there is almost no difference in size and 
performance if compiled with -march=i386 or -march=i686.  The almost 
only part of instruction set where you would see performance benefits 
are instructions for implementing atomic locking and SMP.  Since that 
stuff is handled almost exclusivly in kernel and glibc, that's why those 
are practically almost the only packages with dedicated i686 version 
(plus openssl libraries, that seem to benefit from i686 instruction set 
too).