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
