[distcc] Re: Using cc1/cc1plus directly from distccd?

Stuart D. Gathman stuart at bmsi.com
Tue Feb 18 17:55:24 GMT 2003


Stuart D. Gathman wrote:

> Lo and behold, I found distcc which already does everything I want - 
> almost. The problem is that I compile only the cc1 and cc1plus cross 
> compiler programs.  It is way too much trouble to get includes, 
> libraries, etc installed in an alien system for a complete cross 
> compiler.  These are in fact, the only programs needed for distcc (and 
> my own stub).  However, distccd seems to call the gcc front end rather 
> than cc1 or cc1plus.  Is there any way to avoid calling the front end on 
> the volunteer system, and run only the compiler proper with distcc?

It seems that distcc runs both the compiler and the assembler pass on the 
volunteer.  This makes it necessary to port both a compiler and an assembler 
for alien platforms.  In my case, AIX uses its own assembler syntax not 
supported by the GNU assembler (last I checked).  Even with compatible 
assemblers, splitting out the assembly phase provides yet another opportunity 
for parallelization.

So distcc needs to support running the compiler proper and assembler on 
separate volunteers.  When the assembler is not available, it can run on 
localhost.  This should benefit everyone (and allow me to use distcc :-).

I was expecting distcc to use the same compiler passes as on local host by 
default.  For instance, if I am compiling on AIX with a Linux volunteer, the 
AIX system has gcc-2.95.2 installed and would normally look for cc1 and as in
/usr/local/lib/gcc-lib/powerpc-aix/2.95.2/.

When running under distcc, I would expect it to look for cc1 and as in the 
same directory but on the volunteer host by default.  I realize that this 
represents a little bit of a departure from the currently philosophy of using 
the gcc frontend only.  Has this been considered before?




More information about the distcc mailing list