[distcc] New GCC option for improving distcc build performance

Ollie Wild aaw at google.com
Mon Jul 30 19:08:34 GMT 2007


I've just added a new GCC option (cf.
http://gcc.gnu.org/viewcvs?view=rev&revision=127066) which improves
distcc build performance by implementing a directives-only
preprocessing mode.  Starting with GCC 4.3, executing

        distcc /usr/bin/gcc -fdirectives-only [OPTIONS]

will cause the local preprocessor to execute preprocessing directives
but defer macro expansion and other preprocessing operations to the
remote build servers.  This results in about a 30% decrease in overall
compilation time.

A more detailed description can be found at
http://gcc.gnu.org/ml/gcc-patches/2007-02/msg01098.html.

There is one caveat.  This patch does not work with Tim Janik's #line
pathnames patch (http://www.gtk.org/~timj/patches/), as the processor
it implements cannot deal with the partially preprocessed source
generated by the -fdirectives-only option.  The symptom is a bunch of
warnings like:

        line-map.c: file "some/file/name.h" left but not entered

GCC versions newer than 2.95 no longer require Tim's patch.

Feel free to try out the latest GCC trunk and send any feedback to me.
 I am not on the distcc mailing list, so please cc me on any replies.

Ollie


More information about the distcc mailing list