]>
git.ipfire.org Git - thirdparty/ccache.git/log
Joel Rosdahl [Sun, 12 Apr 2026 08:34:54 +0000 (10:34 +0200)]
chore: Update authors
(cherry picked from commit
cf9ed5cdfaf06d2d7f0d99c63c97e4aed8facbe3 )
Joel Rosdahl [Sun, 12 Apr 2026 08:17:32 +0000 (10:17 +0200)]
chore: Update news
(cherry picked from commit
884cc5c2438dfeb0a20b753761258d1815bda807 )
Ludovic Henry [Sun, 12 Apr 2026 08:15:27 +0000 (10:15 +0200)]
ci: Add glibc build and release on linux-riscv64 (#1718)
Joel Rosdahl [Sat, 11 Apr 2026 07:09:35 +0000 (09:09 +0200)]
fix: Detect hppa2.0-unknown-linux-gnu-gcc as GCC
Fixes #1721.
Joel Rosdahl [Sat, 4 Apr 2026 19:37:12 +0000 (21:37 +0200)]
bump: Upgrade to doctest 2.5.1
Joel Rosdahl [Thu, 9 Apr 2026 07:28:23 +0000 (09:28 +0200)]
fix: Handle directory-less path to /FI
Jiri Slaby [Tue, 7 Apr 2026 17:34:55 +0000 (19:34 +0200)]
build: Use find_package first for cpp-httplib (#1717)
Joel Rosdahl [Sat, 4 Apr 2026 19:06:03 +0000 (21:06 +0200)]
chore: Add commit type compat, improve explanation of enhance/feat/fix
Joel Rosdahl [Sat, 4 Apr 2026 19:05:52 +0000 (21:05 +0200)]
compat: Add knowledge of -fsanitize-ignorelist
-fsanitize-blacklist was renamed to -fsanitize-ignorelist in Clang 13.
Fixes #1712.
Joel Rosdahl [Tue, 31 Mar 2026 17:37:39 +0000 (19:37 +0200)]
chore: Add ccache configuration field to the problem report template
Joel Rosdahl [Tue, 31 Mar 2026 16:50:25 +0000 (18:50 +0200)]
test: Disable reading of external system config in upgrade tests
Fixes #1713.
Joel Rosdahl [Sat, 28 Mar 2026 08:34:28 +0000 (09:34 +0100)]
chore: Improve table in CONTRIBUTING.md
Joel Rosdahl [Sat, 28 Mar 2026 08:33:22 +0000 (09:33 +0100)]
bump: Upgrade to doctest 2.5.0
Philipp Kolberg [Tue, 31 Mar 2026 17:32:21 +0000 (19:32 +0200)]
fix: Invalidate PCH upon MSVC toolset update (#1714)
Joel Rosdahl [Wed, 25 Mar 2026 15:16:29 +0000 (16:16 +0100)]
feat: Improve path rewriting on Windows
Made it possible to rewrite absolute paths to relative on Windows when
paths differ in case.
Joel Rosdahl [Thu, 26 Mar 2026 08:42:43 +0000 (09:42 +0100)]
enhance: Add util::to_uppercase
Joel Rosdahl [Thu, 26 Mar 2026 08:13:39 +0000 (09:13 +0100)]
fix: Disable base directory when using MSVC's /Yc option
When creating a precompiled header (PCH), MSVC does not like relative
paths for /Yc and /FI arguments, so don't rewrite paths to relative in
that case.
Fixes #1710.
Joel Rosdahl [Thu, 26 Mar 2026 08:09:48 +0000 (09:09 +0100)]
test: Check that response file expansion is not done too eagerly
For example,
gcc -c test.c -o @foo
will not read arguments from @foo.
Joel Rosdahl [Thu, 26 Mar 2026 07:26:20 +0000 (08:26 +0100)]
test: Don't allow running tests from repo top directory
Joel Rosdahl [Wed, 25 Mar 2026 19:42:59 +0000 (20:42 +0100)]
fix: Pass sysconfdir and other variables from Makefile to install.sh
Joel Rosdahl [Wed, 25 Mar 2026 15:52:19 +0000 (16:52 +0100)]
enhance: Add iterators for util::Args
Joel Rosdahl [Tue, 24 Mar 2026 18:51:28 +0000 (19:51 +0100)]
build: Ignore -Wc2y-extensions warning for doctest with Clang 22+
https://github.com/doctest/doctest/issues/1042
Maksym Sobolyev [Fri, 13 Mar 2026 22:32:46 +0000 (15:32 -0700)]
test: dump logs on failure to aid investigation
Maksym Sobolyev [Tue, 24 Mar 2026 14:33:13 +0000 (07:33 -0700)]
test: Reduce remote_helper flakes on slow systems
Björn Svensson [Mon, 23 Mar 2026 19:29:32 +0000 (20:29 +0100)]
fix(http): Treat HTTP 2xx with empty body as cache miss (#1707)
fix(storage): Treat empty remote storage entries as errors
A remote storage backend returning a value with an empty body indicates
a corrupt or misconfigured entry, not a cache miss. Check for empty
values in the storage layer so that all current and future backends are
covered. The error is logged but the backend is not marked as failed,
since other entries may still be valid.
Signed-off-by: Björn Svensson <bjorn.a.svensson@est.tech>
Joel Rosdahl [Sun, 22 Mar 2026 12:03:23 +0000 (13:03 +0100)]
ci: Add darwin binary releases to prepare-release again
Fixes regression in
8496fc8c2e00b0917d9d6206093fc6d7fac69bf7 .
Joel Rosdahl [Sun, 22 Mar 2026 12:02:56 +0000 (13:02 +0100)]
ci: Add Linux binary tar.gz archives to release notes
Joel Rosdahl [Sun, 22 Mar 2026 12:01:52 +0000 (13:01 +0100)]
chore: Remove duplicate header in release notes
(cherry picked from commit
912c2d57fb694697fa8045da60657e08f373d71a )
Joel Rosdahl [Fri, 20 Mar 2026 20:09:50 +0000 (21:09 +0100)]
chore: Update NEWS
(cherry picked from commit
68878d188f6c3f963042757acc231a89223dd86a )
Maksym Sobolyev [Sat, 14 Mar 2026 05:51:36 +0000 (22:51 -0700)]
test: Reduce remote_helper flakes on slow systems
Raise the helper idle timeout so the direct crsh test doesn't lose the
helper between the local-hit phase and the final remote reconnect.
Maksym Sobolyev [Fri, 13 Mar 2026 01:56:40 +0000 (18:56 -0700)]
test: Relax util::exec_to_string missing command assertion
The POSIX error for a missing command is not stable across systems. Some
environments report the posix_spawnp failure directly, while others
return a shell-style "Non-zero exit code: 127" instead.
Accept both outcomes in the test and capture the actual error string to
make future failures easier to diagnose.
Maksym Sobolyev [Fri, 13 Mar 2026 01:56:53 +0000 (18:56 -0700)]
chore: Point to gcc11 instead of the default gcc8 in alma-8 image
Maksym Sobolyev [Wed, 8 Oct 2025 19:34:54 +0000 (12:34 -0700)]
chore: Add libstdc++-devel/libstdc++-devel to alma-{8,9,10} images
Joel Rosdahl [Thu, 19 Mar 2026 13:42:46 +0000 (14:42 +0100)]
fix: Fix rewriting MSVC /FI argument to relative when using base_dir
MSVC's /FI option is special in that the compiler looks up a relative
file relative to the source file instead of the CWD.
Joel Rosdahl [Wed, 18 Mar 2026 18:17:48 +0000 (19:17 +0100)]
feat: Add install script for binary Linux releases
This makes it possible to install without having make(1) available.
Joel Rosdahl [Mon, 16 Mar 2026 19:52:22 +0000 (20:52 +0100)]
ci: Add tar.gz archives for Linux binary releases
Joel Rosdahl [Sun, 15 Mar 2026 14:36:32 +0000 (15:36 +0100)]
fix: Avoid crash for `/Yc` without `/Fp`
(cherry picked from commit
0f98ffb366891f815719560a97293acc55fd42fa )
Joel Rosdahl [Sun, 15 Mar 2026 09:04:10 +0000 (10:04 +0100)]
enhance: Add util::Args::parse_response_file_content function
Joel Rosdahl [Sun, 15 Mar 2026 09:05:53 +0000 (10:05 +0100)]
fix: Increase robustness of manifest parsing
Joel Rosdahl [Sat, 14 Mar 2026 12:33:41 +0000 (13:33 +0100)]
fix: Sanity check original_size in util::zstd_decompress
If original_size 0, `&output[original_size]` will crash later (if
`output.size()` is also 0).
Joel Rosdahl [Wed, 11 Mar 2026 18:59:10 +0000 (19:59 +0100)]
fix: Sanity check decompressed payload size
Joel Rosdahl [Tue, 10 Mar 2026 20:50:07 +0000 (21:50 +0100)]
fix: Fix return type for CacheEntry::Header::uncompressed_payload_size
Returning uint32_t instead of uint64_t seems like an oversight.
Joel Rosdahl [Sat, 14 Mar 2026 12:06:18 +0000 (13:06 +0100)]
test: Don't check `.ltrans0.ltrans.su` files in `-flto` tests (#1704)
Different compilers produce different stack-usage files when linking
object files compiled with `-fstack-usage -flto`. Since ccache does not
cache linking anyway, skip checking the linking results to avoid
compiler-specific expectations.
Fixes #1699.
Kristian Sloth Lauszus [Sat, 14 Mar 2026 09:50:26 +0000 (10:50 +0100)]
fix: LTO is disabled if `-fno-lto` is used (#1700)
If `-flto` is followered by `-fno-lto`, then LTO will be disabled
On the other hand if `-fno-lto` is followered by `-flto`, then LTO will be enabled
Joel Rosdahl [Thu, 12 Mar 2026 07:31:19 +0000 (08:31 +0100)]
test: Fix remote_helper test error for long $PWD
Use relative Unix socket paths in tests to avoid overflowing the Unix
socket name length limit when $PWD is long.
Fixes #1697.
Joel Rosdahl [Thu, 12 Mar 2026 07:24:32 +0000 (08:24 +0100)]
chore: Improve log messages for Unix socket connect failure
Related to #1697.
Joel Rosdahl [Wed, 11 Mar 2026 20:21:44 +0000 (21:21 +0100)]
ci: Add macOS 15/26 builds
Also bump Xcode version for macOS 14.
Joel Rosdahl [Wed, 11 Mar 2026 19:23:39 +0000 (20:23 +0100)]
chore: Improve log messages for Unix socket connect failure
Related to #1697.
Joel Rosdahl [Wed, 11 Mar 2026 19:15:56 +0000 (20:15 +0100)]
fix: Fix DEFER usage
Joel Rosdahl [Wed, 11 Mar 2026 19:05:11 +0000 (20:05 +0100)]
fix: Fix restoring of timestamps in recompressor
Fixes incorrect fix in
86af29da704f0e879c55230aad9a22d5df330bc3 .
Gregor Jasny [Wed, 11 Mar 2026 19:17:01 +0000 (20:17 +0100)]
chore: Use typedefs to access ::type (#1695)
Joel Rosdahl [Mon, 9 Mar 2026 20:29:49 +0000 (21:29 +0100)]
chore: Update authors
(cherry picked from commit
5a1399943d6f145960108fbd27f125ec39569a28 )
Joel Rosdahl [Mon, 9 Mar 2026 20:26:22 +0000 (21:26 +0100)]
chore: Update news
(cherry picked from commit
9dc6847f9e704519787521903cdade28fd9c298c )
Kristian Sloth Lauszus [Mon, 9 Mar 2026 20:06:57 +0000 (21:06 +0100)]
fix: Do not look for .su and .ci output files when LTO is used (#1693)
When `-flto` is used the .su and .ci output files are not generated during compilation, instead they are generated during link time
This means that ccache can simply skip those files when `-fstack-usage` and `-fcallgraph-info` are used in combination with the `-flto` flag
See: https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html#index-fcallgraph-info
Joel Rosdahl [Mon, 9 Mar 2026 19:48:14 +0000 (20:48 +0100)]
fix: Pass template argument to mktemp(1) for portability to macOS/BSD
Fixes #1692.
Joel Rosdahl [Mon, 9 Mar 2026 19:38:49 +0000 (20:38 +0100)]
build: Use correct pandoc binary
Gregor Jasny [Mon, 9 Mar 2026 20:02:15 +0000 (21:02 +0100)]
chore: Remove obsolete condition (#1694)
Gregor Jasny [Mon, 9 Mar 2026 19:21:09 +0000 (20:21 +0100)]
build: Use CMake knowledge about helper locations (#1689)
Joel Rosdahl [Sun, 8 Mar 2026 18:00:42 +0000 (19:00 +0100)]
fix: Restore atime when recompressor fails to read a file
Joel Rosdahl [Sun, 8 Mar 2026 16:09:36 +0000 (17:09 +0100)]
fix: Handle extensionless -x assembler inputs
Regression in
5da91eb2b4f4cd09a5669f0aebfc534b514826ce .
Fixes #1691.
Joel Rosdahl [Sun, 8 Mar 2026 12:32:28 +0000 (13:32 +0100)]
fix: Fix crash when finding storage helper next to the ccache executable
Joel Rosdahl [Sun, 8 Mar 2026 12:19:11 +0000 (13:19 +0100)]
fix: Use OS-specific methods to reliably find the ccache executable path
argv[0] is not guaranteed to reflect the actual location of the
executable (e.g. when invoked via a symlink). Use platform-specific APIs
instead. Fall back to the argv[0]-based approach if the OS method fails.
Joel Rosdahl [Sat, 7 Mar 2026 21:42:11 +0000 (22:42 +0100)]
fix: Search for storage helper in libexec before PATH
Previously ccache searched for storage helpers in PATH before libexec
directories. The idea was that users could easily override a
system-installed helper by placing a newer version earlier in PATH.
However, this also meant that PATH was consulted even when a libexec
directory had been explicitly configured, or when the helper was
installed in the intended system location. In these cases, helpers found
in PATH could take precedence over the expected libexec helper.
Since installing helpers in a libexec directory is the intended
deployment model, prefer libexec locations over PATH.
Joel Rosdahl [Fri, 6 Mar 2026 20:16:04 +0000 (21:16 +0100)]
fix: Fix build with HAVE_UTIMES but without HAVE_UTIMENSAT
Fixes #1690.
Joel Rosdahl [Thu, 5 Mar 2026 15:15:42 +0000 (16:15 +0100)]
ci: Adapt generate-release-notes to new Linux binary release archives
Joel Rosdahl [Thu, 5 Mar 2026 14:14:51 +0000 (15:14 +0100)]
chore: Update authors
Joel Rosdahl [Thu, 5 Mar 2026 14:12:26 +0000 (15:12 +0100)]
chore: Update NEWS
Joel Rosdahl [Thu, 5 Mar 2026 14:11:20 +0000 (15:11 +0100)]
chore: Add GitHub user names to NEWS
Joel Rosdahl [Sun, 1 Mar 2026 14:45:46 +0000 (15:45 +0100)]
build: Only inject config.h for C and C++, not assembler
Fixes #1599.
Joel Rosdahl [Thu, 26 Feb 2026 10:40:43 +0000 (11:40 +0100)]
feat: Add support for directory-specific configuration file
Ccache now searches for a ccache.conf file (separate from the
cache-specific config) in the current working directory and its parent
directories. This allows per-project configuration without modifying the
user's cache-specific config.
Directory config has higher priority than other config files but lower
priority than environment variables.
The search stops when reaching a ceiling_dirs entry (default: $HOME), a
ceiling_marker (default: .git), a mount point or a directory owned by
another user. A found file is accepted only if it is owned by the
effective user and not world-writable.
For security, unsafe settings are rejected by default, where unsafe
means affecting which commands to execute, which files to write and
which network connections to make. They are only allowed when the
directory config file is under a trusted path listed in safe_dirs.
Closes #1393.
Joel Rosdahl [Thu, 26 Feb 2026 10:49:23 +0000 (11:49 +0100)]
docs: Define path list separator in one place
Joel Rosdahl [Thu, 26 Feb 2026 09:16:34 +0000 (10:16 +0100)]
chore: Add temporary Emacs files to .gitignore
Joel Rosdahl [Sat, 21 Feb 2026 13:35:08 +0000 (14:35 +0100)]
enhance: Add util::DirEntry::uid function
Joel Rosdahl [Sun, 22 Feb 2026 18:55:44 +0000 (19:55 +0100)]
refactor: Sort Config methods and variables
Joel Rosdahl [Sat, 21 Feb 2026 13:33:21 +0000 (14:33 +0100)]
refactor: Verify absolute paths in set_base_dirs instead of after
Joel Rosdahl [Wed, 18 Feb 2026 19:51:17 +0000 (20:51 +0100)]
chore: Remove check for (on POSIX) mandatory spawn.h header
Joel Rosdahl [Mon, 16 Feb 2026 19:22:25 +0000 (20:22 +0100)]
ci: Stop building 32-bit Windows releases
I see no reason to continue releasing prebuilt 32-bit binaries, so let's
stop doing that and see if users agree.
Joel Rosdahl [Sun, 15 Feb 2026 17:49:13 +0000 (18:49 +0100)]
perf: Fix performance regression in process_preprocessed_file
4b79f9ec35b1de186e924e3f9f467ad1504b523e introduced std::string_view
construction of potentially very large strings in
process_preprocessed_file.
Joel Rosdahl [Sun, 8 Feb 2026 19:10:41 +0000 (20:10 +0100)]
chore: Require Clang >= 12
Joel Rosdahl [Sat, 7 Feb 2026 21:30:41 +0000 (22:30 +0100)]
chore: Fix typo
Fixes typos introduced in
51466ac40eeb57a0d9b0edbdbc9f40ed2d753b7a .
Joel Rosdahl [Sat, 7 Feb 2026 18:11:52 +0000 (19:11 +0100)]
refactor: Improve PRINT macro to accept format string without arguments
Joel Rosdahl [Mon, 2 Feb 2026 20:35:14 +0000 (21:35 +0100)]
refactor: Improve LOG macro to accept format string without arguments
Joel Rosdahl [Thu, 12 Feb 2026 20:05:30 +0000 (21:05 +0100)]
refactor: Generalize "already preprocessed" compiler language slightly (#1684)
- Rename ArgsInfo::direct_i_file to preprocess_input_file, since that's
what it now means.
- Add "ir" as a language and let "-fthinlto-index=" use that language
implicitly instead of piggybacking on "assembler".
zcfh [Wed, 11 Feb 2026 20:05:44 +0000 (04:05 +0800)]
feat: Support caching of distributed ThinLTO for Clang (#1683)
Joel Rosdahl [Wed, 4 Feb 2026 20:14:53 +0000 (21:14 +0100)]
refactor: Remove now unnecessary util::{starts,ends}_with
Joel Rosdahl [Sat, 7 Feb 2026 14:21:01 +0000 (15:21 +0100)]
chore: Update copyright years
(cherry picked from commit
ec039169a4d93f7bae3f3f99762bd0248c9d3bd5 )
Joel Rosdahl [Sat, 7 Feb 2026 14:20:21 +0000 (15:20 +0100)]
chore: Update authors
(cherry picked from commit
1a0c691375ead5eb13b39090de6da8699bc0ae9c )
Joel Rosdahl [Sat, 7 Feb 2026 14:19:47 +0000 (15:19 +0100)]
chore: Update NEWS
(cherry picked from commit
1d35536287570a2033978e5abb98e9e5e5c76b20 )
Steffen [Sat, 7 Feb 2026 08:50:14 +0000 (08:50 +0000)]
fix(cmake): Enable assembler compiler conditionally (#1678)
CMake will call `enable_language` for all languages passed to `project`.
This deduplicates the work and only enables one assembler depending on
the platform.
Joel Rosdahl [Tue, 3 Feb 2026 19:27:01 +0000 (20:27 +0100)]
refactor: Remove no longer needed FMT_STRING
fmt checks format arguments without the need of FMT_STRING when using
C++20.
Joel Rosdahl [Tue, 3 Feb 2026 19:26:56 +0000 (20:26 +0100)]
refactor: Use C++20 .contains(...) instead of .find() != .end()
Joel Rosdahl [Tue, 3 Feb 2026 19:26:53 +0000 (20:26 +0100)]
refactor: Use C++20 erase_if instead of erase+remove_if
Joel Rosdahl [Tue, 3 Feb 2026 19:26:51 +0000 (20:26 +0100)]
refactor: Use std::span instead of nonstd::span
Joel Rosdahl [Tue, 3 Feb 2026 19:26:45 +0000 (20:26 +0100)]
chore: Bump required compiler versions
Joel Rosdahl [Tue, 3 Feb 2026 19:26:38 +0000 (20:26 +0100)]
build: Require a C++-20 compiler
Joel Rosdahl [Tue, 3 Feb 2026 18:04:54 +0000 (19:04 +0100)]
build: Add missing includes
Joel Rosdahl [Tue, 3 Feb 2026 18:51:03 +0000 (19:51 +0100)]
build: Disable Clang-Tidy modernize-loop-convert check
Joel Rosdahl [Tue, 3 Feb 2026 18:23:11 +0000 (19:23 +0100)]
ci: Use Clang-Tidy 13
Joel Rosdahl [Sat, 31 Jan 2026 09:54:32 +0000 (10:54 +0100)]
build: Disable legacy support for downloaded zstd
This avoids compiling zstd's lib/legacy/zstd_v01.c file which is seen to
trigger -Wmaybe-uninitialized warnings.
Closes #1679.
Oleg Sidorkin [Sat, 31 Jan 2026 09:46:13 +0000 (12:46 +0300)]
perf: Use copy_file_range to copy files if available (#1680)