On Fri, Aug 08, 2003 at 01:14:42PM +0200, Jens Mayer wrote:
> * On Fri, Aug 08, 2003 at 12:00:16 +0200, Ronald Landheer-Cieslak wrote:
> 
> > Logically, I'd say you need ccache on the host piloting the build: ccache 
> > caches the results of preprocessing (or rather a hash thereof) and distcc 
> > requires the preprocessing to be done on the host piloting the build (IIRC)
> > and will send preprocessed code to the other compilers. 
> 
> Are you sure about that? I'm not too much into distcc yet (just set it
> up and got scared of it's speed compiling some kernels in my LAN), but
> doing so I recognized that even other hosts have been stated as
> "Preprocessor" in the distcc-monitor.
> 
> Looking at http://fuckup.dyndns.org/gallery/screenshots/distcc_001 for
> example shows "pandora" with the status flag "Preprocessor", while the
> host piloting the build is "localhost" in this case.
Hmm.. you had me doubting there for a minute :)

I'm still pretty sure that ccache should be run only on the driving client, 
and should be driving distcc as compiler.. let's see..

>From http://distcc.samba.org/man/distcc_1.html#TOC_9:
<snip>
USING DISTCC WITH CCACHE
ccache is a program that speeds software builds by caching the results of 
compilations. ccache is normally called before distcc, so that results are 
retrieved from a normal cache.

The simplest way to use ccache with distcc is to create masquerade directories 
for both of them, and list the ccache directory on the path before distcc. For 
example:

      PATH=/usr/lib/ccache/bin:/usr/lib/distcc/bin:/usr/bin:/bin

Alternatively you can set CCACHE_PREFIX=distcc and use CC="ccache gcc" .

As of version 2.2, ccache does not cache compilation from preprocessed source 
and so will never get a cache hit if it is run from distccd or distcc. It must 
be run only on the client side and before distcc to be any use.
</snip>

No bugs in my thinking so far..

Now as for the preprocessing being done elsewhere - it doesn't actually matter
much where it is done, as long as it is piloted by ccache and ccache can see
the results of preprocessing. 

This may be a slight bug in my previous thinking, but the results are the 
same :)

I.e.: ccache calls distcc which calls the compilers of several hosts to do the
bidding of ccache - whether it be preprocessing or compiling.. As long as
ccache is in control of the process, it runs only on the piloting host (i.e.
localhost).

Yup - pretty sure..

HTH

rlc



--
[EMAIL PROTECTED] mailing list

Reply via email to