Changelog for ccache: 4.13.6 -> 4.14 Source: doc/news.adoc == Ccache 4.14 Release date: 2026-08-23 === Deprecation notice Built-in support for the HTTP and Redis protocols will be removed in the next non-bug-fix ccache version. Use the https://ccache.dev/storage-helpers.html[remote storage helper] mechanism (added in ccache 4.13) for HTTP/Redis storage instead. === Removed functionality - Removed the `cpp_extension` (`CCACHE_EXTENSION`) configuration option since ccache now processes preprocessor output directly in memory instead of using intermediate files. + [small]#_[contributed by Joel Rosdahl]_# === New features and improvements - Added support for the QCC (QNX) compiler. + [small]#_[contributed by Joy Wang]_# - Added limited support for caching SARIF diagnostics: `-fdiagnostics-format=sarif-stderr` and `-fdiagnostics-{add,set}-output=sarif:file=...` for GCC, `/experimental:log` for MSVC. + [small]#_[contributed by Joel Rosdahl, Karl Fessel and Leander Schulten]_# - Added automatic depend mode for NVCC on Windows. + [small]#_[contributed by Xing Xiwen]_# - Added support for `@layout=local` in the file storage backend, allowing a copy or read-only mount of a local cache to be used as remote storage. + [small]#_[contributed by Joel Rosdahl]_# - Extended the remote storage helper protocol with an `exists` operation, avoiding transfer of already stored values in reshare mode, and an `info` operation for reporting the helper's identity and diagnostics. + [small]#_[contributed by Joel Rosdahl]_# - Added a `--dry-run` option for previewing cleanup, eviction and directory trimming operations without removing files. + [small]#_[contributed by Joel Rosdahl]_# - Added support for rewriting absolute profile data file paths to relative, improving cache sharing between different directory trees. + [small]#_[contributed by GitHub user markyang92]_# - Added support for reflinking `.dwo` files when file cloning is enabled. + [small]#_[contributed by Fabian Parzefall]_# - Added detection of C23 `#embed` directives in direct and depend mode and of assembler `.incbin` directives in depend mode, preventing false cache hits. + [small]##_[contributed by Joel Rosdahl and Haaris Rahman]_## - Added support for `-Wp,` options with multiple macro definitions. + [small]#_[contributed by GitHub user subotac]_# - Ccache now hashes the contents of Clang module files specified with `-fmodule-file=`, preventing false cache hits when a module changes. + [small]#_[contributed by GitHub user RedNicStone]_# - Cleanup and eviction operations now print the amount of data and number of files removed. + [small]#_[contributed by Joel Rosdahl]_# - Increased the maximum number of raw files stored in a cached result to 256. + [small]#_[contributed by Joel Rosdahl]_# - Modernized use of C++ type traits. + [small]#_[contributed by Gregor Jasny]_# - Improved portability of compiler exit status handling. + [small]#_[contributed by Joel Rosdahl]_# - Made path rewriting on Windows case-insensitive and Unicode-aware. + [small]#_[contributed by Joel Rosdahl]_# - Made `ignore_headers_in_manifest` match case-insensitively on Windows. + [small]#_[contributed by GitHub user trustytrojan]_# - Reduced the number of system calls for IPC requests. + [small]#_[contributed by Joel Rosdahl]_# === Bug fixes - Fixed `base_dir` path rewriting when using MSVC's `/Yu` option: paths are no longer rewritten to relative when using a precompiled header, since MSVC then does not like relative paths for the `/Yu` and `/FI` arguments. + [small]#_[contributed by Joel Rosdahl]_# - Fixed handling of compiler options when one recognized option is a prefix of another. + [small]#_[contributed by Joel Rosdahl]_# - Fixed `base_dir` handling for include paths in preprocessor mode (regression in ccache 4.12.2). + [small]#_[contributed by Joel Rosdahl]_# - Fixed handling of Clang 22's `--warning-suppression-mappings` option. + [small]#_[contributed by Joel Rosdahl]_# - Fixed error handling when a Clang configuration file cannot be hashed. + [small]#_[contributed by Joel Rosdahl]_# - Fixed a remote storage configuration with `read_only=false` being treated as read-only. + [small]#_[contributed by GitHub user ThisIsFineTM]_# - Fixed interrupted system calls when communicating with remote storage helpers. + [small]#_[contributed by Joel Rosdahl]_# - Avoided a race if starting a remote storage helper takes an unexpectedly long time. + [small]#_[contributed by Joel Rosdahl]_# - Avoided spawning and waiting for a remote storage helper when IPC access is denied by a sandbox. + [small]#_[contributed by Joel Rosdahl]_# - Fixed the free space check for the inode cache. + [small]#_[contributed by Joel Rosdahl]_# - Fixed handling of empty atomic file writes and improved robustness if opening an atomic file stream fails. + [small]#_[contributed by Joel Rosdahl]_# - Fixed a size overflow when allocating very large files on Windows. + [small]#_[contributed by Joel Rosdahl]_# - Fixed thread safety of time conversion fallbacks on systems without `gmtime_r` and `localtime_r`. + [small]#_[contributed by Joel Rosdahl]_# - Fixed handling of systems that report zero available hardware threads. + [small]#_[contributed by Joel Rosdahl]_# - Fixed reporting of errors from `posix_spawnp`. + [small]#_[contributed by Joel Rosdahl]_# - Fixed the statistics counter used when a Clang sanitize ignorelist cannot be read. + [small]#_[contributed by Joel Rosdahl]_# === Build improvements - Fixed building with Clang 23. + [small]#_[contributed by GitHub user LinuxUserGD]_# - Added missing CMake probe for `gmtime_r`. + [small]#_[contributed by Joel Rosdahl]_# === Documentation improvements - Improved `base_dir` documentation. + [small]#_[contributed by Joel Rosdahl]_# - Clarified syntax of configuration options that take path lists. + [small]#_[contributed by Joel Rosdahl]_#