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

Martin Pool mbp at samba.org
Wed Feb 26 02:47:03 GMT 2003


On 18 Feb 2003, "Stuart D. Gathman" <stuart at bmsi.com> wrote:

> 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).  

I don't think I understand the case you're describing here.  If you
use gcc as the compiler then you can only use gas for the assembler,
and probably vice-versa for the IBM compiler.

It doesn't generally seem to work well to mix toolchains.  

A .i file produced by gnu cpp may only work on gcc.  For example the
headers may have __GNUC__ conditionals.

I think most gccs can only emit GNU assembly, which is often
incompatible with other as's for the same platform.

> Even with compatible assemblers, splitting out the assembly phase
> provides yet another opportunity for parallelization.

Last time I measured, assembly was very cheap compared to compilation,
so it would likely not be worthwhile in most cases.

> 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?

I think you're proposing that distcc should, say, look at the output
of "gcc -v" to work out what compilers to run remotely?  No, it
doesn't.

You need to use a command line

  distcc powerpc-aix-gcc-2.95.2

This ought to find the right libraries even if it's installed in a
different path on the remote machine.   

I don't want distcc to know about the gory internals of gcc unless
there's a compelling reason.

-- 
Martin 


More information about the distcc mailing list