rebuilt 1 .cxx, linked 184 libraries

Bjoern Michaelsen bjoern.michaelsen at canonical.com
Thu Apr 4 13:28:51 PDT 2013


Hi, 

On Thu, Apr 04, 2013 at 10:04:24PM +0200, Michael Stahl wrote:
> but it has the significant problem that you can remove implementations
> of the public API of library a without noticing it (which you would when
> library b fails to link), thus making incremental builds unsound.

We are not supporting that scenario entirely anyways: If you are evil, you are
removing a object from a library in a makefile and leaving the headers there
still, which currently causes no rebuild of the lib and thus lets you commit
broken state. That could be worked around by depending on the Makefile defining
the lib (Library_foo.mk) from e.g. the 
$(call gb_Library_get_headers_target,foo), but we considered that too
conservative for the average developer build -- whenever you touch that
makefile adding or removing an object, everything would be rebuild.

Note the chromium guys dump the exported symbols and only rebuild deps if that
changed. We could do the same, but I dont think the added complexity and
possible loss of robustness of doing this on all platforms is justified by the
gain.

Best,

Bjoern


More information about the LibreOffice mailing list