Hi Stroller, my email was probably as complex as I was confused, but you helped a lot...

Your email is very long, so I'm not sure if I've taken it all in, but what I'd suggest is a shared /usr/portage directory (easily done by NFS) and distcc.

This creates a dependency on the host that contains the portage tree. It also remove some flexibility. For example, taking my laptop away from my 'portage pc' would make it impossible for me to modify my current installs while away. There are other consideration and the use of a sync'ed portage tree on each pc vs using nfs is a debate that I won't go into now and this part is not much of an importance in my problem... compilation is!...

distcc is, IMO, a bit more elegant than (for instance) trying to manually emerge binary packages for machine A on PC B. You can tell it to share the work or just unload it to the most powerful machine. There may be concerns about using a binary package if USE flags are different between the two machines, but distcc ensures that the package is built using those defined in make.conf of the machine on which you're running emerge.

Yes! I was actually trying distcc today for the first time and got it working from the perspective of my fastest computer, I got some trouble though (see below). What you mentioned about running the `emerge -uDN world` on each individual machines + sharing built packages is absolutely awesome. Best of all worlds if i could say!

However, when using distcc, I first made a trial with a small package 'xmahjongg' and got a nice x4 speedup on the overall emerge. I wanted to try with a larger package, 'povray' and stumbled on a linker issue, the issue is described below and this is the only obstacle on my way now. As I fear doing a `emerge -e system && emerge -e world` would never complete using distcc...

Doing: `time emerge povray` without distcc yields a functionnal package, while when distcc was enabled, I would get lots of undefined references to some __pthreads functions. But I just tried and it seems to work fine, not reproducible, so I'll drop my distcc issue and go on with the -e recompilation.

Unless you have some more tips on using distcc on such a large compile?

Thanks again,
  Simon

Reply via email to