Table of Contents
Distcc
Overview
Distcc is used to compile packages faster on slow machines, such as Santo or the virtual machines, by doing some of the grunt work on physical hosts.
Build Hosts
The build hosts use the following architectures:
{| class=“wikitable” cellspacing=“10”
! Name ! Value
The following cross-compilation environments are also available:
- i586-pc-linux-gnu
- i686-pc-linux-gnu
Configuring a build host
- Configure the distcc daemon to accept connections from local machines only
Configuring a new cross-compilation environment
Run the following command on each build host, where <tt>i586</tt> is the name of the new environment.
<source lang="bash"> crossdev -t i586 </source>
This command will build the necessary tools for cross-compilation, and will take a considerable time to run. To serve as a progress check, the following stages are run:
- binutils
- linux-headers-quick
- glibc-headers
- gcc-stage1
- linux-headers
- glibc
- gcc-stage2
Configuring a build client
If the client has the same CHOST as all the build hosts, then setting up distcc is straightforward:
- Configure distcc to use each of the available build hosts with the following command:
- Configure portage to use distcc for compilations by adding setting the following option:
/etc/make.conf|<source lang="bash"> FEATURES="distcc" </source>
Configuring a build client with a different CHOST to the build hosts
As explained in the Gentoo documentation, set up a wrapper script to have distcc tell the build host which environment to use for compilation.
- Create the wrapper script in <tt>/usr/lib/distcc/bin/</tt>, with the name of the CHOST to be used, for example, <tt>i686-pc-linux-gnu-wrapper</tt>, containing the following:
- Make the wrapper script executable, and replace the unqualified tool symlinks with symlinks to the new wrapper: