[Libreoffice] a faster gnumake ? ...

Bjoern Michaelsen bjoern.michaelsen at canonical.com
Tue Apr 5 00:33:37 PDT 2011


Hi Norbert,

On Mon, 4 Apr 2011 22:37:42 -0500
Norbert Thiebaud <nthiebaud at gmail.com>
wrote:

> Sure, but I was not comparing the extra cost to the cost of a compile,
> but to the intended savings.
> on one hand, every time I run make I pay the cost of these redundant
> stats() on the other hand every time make has to compile something I
> have to pay the cost of that extra sort
> (including the cost of the fork, load program, parse it - if awk or
> other interpreted. And these are just fix cost, on top of the actual
> sort)

I did some rough measurements and they seem to make no noticeable
difference on a full build. They will however make a noticeable
different on a partial rebuild because it greatly reduces parsing the
huge dep files.

> Note that the root cause of this evil has a lot to do with our
> somewhat anarchic include strategy...
> maybe we should re-introduce include guards ;->

Yes, that could also be helped with by reducing unneeded includes as
follows:

1) Select one header.
2) Remove the includes of that header from all header files.
3) "Compile" all headers with make -k.
4) Check which headers still generated an object and do not have the
   header in the dep file: Those did not need the include, and did not
   get it by a transitive include. Remove the include from the header
   as it is superfluous.
5) Select next header and repeat from 2)
6) Repeat until no include can be removed.
7) Do the whole thing again with the cxx themselves.

This might churn away a lot of CPU time, but I can be done completely
automated IMHO (modulo headers that create modifing defines only,
breaking the product but not the build).

Best,

Bjoern

-- 
https://launchpad.net/~bjoern-michaelsen
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20110405/79e63b5a/attachment.pgp>


More information about the LibreOffice mailing list