On Wed, Oct 21, 2009 at 4:20 AM, Eliakim Cohen <span dir="ltr">&lt;<a href="mailto:Eliakim@amdocs.com">Eliakim@amdocs.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">










<div link="blue" vlink="purple" lang="EN-US">

<div>

<p class="MsoNormal">Hi,</p>

<p class="MsoNormal">Our build is very long (12 hours) for verey platform (Sun
Solaris, HP UX) etc.</p>

<p class="MsoNormal">We would like to implement DISTCC to speed up the build.</p>

<p class="MsoNormal">We build number of platforms every night (Sun Solaris, HP
UX, Linux Etc).</p>

<p class="MsoNormal"> </p>

<p class="MsoNormal">Since DISTCC can utilize an agent platform to compile for
the master platform, I was wondering whether there is a way to reuse the  DISTCC/gcc
intermediate compile output when compiling for the second platform. E.g, if I
used DISTCC/gcc to compile for HP UX, can I use whatever was created by
DISTCC/gcc for HP UX in order to start the Sun Solaris compilation from a
better point than from compiling from scratch for the Sun Solaris?</p></div></div></blockquote></div>Generally it is NOT possible to reuse even the preprocessor output, because conditional compilation (#if) and includes of system header files mean that it will in general be different on different platforms.<br>

<br>You _can_ however reuse the distcc pump include server cache... just arrange things so that you have a single command that will run (in parallel) all the different compilations for all the different platforms, e.g. using a Makefile with a target all_platforms, and then run that single command under &quot;pump&quot;, e.g. &quot;pump make all_platforms&quot;.  This avoids the need to scan the includes of each source file more than once.  The main restriction is that your build process should not overwrite any source files during the build, so if you need to run &quot;configure&quot; to generate a config.h which is different for each target platform, then you should do so in a different directory for each platform.<br clear="all">

<br>-- <br>Fergus Henderson &lt;<a href="mailto:fergus@google.com">fergus@google.com</a>&gt;<br>