[distcc] distccd paths

Martin Pool mbp at samba.org
Tue Oct 21 00:24:28 GMT 2003


On 20 Oct 2003, jason.davis at acterna.com wrote:
> 
> I have gotten it to work successfully using the "shell script" method.
> Basically what I do is add a farm directory to the beginning of the path.
> In this directory I have some shell scripts named dist-gcc, dist-g++,
> dist-arm-linux-gcc, etc.  When the user wants distributed build enabled, I
> cp those scripts to gcc,g++,arm-linux-gcc, etc.  This seems to work well.

> The only issue I have seen when passing the absolute path to distcc is that
> if that path doesn't exist on a machine on your farm, your compile will
> fail (it doesn't attempt to do it locally).  If I just disable the farm
> entirely on the remote machine, it falls back correctly.  Is there a reason
> for this?

distcc distinguishes two types of failure:

 A - distcc failed
 B - compile failed

A is mostly networking problems like failing to connect to the remote
host, access denied, or network IO errors.  In these cases it falls
back to running locally and marks that host as bad.

B is things that in principle could have happened locally, such as
syntax errors in the program or compiler usage errors.  In these cases
it just fails because running it locally probably wouldn't help.

In general giving the wrong compiler name is interpreted as a type B
error, but it could happen for either reason.  It might be that your
makefile is running the wrong compiler, or it might be that the
compiler is missing from the remote host.

On reflection it probably should be treated as type A, and cause the
job to be re-run elsewhere.  This may be done in a future version of
distcc.

I don't think you should rely on this, because you'll still get
warnings every so often and sending the whole job only to discover it
can't run is a bit ugly.  It's probably better to just set an
appropriate host list, or NFS-mount a directory containing all the
compilers.

-- 
Martin 



More information about the distcc mailing list