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:

Configuring a build host

/etc/conf.d/distccd|<source lang="text"> </source>

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:

Configuring a build client

If the client has the same CHOST as all the build hosts, then setting up distcc is straightforward:

<source lang="bash"> distcc-config --set-hosts "build0.sihnon.net build1.sihnon.net build2.sihnon.net" </source>

/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.

/usr/lib/distcc/bin/i686-pc-linux-gnu-wrapper|<source lang="bash"> #!/bin/bash exec /usr/lib/distcc/bin/sparc-unknown-linux-gnu-g${0:$[[-2]]} "$@" </source>

<source lang="bash"> cd /usr/lib/distcc/bin chmod a+x i686-pc-linux-gnu-wrapper rm cc gcc c++ g++ ln -s i686-pc-linux-gnu-wrapper cc ln -s i686-pc-linux-gnu-wrapper gcc ln -s i686-pc-linux-gnu-wrapper c++ ln -s i686-pc-linux-gnu-wrapper g++ </source>

See Also