> 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

Reply via email to