> This patch enables the `--enable-sccache` flag to enable build caching
> using sccache. Specifically, if the toolchain is one among gcc, clang,
> or MSVC and if the sccache version is 0.10 and above, then the build
> prefixes all compiler invocations with the path to the sccache binary.
>
> Since sccache is incompatible with ccache and precompiled headers, this
> patch makes the build fail if either ccache or precompiled headers are
> enabled in addition to sccache at the same time.
>
> Validated this patch on {Linux, Windows, macOS} x {x64, aarch64}
> machines. In the best-case scenario (i.e. when there are no changes to
> the source files), the time required to run the "make images" step is
> roughly cut in half. Side note: the individual machines have very
> different configurations, so build times _across_ machines aren't
> comparable.
>
> - Windows/x64: 2,107s -> 848s
> - Windows/ARM64: 1,264s -> 748s
> - macOS/x64: 808s -> 243s
> - macOS/AArch64: 480s -> 142s
> - Linux/x64: 225s -> 111s
> - Linux/AArch64: 364s -> 246s
>
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK
> Interim AI Policy](https://openjdk.org/legal/ai).
Ashay Rane has updated the pull request with a new target base due to a merge
or a rebase. The incremental webrev excludes the unrelated changes brought in
by the merge/rebase. The pull request contains three additional commits since
the last revision:
- Merge branch 'master' into JDK-8389209-add-sccache-support
- Fix quoting level in call to `AC_MSG_ERROR()`
It seems an extra level of quoting is required because of the
`IF_ENABLED` callback.
Also detects instances when the code is unable to determine the version.
- Add sccache support to Linux, Windows, and macOS builds
This patch enables the `--enable-sccache` flag to enable build caching
using sccache. Specifically, if the toolchain is one among gcc, clang,
or MSVC and if the sccache version is 0.10 and above, then the build
prefixes all compiler invocations with the path to the sccache binary.
Since sccache is incompatible with ccache and precompiled headers, this
patch makes the build fail if either ccache or precompiled headers are
enabled in addition to sccache at the same time.
Validated this patch on {Linux, Windows, macOS} x {x64, aarch64}
machines. In the best-case scenario (i.e. when there are no changes to
the source files), the time required to run the "make images" step is
roughly cut in half. Side note: the individual machines have very
different configurations, so build times _across_ machines aren't
comparable.
- Windows/x64: 2,107s -> 848s
- Windows/ARM64: 1,264s -> 748s
- macOS/x64: 808s -> 243s
- macOS/AArch64: 480s -> 142s
- Linux/x64: 225s -> 111s
- Linux/AArch64: 364s -> 246s
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/32059/files
- new: https://git.openjdk.org/jdk/pull/32059/files/4632b216..358405c3
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=32059&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=32059&range=00-01
Stats: 233508 lines in 2340 files changed: 213431 ins; 7829 del; 12248 mod
Patch: https://git.openjdk.org/jdk/pull/32059.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/32059/head:pull/32059
PR: https://git.openjdk.org/jdk/pull/32059