automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Any way to get rid of -MP parameter to gcc for dependency creation?


From: Ralf Wildenhues
Subject: Re: Any way to get rid of -MP parameter to gcc for dependency creation?
Date: Tue, 4 Jan 2011 07:56:35 +0100
User-agent: Mutt/1.5.20 (2010-08-04)

Hello Xan,

thanks for the report.

* Xan Lopez wrote on Tue, Jan 04, 2011 at 02:57:07AM CET:
> I did a profile with sysprof but I really didn't know enough of GNU
> make internals to figure out what was going on in detail; I can send
> the output to the list if you think it could be useful. At least for
> now it seems that just removing the vast amounts of duplicated info in
> the final makefile results in huge wins, so I'm optimistic that I can
> improve things without directly hacking on GNU make.

Before changing Automake or GNU make, can you first please post which
GNU make version you are using on what system and file system exactly,
and if you are not using the very latest GNU make, retry with that?

Then, how many stub targets get added due to -MP in your project?

FWIW, on big systems I typically just put the build tree on a ramdisk
(/dev/shm or so) which has a nice positive effect on build times.  I'm
not sure whether for the -MP overhead you would need to put the source
tree there too.  Can you try, even if only for the sake of analysis
rather than making this a habit?  Thanks.

Elsewhere, you wrote:
> [1]: I found this thread,
> http://lists.gnu.org/archive/html/automake/2003-12/msg00103.html, from
> years ago, but I'm not sure there was any definitive conclusion, and
> gcj nowadays seems different than how the mail implies it was back
> then.

Yes, this particular issue was addressed, quoting automake-1.9/NEWS:

* Makefile.in bloat reduction:

  - Inference rules are used to compile sources in subdirectories when
    the `subdir-objects' option is used and no per-target flags are
    used.  This should reduce the size of some projects a lot, because
    Automake used to output an explicit rule for each such object in
    the past.

  - Automake no longer outputs three rules (.o, .obj, .lo) for each
    object that must be built with explicit rules.  It just outputs
    the rules required to build the kind of object considered: either
    the two .o and .obj rules for usual objects, or the .lo rule for
    libtool objects.

Thanks,
Ralf



reply via email to

[Prev in Thread] Current Thread [Next in Thread]