[distcc] improved gcc -MD handling

George Garvey tmwg-disccc at inxservices.com
Thu Nov 21 23:10:01 GMT 2002


   Unfortunately, I spoke too soon. There is still no way to get .d and
.o generated by one compiler invocation. -M -MF does no compilation. So
with -M -MF -MT one could get a proper .d file, one will only have an
empty .o file.
   Back to separate passes to get both files, unfortunately.

On Thu, Nov 21, 2002 at 02:58:11PM -0800, George Garvey wrote:
> On Thu, Nov 21, 2002 at 12:10:35PM -0800, Martin Pool wrote:
> > I put some changes into distcc CVS last night that improve gcc -MD
> > handling.  These should make the most common cases work properly.
> 
>    With gcc 3.2.1, -MD works badly, as before: some .d files are put in
> the output directory with the .o files, some are not. I presume they are
> in the temporary directory still, as before, but didn't look.
>    However, -M -MF does work with just a slight drop in efficiency, so
> I'll very happily take it until -MD is worked out: even if that's never.
> The drop is that there is no automatic target for the .d file during
> compilation that I know of in make. So sed or something needs to be used
> to create the name of the -MF .d file from the name of the object file
> in order to get both .d and .o generation in one invocation of the
> compiler. (Our output files are not put in the current working
> directory.)
>    But I don't need to invoke the compiler twice now. Our makefiles have
> a problem, in that building the .d files separately caused many of them
> to be made over and over again, even when nothing obvious had changed,
> and the .o file would never be rebuilt. I didn't track down what caused
> that, because make's debug output is such a pain. It only happened with
> -j#, never with a non-concurrent compile. Many of the .cc files are
> generated by a program, that is also built in the same makefiles, so I
> guess there must be a circular dependency somewhere when the .d files
> were thrown into the mix with concurrency, too.
>    I remember when GCC decided to change the meaning of -MD. I like the
> new meaning, but it sure makes compatability with many versions
> difficult. I can sympathize with the difficulty of the problem.
>    FYI, our makefiles compile with CC set to 'distcc gcc', if that
> matters.
>    I'm very pleased to have a way to do this now.
> _______________________________________________
> distcc mailing list
> distcc at lists.samba.org
> http://lists.samba.org/cgi-bin/mailman/listinfo/distcc
~~~~~~

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ----------     Custom Programming                           (323) 255-7949
|   inX    | EDI Translation/Mapping/VAN Services
| Services |      EDI Consulting
 ----------       Network Design                       tmwg at inxservices.com
             Distributed Web Applications       http://www.inxservices.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                   Improving Your Business Is Our Business!



More information about the distcc mailing list