Optimizing "make release"

Erik Cederstrand erik at cederstrand.dk
Mon Sep 24 07:00:08 PDT 2007


Hi!

In an effort to run benchmarks on the latest CURRENT on a couple of 
slave machines, I need to build the distribution sets necessary for an 
NFS install as fast as possible (the slaves are installing over PXE), 
but still ending up with something as close as possible to a normal 
default installation on the slaves.

Right now, I'm doing a very basic run to create the distribution sets 
(using a default make.conf and a 6.2-STABLE build machine):

# /cd /usr/src
# csup /etc/current-supfile
# make buildworld
# cd /release
# make release BUILDNAME=CURRENT-YYYYMMDDHHMMSS CVSROOT=/home/ncvs 
CHROOTDIR=/home/chroot

Using the above commands, a lot of stuff gets compiled unnecessarily, 
and the process takes 5-6 hours on a 2GHz P4. I'd like to cut that to 2 
hours max. I tried to use some of the NO_* settings in make.conf, but 
it's not clear to me what I can omit. Some things are needed later in 
make release (e.g. NO_CXX) even though I don't need a C++ compiler on 
the slave systems. I also looked a ccache, but I consider it somewhat 
dangerous, since I need to have an absolutely correct, reproducible 
installation rather than a fast build.

If I ignore documentation distfiles (will this affect benchmarks in any 
way?), AFAICT the only distribution sets I need are base, proflibs, 
kernels and (maybe) lib32. Is there a way to get "make release" to do 
just that? I'm open to other suggestions, of course.

Thanks,
Erik


More information about the freebsd-performance mailing list