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

Martin Pool mbp at sourcefrog.net
Sun Mar 2 00:02:05 GMT 2003


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

> Faster: no, using -S through gcc does not support -pipe, and must collect
> all preprocessed source before beginning compile, and collect all
> preprocessed assmbler source before running assembler.  Since the
> assembler is relatively fast, the extra collect and copy step might
> even slow things down.

I'm not sure what you mean by "support -pipe".  You can feed gcc
preprocessed source from a fifo.  You can ask gcc to write to stdout
and then in principle pipe that in to an assembler.

I agree that it will probably slow things down.

> Easier: yes, in my case there is no open source assembler with IBM syntax
> for PPC, and I'd rather not have to retarget gcc to GNU syntax on AIX
> (especially since not all AIX PPC features are available through
> gas).

So your AIX machine is relatively slow, and you want to run the
compiler phase remotely but not the assembler?

By retarget do you mean write a new target, or just rebuild gcc?  That
would mean it's impossible or difficult to build an AIX-targetted
cross compiler.

Why not just change your makefile or write a tiny wrapper script to
run something like

  distcc power3-gcc-3.2 $CFLAGS -S foo.c
  as -o foo.o foo.s

That ought to work.

>   - the distcc protocol is extended to support piped file descriptors
>   	like rsh and ssh do.  distcc uses this extension to meaningfully
> 	support the -pipe option.  I would suggest simply using rsh/ssh,
> 	but those don't report the program completion code, and working
> 	around that is ugly.

By piped file descriptors do you mean that it ought to be able to
start transmitting before it knows how long the file is?  That would
be more general, although perhaps a bit more complex.  

I'm not sure that it would be much faster in most cases, since the
network is often the limiting factor, and distcc is meant to be run
with many parallel tasks so pipelining particular jobs is less
important.  I suppose it might help get remote machines working
earlier on.

-- 
Martin


More information about the distcc mailing list