Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Oct 2007 18:50:05 -0400 (EDT)
From:      "Jonathan Noack" <noackjr@alumni.rice.edu>
To:        ports@freebsd.org
Cc:        markus@freebsd.org
Subject:   parallel ports build
Message-ID:  <12263.67.45.62.107.1192747805.squirrel@www.noacks.org>

next in thread | raw e-mail | index | archive | help
With most modern systems having 2+ cores, I was wondering if the ports
system could make use of more than one of them.  I briefly searched the
web and list archives and found several short discussions and the
following page (cced author markus@):
http://www.brueffer.de/parallel_ports_build.html

The bsd.port.mk patch on that page is dated March 2004 (!) but looks
pretty simple.  A port must set "SUPPORTS_PARALLEL_BUILD=yes" to allow a
parallel build.  If it does, the BUILD_JOBS knob is used (either read from
/etc/make.conf, env, or defaults to 0) and "-j${BUILD_JOBS}" is passed to
make.  As a bonus, the patch includes CC/CXX wrapper support for
ccache/distcc/etc.

Given that not all ports successfully build in parallel, the opt-in
approach seems reasonable.  It allows port maintainers to test their ports
and update them if everything works well.  Even a simple pass through the
ports tree focusing on the heavy-hitters (X, KDE, Gnome, Apache, PHP,
MySQL, Postgres, OpenOffice, etc.) and their dependencies could make a
significant dent in build time.  This would be most evident for new
installs and upgrades where you are basically starting from scratch.

I am far from an expert in this area so I wanted to see what others
thought.  Is this a good approach or is there a better one?

-Jon




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?12263.67.45.62.107.1192747805.squirrel>