[distcc] invalid compiler path error

Fergus Henderson fergus at google.com
Sun Oct 26 19:28:28 GMT 2008

On Sun, Oct 26, 2008 at 3:54 AM, nac <nac at measure-zero.jp> wrote:

> I have made distcc and cross compilation between AMD
> Geode(GentooLinux, i586-pc-linux-gnu) and
> Intel Mac(Leopard). And I've met invalid compiler path error.
> using software version:
> Linux(
> gcc 4.1.2
> distcc 2.18.3
> MacOS(
> gcc 4.1.2 (for cross compilation)
> distcc 2.18.5 (Apple made)
> I made sure that cross compilation works with small hello.c
> program. And the path of the compiler for cross compilation
> is /opt/cross-linux/bin.
> I started distccd with following option;
> $ echo $PATH
> /opt/cross-linux/bin:/opt/local/bin:/opt/local/sbin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
> $ export DISTCCD_PATH=$PATH ; distccd --daemon --pid-file ~/distcc.pid
> --verbose
> so then, linux side(small CPU), I run distcc client and got error message:
> $ distcc i586-pc-linux-gnu-gcc -o hello -c hello.c
> distcc[18841] (dcc_r_token_int) ERROR: protocol derailment: expected token
> "DONE"
> distcc[18841] (dcc_explain_mismatch) ERROR: error context:
> "INDR00000002DONE00000001"
> distcc[18841] Warning: failed to distribute hello.c to,
> running locally instead

This looks like an incompatibility between the distcc "2.18.5 (Apple made)"
server and the the distcc 2.18.3 client.
The server is sending back an "INDR" token which the distcc 2.18.3 client
does not understand.
Presumably Apple made some incompatible extensions to the protocol which
makes "2.18.5 (Apple made)" servers incompatible with the protocol used by
the 2.18.3 client.

You'll need to use compatible versions of distcc on the client and the
I recommend using distcc 3.0 on both client and server.

distccd[1525] (dcc_is_allowed_compiler) allowed compiler path:
> /opt/cross-linux/bin/i586-pc-linux-gnu-gcc
> distccd[1525] ERROR: Couldn't find matching compiler for
> '/opt/cross-linux/bin/i586-pc-linux-gnu-gcc'
> distccd[1525] (dcc_spawn_child) ERROR: attempt to use unknown compiler
> aborted: /opt/cross-linux/bin/i586-pc-linux-gnu-gcc

distccd[1525] (dcc_x_token_int) send INDR00000002

Those error message also seems relevant... but it's probably not worth
tracking down the details of how to use 2.18.5, just install 3.0 instead.

For 3.0, make sure that the cross-compiler that you want to use is listed in
the "commands.allow.sh" file (e.g. /etc/distcc/commands.allow.sh).
Fergus Henderson <fergus at google.com>
-------------- next part --------------
HTML attachment scrubbed and removed

More information about the distcc mailing list