[distcc] distcc sends preprocessing tasks to remote hosts

Bart Friederichs bf at tbwb.nl
Thu Jul 31 12:21:14 GMT 2008

Fergus Henderson wrote:
> On Thu, Jul 31, 2008 at 7:28 AM, Bart Friederichs <bf at tbwb.nl
> <mailto:bf at tbwb.nl>> wrote:
>     I just installed distcc to play around with it,
> Which version?
localhost: distcc 2.18.3 i486-pc-linux-gnu (protocols 1 and 2) (default
port 3632)
  built May  1 2007 10:25:30
test:  distcc 2.18.3 i686-redhat-linux-gnu (protocols 1 and 2) (default
port 3632)
  built Mar  7 2007 20:15:19

>     and evaluate it for our
>     development department. I seem to get everything working ('test' is a
>     testserver):
>     export DISTCC_HOSTS='localhost test'
>     make -j8 CC=distcc CXX=distcc
>     this starts and runs, but doesn't compile correctly. When I look
>     into my
>     distcc monitor, it shows that 'test' is also running preprocess jobs.
> Can you be more specific?  What is it about the output of the distcc
> monitor that makes you think that 'test' is running preprocess jobs?
The fact that it says 'Preprocessing' on the line of the node 'test'.
>     And it cannot process them correctly (I get compiler errors in .h
>     files). Isn't distcc supposed to do the preprocessing on localhost?
> That depends on whether you use "pump" mode or not.
i don't think so. I have no idea even what it is, or how to use it.
> The command above would not use pump mode, and so would do the
> preprocessing on localhost.
That's what I want, so let's assume this is the case.
> I think the error that you get is because the header files on your
> localhost are not compatible with the compiler on your remote host.
There is a compiler version difference between local and remote host:

localhost: gcc version 4.2.3
test: gcc version 4.1.2
> The error message that you get there is coming from the compiler, not
> from the preprocessor, I think.
Then how is it possible that is locates the error in the header file?
> The output of the preprocessor gets shipped to your remote host, and
> then the compiler detects semantic errors in the preprocessed output,
> so it complains.
I understand that. You are right, it doesn't have to mean the remote
host is preprocessing.
>     distcc -g -rdynamic -I/usr/include/mysql -I../include
>     -I/usr/include/libxml2 -I../tbwb -I../tables  -c -o KardexLift.o
>     KardexLift.cpp
> Note that this probably won't work in pump mode in distcc 3.0-rc2: the
> "-I/usr/include/mysql" option means that you'll hit Issue 7
> <http://code.google.com/p/distcc/issues/detail?id=7&can=1
> <http://code.google.com/p/distcc/issues/detail?id=7&can=1>>.  This is
> fixed in the current svn sources.
I don't think I use pump mode, but I will look into it anyway.

-------------- next part --------------
HTML attachment scrubbed and removed

More information about the distcc mailing list