[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