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