Introduction
distcc can distribute compilations across a network, greatly reducing compile times. Even if you only have one other computer available, it can already make a noticeable difference.
Usage instructions
The following instructions assume your main development machine is running Haiku and the helper machines run Linux.
Preparing helper machines
- Install distcc, using the package manager or from source
- Check out the build tools
svn co http://svn.haiku-os.org/haiku/buildtools/trunk buildtools
- Check out partial Haiku tree
svn co --depth=immediates http://svn.haiku-os.org/haiku/haiku/trunk haiku svn update --set-depth infinity build headers/config headers/os headers/posix
- Build the cross-compilers
mkdir generated.x86gcc2 mkdir generated.x86gcc4 cd generated.x86gcc2 ../configure --use-32bit --alternative-gcc-output-dir ../generated.x86gcc4 --build-cross-tools ../../buildtools/ cd ../generated.x86gcc4 ../configure --use-32bit --alternative-gcc-output-dir ../generated.x86gcc2 --build-cross-tools-gcc4 x86 ../../buildtools/ cd ..
- Make the cross-compilers available under a verbose name. Run
gcc -v
to find out the exact version. Verify that they are the same as on the Haiku machine.mkdir bin && cd bin ln -s ../generated.x86gcc2/cross-tools/i586-pc-haiku/bin/gcc i586-pc-haiku-gcc-2.95.3-haiku-100818 ln -s ../generated.x86gcc4/cross-tools/i586-pc-haiku/bin/gcc i586-pc-haiku-gcc-4.4.4-haiku-101111 cd ..
- Start the distcc daemon
PATH=$PWD/bin:$PATH distccd --allow <IP of Haiku machine>
Preparing the Haiku machine
- Make GCC 2 and 4 available under the verbose names.
ln -s /boot/develop/abi/x86/gcc2/tools/current/bin/gcc /boot/common/bin/i586-pc-haiku-gcc-2.95.3-haiku-100818 ln -s /boot/develop/abi/x86/gcc4/tools/current/bin/gcc /boot/common/bin/i586-pc-haiku-gcc-4.4.4-haiku-101111
- Adjust
generated.x86gcc2/build/BuildConfig
HAIKU_CC ?= distcc i586-pc-haiku-gcc-2.95.3-haiku-100818 ;
- Adjust
generated.x86gcc4/build/BuildConfig
HAIKU_CC ?= distcc i586-pc-haiku-gcc-4.4.4-haiku-101111 ;
- Add hostname or IP addresses of the helpers to
/boot/common/etc/distcc/hosts
Optionally addlocalhost
. If this machine is slower than the helpers, it might slow down the build. You can easily find out by means of a quick benchmark. Even if you don't addlocalhost
, it will still be busy distributing running jam, distributing jobs and linking.
Now you can run jam
as usual, but you should pass twice the total number of cores in the distcc network to the -j
option. During a build, you can see what is happening by running
distccmon-text 1
If you want to use distcc in combination with with colorgcc, you can mask simply the distcc executable
cd /boot/common/bin mv distcc distcc_real wget http://dev.haiku-os.org/raw-attachment/wiki/DevelopmentTools/DistCC/distcc chmod +x distcc
References
Last modified
14 years ago
Last modified on May 22, 2011, 7:24:01 PM
Attachments (1)
-
distcc
(6.4 KB
) - added by 14 years ago.
colorgcc-distcc
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.