distcc/distcc logo

distcc/distcc

Free

distributed builds for C, C++ and Objective C

FreeFree tier
Type
Open Source

About distcc/distcc

distcc is a free, open-source distributed build system for C, C++, and Objective-C code. It accelerates compilation by distributing the work across multiple machines on a network, often achieving speeds two or more times faster than a local compile. Unlike other distributed build systems, distcc does not require a shared filesystem, synchronized clocks, or identical libraries and headers on all machines—it only needs each volunteer machine to run the distccd daemon and have a compatible compiler installed. The pump mode (introduced in version 3.0) further improves performance by offloading preprocessing to servers, as long as system headers match. distcc is a front-end to GCC (or another compiler) and is designed to work with GNU Make's parallel build option (-j). It has been proven stable in environments with hundreds of servers and is capable of building large projects like the Linux kernel, KDE, GNOME, Samba, and Ethereal. The system scales nearly linearly for small numbers of machines, e.g., three machines are 2.6 times faster than one.

Key Features

Distributes compilation of C, C++, and Objective-C code across multiple machines
No shared filesystem required, volunteers only need the distccd daemon and a compiler
Pump mode distributes preprocessing for additional speedup
Compatible with machines running different operating systems (binary formats or cross-compilers)
Works as a front-end to GCC or other compilers
Designed for use with GNU Make's parallel build (-j) for maximum performance
Proven to scale to hundreds of servers with near-linear scalability for small clusters

Pros & Cons

Pros
  • Significantly faster compilation, often 2x or more compared to local builds
  • Simple installation and usage: just install distcc on client and distccd on servers
  • No need for shared filesystem, synchronized clocks, or identical system libraries/headers
  • Pump mode distributes preprocessing, further reducing client CPU load
  • Scalable – supports hundreds of servers and dozens of simultaneous compiles
  • Compatible with standard compiler flags and GNU Make workflows
Cons
  • Requires network access to volunteer machines and reliable connectivity
  • Compatibility issues if binary formats or cross-compilers do not match between machines
  • Pump mode requires identical system headers on client and server (application-specific headers are transmitted)
  • Not a standalone compiler; needs a compiler like GCC installed on all participating machines

Best For

Speeding up compilation of large C/C++ projects such as the Linux kernel, KDE, GNOME, Samba, and EtherealReducing build times in continuous integration (CI) environments by leveraging idle build machinesCross-compilation environments where machines have compatible binary formatsEnvironments with heterogeneous operating systems where a shared filesystem is impractical

FAQ

What is distcc?
distcc is a free distributed build system for C, C++, and Objective-C that speeds up compilation by distributing the work across multiple machines on a network.
How does distcc pump mode work?
Pump mode (added in distcc 3.0) distributes not only compilation but also preprocessing to the server. This reduces client CPU usage and can provide additional speed gains, provided the client and server have the same system headers.
Does distcc require a shared filesystem?
No, distcc does not require a shared filesystem, synchronized clocks, or identical libraries and header files on all machines. It only needs the distccd daemon running on volunteer machines with a compatible compiler.
What compilers does distcc support?
distcc is designed primarily as a front-end for the GNU C/C++ compiler (gcc) but can work with other compilers as long as they are compatible with the distcc interface.