Distributed compiling with icecc
January 01, 2022 09:39PM
Distributed compiling with icecc

Since distcc has not been maintained for a while. I'm testing out another distributed compiler: icecc (icecream). Even though the icecc project is no longer maintained by the original devs, looks like Debian is now the maintainer (Debian KDE Extras Team).

So far I'm pretty impressed. In the future, you might run my new kernel release that was built with icecc!

https://github.com/icecc/icecream

It's in the Debian repo.

apt-get install icecc icecream-sundae

icecream-sundae is the command line icecc scheduler monitor. There is also a GUI-based monitor: icecc-monitor.


========================

Old post about distributed compiling using distcc, kept for posterity

I've spent quite a bit of time figuring out this problem, so I'd just put this out there, hoping people can be warned when they see their build environment with distcc is suddenly borked after upgrading to Debian bullseye. I suspect that this problem is happenning in other distro, too.

Background:

I usually build kernels and u-boots natively in ARM boxes. And to improve the build time, I have a build farm of several ARM boxes, one is a distcc client and the rest are distcc servers. The client node builds the kernel, and parcels out gcc compiling jobs to other distcc nodes. This speeds up the build many times over. While I can build kernels with cross compiler on Debian-Ubuntu based system on powerful laptops, native compiling is always my preferred approach.

Problem:

Upgrade to Debian bullseye has broken this process for me. So to keep it going, I had to move my kernel/u-boot build environment to Linux Mint. Fantastic build time with a quad-core Intel i5 laptop.

Conclusion:

But I detemined to find out why it was broken, and discovered that just by removing distcc from the build process would fix it :) There seems to be some problems with GNU make in recognizing the soft links that point to where the gcc compiler suite is. distcc needs to masquerade the compiler location to point to where its own binaries are, and then actually calls the real compiler binaries to execute the jobs. So I suspect the fault is with GNU make, but not sure yet if any changes in GNU make to bullseye has caused this problem, or it is the distcc setup that needs to be modified.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)



Edited 7 time(s). Last edit at 12/10/2023 02:17AM by bodhi.
Re: Distributed compiler with icecc
December 07, 2023 08:35PM
Reserved.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Author:

Your Email:


Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: