cvs commit: hints distributed_compiling.txt

tushar at tushar at
Fri Apr 16 17:12:39 PDT 2004

tushar      04/04/16 18:12:39

  Added:       .        distributed_compiling.txt
  Added: distributed_computing
  Revision  Changes    Path
  1.1                  hints/distributed_compiling.txt
  Index: distributed_compiling.txt
  AUTHOR: Cedric de Wijs<at>softhome<dot>net
  DATE: 2004-04-09
  LICENSE: GNU Public Licence
  SYNOPSIS: How to install distcc --a free distributed C/C++ compiler system
  TODO: put some usefull words here
  The distcc package, available from: (317,8kB)
  This hint expect you to have two working lfs systems with the same version of gcc, binutils and glibc, and functional networking
  1 Introduction
  2 Required Files
  3 Installation server
  4 Installation client
  5 Usage
  6 Pitfalls
  7 Recommended reading
  1 Introduction
  Compiling sourcecode can take a long time. This hint describes how to install distcc, a tool that can be used to distribute the compiling across multiple machines in a network. 
  The machine you sit behind and issue the compile from is the client. 
  The machines who are doing the work are the servers.
  Every machine can contain both a server and a client
  This text is based upon the documentation of distcc, written by Martin Pool
  Estimated build time:           0.20 SBU
  Estimated required disk space:  5.4 MB
  The distcc package, available from: (317,8kB)
  3. Installation
  To install the package run the following:
  ./configure --sysconfdir=/etc &&
  make &&
  make install
  3. Configuration server
  To make distcc run as a server create a new user. Make sure /tmp is writable by that user:
  useradd distcc
  To start the daemon use the following command:
  nice -n 19 distccd --daemon
  To make distcc start at boottime use this script:
  cat > /etc/rc.d/init.d/distcc << "EOF"
  source /etc/sysconfig/rc
  source $rc_functions
  case "$1" in
                  echo "Starting distributed compile daemon"
                  nice -n 19 /usr/local/bin/distccd --daemon
                  echo "Stopping distributed compile daemon"
                  killproc /usr/local/bin/distccd
                  echo "Usage: $0 {start|stop|reload|restart|status}"
                  exit 1
  chmod 700 /etc/rc.d/init.d/distcc
  And make some symlinks to it:
  cd /etc/rc.d/init.d &&
  ln -sf ../init.d/distcc ../rc0.d/K00distcc &&
  ln -sf ../init.d/distcc ../rc2.d/S99distcc &&
  ln -sf ../init.d/distcc ../rc3.d/S99distcc &&
  ln -sf ../init.d/distcc ../rc5.d/S99distcc &&
  ln -sf ../init.d/distcc ../rc6.d/K00distcc
  4. Configuration client
  To make distcc run as a client run the following:
  ./configure --sysconfdir=/etc &&
  make &&
  make install
  To let distcc know who the servers are edit the following file:
  mkdir ~/.distcc &&
  cat > /root/.distcc/hosts << "EOF"
  localhost       #your own machine   #the first server,   #and the second server
  To make sure distcc is found before your real compiler, create some symlinks:
  ln -s /usr/local/bin/distcc /bin/c++ &&
  ln -s /usr/local/bin/distcc /bin/cc &&
  ln -s /usr/local/bin/distcc /bin/g++ &&
  ln -s /usr/local/bin/distcc /bin/gcc
  5. Usage
  Instead of running the following command:
  ./configure && make && make install
  Use these commands:
  ./configure && make -j 6 && make install
  Every server can handle three clients per CPU unless otherwise configured, so the above comand can fill two servers.
  6. Pitfalls
  Don't use version 1.12. This version contains a bug causing distccd not to run as user distcc. Older and newer versions should work fine
  7. Recommended reading
  The documentation included with distcc
  The following hints:
  The programmer of this utility:
  Martin Pool <mbp at>
  The author of parallelcompiling.txt  
  Daniel Baumann <daniel.baumann at> 
  2004-04-09 Initial release

More information about the hints mailing list