Compiling ALL the SRPMs

Chris Adams cmadams at hiwaay.net
Wed Feb 11 17:06:27 UTC 2004


Once upon a time, Met @ Uber <met at uberstats.com> said:
> I had a stupid revelation the other day.  Its common fact that if I
> compile all the programs for my systems architecture it will run
> faster.  Many RPMs are compiled for NOARCH, and at the very least not
> i686.  But I love the ease of RPMs because they're easy to track whats
> on the system.  So my question is this.

Virtually none are "compiled for NOARCH" as noarch means the package is
not architecture specific (i.e. the same package can be installed on
i386, ia64, sparc, alpha, etc.); those don't contain anything compiled.

However, the line "Its common fact that if I compile all the programs
for my systems architecture it will run faster" is not generally true
(in most cases it doesn't make a measurable difference - CPU is not the
limiting factor for a lot of things).  Fedora already contains certain
critical packages built for specific architectures where it makes a
difference: kernel, glibc, and openssl.  The kernel gains from knowing
what arch it will run on, and glibc (which virtually every compiled
program is linked against) has arch optimizations as well (and so does
openssl, although it isn't as widely used).

In past releases of Red Hat Linux, a few other packages were also built
for specific archs (for example zlib and/or gzip IIRC).  However, the
performance difference was virtually nil, so those were dropped.

Also, some packages where arch optimization does help automatically
select the right code at run time (i.e. the package contains both
generic i386 code and i686 optimized code and detects when you run it
what it is running on to choose the best one).

-- 
Chris Adams <cmadams at hiwaay.net>
Systems and Network Administrator - HiWAAY Internet Services
I don't speak for anybody but myself - that's enough trouble.





More information about the fedora-list mailing list