gbuild, deps and ccache

Lubos Lunak l.lunak at suse.cz
Fri Nov 9 09:36:20 PST 2012


On Friday 09 of November 2012, Michael Stahl wrote:
> On 09/11/12 14:04, Bjoern Michaelsen wrote:
> > Hi,
> >
> > so the way gbuild generates dependencies prevents ccache to be confident
> > about using its cache most of the time. To see this: do a/ build b/ make
> > clean c/build from an empty ccache dir once with and without
> > dep-tracking.
> >
> > The solution IMHO is to make gbuild run g++ twice, if building with deps
> > and ccache:
> >   g++ -E $(DEP_GEN_OPTIONS) $(OTHER) foo.cxx &&
> >   ccache g++ $(OTHER) foo.cxx
> >
> > The first will then only generate the deps without compiling, while the
> > second one will compile and not confuse ccache.
>
> if invoking g++ twice in this silly fashion improves anything then that
> sounds like a bug in ccache to me.  why don't you suggest fixing ccache
> then instead of complicating our build system?

 I don't quite understand the problem description, but if I'm getting it right 
that the problem is that ccache doesn't reuse cached objects that just differ 
in (not) using the -M* options for generating dependencies, then that's a 
feature and I doubt anybody would be bothered to do much about it. Ccache 
simply also caches the command line used for the compile, so that's why any 
difference there is an automatic miss.

 I don't see why this matters anyway. Tinderboxes build without deps the whole 
time, so this doesn't matter. Developers doing development without deps are 
asking for trouble, so they would get it. Why would anyone actually need 
this?

-- 
 Lubos Lunak
 l.lunak at suse.cz


More information about the LibreOffice mailing list