I have tried to start distcc in pump mode, but due to unknown reason it is not able to distributed the pre-processing task. So I have uninstalled every thing related to distcc and want to redo everything from beginning to get distcc in pump mode up and running. So tell me: what are the packages need to be installed? what are the environment variables need to be set in order to start the distcc in pump mode?
2 Answers
OS?
I got it up and running on Debian/jessie64 and it was hard work :(
PUMP didn't work with the provided packages (python-version mismatch or so) so I decided to compile it from source.
install dependencies:
sudo apt-get install gcc make python python-dev libiberty-dev
tried a few timesand I got erros about some unused parameters..
./autogen.sh
./configure
edit Makefile and comment WERROR_CFLAGS = -Werror
make
sudo make install
on each client (where you want to start compilation from) edit ~/.distcc/hosts
localhost,cpp,lzo anotherhost,cpp,lzo
cpp enables pump mode, which requires lzo compression
on every Server (compile slave) -- machines can be both!
distccd --deamon --listen IPOFMACHINE --allow IP_OR_NET
i had problems when using the Debian packages when listen did not specify the IP address of the machine...
My results with using a DualCore Slave and a DualCore Master: make -j8 CC=distcc 16 seconds pump make -j8 CC=distcc 14 seconds
without distcc 20 seconds So not that much...
But it sums up if you have a full-time dev-team!
e.g. XsecSaved/compile * Ycompiles a day * 20days/month
even for small values: X=2 and Y=30 => 20 minutes/developer/month, enough time to invest a little bit in distcc or ccache.
if you are trying to use the supplied packages, the configuration for the service can be found in /etc/default/distcc

- 4,399
- 4
- 22
- 27
I'm using mac as master and debian as salve. distcc version distcc-3.2rc1, and make sure you have the same version on both master and salve. Use these argument to build distcc
./autogen.sh
./configure --disable-Werror
make -s 2>Logs
make install
Plain mode
is successful without questions. Except I mirrored the absolute path of mine source code in order to distribute compilation, which is kind of a dirty works.
Pump mode
may be issue with include_server. Some of the option flag will cause include server failed to analyze. In that situation you won't be able to pump any header file to the include server, therefore, salves cannot recursively include them. You have to add them some of the option flags in include_server/parse_commands.py in order to set up include server on pump.
Probably showing some of your log in /var/log/daemon.log or /var/log/distccd.log will be better to help.
if you did not have log file on these directories, edit your /etc/init.d/distcc
DAEMON_ARGS="--pid-file=/var/run/$NAME.pid --log-level=info --log-file=/var/log/$NAME.log -- verbose --daemon"

- 65
- 7