Status of ccache

Erik Joelsson erik.joelsson at oracle.com
Mon May 25 08:38:28 UTC 2015


On 2015-05-22 17:47, Dan Smith wrote:
> JDK-8027584 disabled ccache by default, I gather because it doesn't work in Cygwin, and secondarily because of vague general problems with it.
>
> The documentation (README-builds.html) still unambiguously endorses it, although doesn't say anything about how to turn it on (configure with --enable-ccache).
>
> I'm curious about the current state of affairs, and suggest updating the documentation to reflect the answer.
>
> —Dan
 From README-builds.html in jdk9:

                 <h4>Building with ccache</h4>

                 <p>The OpenJDK build supports building with ccache
                     when using gcc or clang. Using ccache can
                     radically speed up compilation of native code if
                     you often rebuild the same sources. Your milage
                     may vary however so we recommend evaluating it for
                     yourself. To enable it, make sure it's on the path
                     and configure with <code>--enable-ccache</code>.</p>

I wouldn't say that's endorsing ccache, but rather reflects the current 
state of things. It can be a great speed improvement, but it certainly 
varies. Especially in hotspot, if you touch a header file, you 
invalidate most of the cache, so it won't help the development usecase 
much. It doesn't play very well with precompiled headers as Magnus says, 
but I did fix the worst of that a while back so it's far from as bad as 
it used to be. I would not discourage trying them both together at this 
point.

In JDK 8, the documentation and defaults are probably still bad.

On a related note, a while back I experimented with modifications to 
ccache to make it work with Solaris Studio. I believe I got it to work, 
but it would certainly need more testing before we could trust it.

/Erik



More information about the build-dev mailing list