bugmake - Bugs: bug #48483, Compiler diagnostics cache


bug #48483: Compiler diagnostics cache

Submitted by:  None
Submitted on:  Tue 12 Jul 2016 01:58:50 PM UTC  
Severity:  3 - Normal Item Group:  Enhancement
Status:  None Privacy:  Public
Assigned to:  None Open/Closed:  Open
Component Version:  None Operating System:  Any
Fixed Release:  None Triage Status:  None

Add a New Comment(Rich Markup)

You are not logged in

Please log in, so followups can be emailed to you.


Tue 18 Jul 2017 07:20:10 AM UTC, comment #1:

Please correct me if I'm wrong, but it sounds to me that "ccache" is exactly what you need - you can already get what you want without any changes to "make":

With ccache, you can always do "make clean; make" because although the compiler will be called on all files of the project, the files that haven't changed (and the compilation options haven't changed) will NOT be compiled again - rather the exact same compilation results and/or compiler warning messages will be recalled from the cache.

On many Linux distributions, merely installing the "ccache" package enables it (it makes the compiler a symbolic link to the ccache exectable), and you can enjoy speedy "make clean; make" afterwards.

Nadav Har'El <nyh>
Tue 12 Jul 2016 01:58:50 PM UTC, original submission:

I'm doing automated builds from a continuous integration system that maintains a database of compiler warnings output during the build.

Currently, I clean the build tree before each build and rebuild the entire project. I would now like to switch to incremental builds, as the dependency tracking inside the project generally works and this would save a considerable amount of time.

This would however break the collection of warning messages because the compiler would not be re-invoked when an object is up-to-date. Because a change could also remove an object from the build, I cannot simply assume that diagnostics for removed invocations to be unchanged (also, it would be difficult to match the output and the command in a parallel build).

Therefore, it would be nice if there was a flag that would tell make to collect stdout and stderr from a compiler invocation, and replay them when a target is found to be up-to-date. If a target is up-to-date but no cache entry exists a warning should be output.

In addition, this could be used for performance data as well so it becomes possible to track compilation time for the full project even across incremental builds.



(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by nyh (Posted a comment)
  • -email is unavailable- added by geier

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.




    Follows 1 latest change.

    Date Changed by Updated Field Previous Value => Replaced by
    2016-07-13 geier Carbon-Copy- => Added -email is unavailable-

    Back to the top

    Powered by Savane 3.4