- update to 4.8.1:
* Fixed an issue with the depend mode in combination with `--`
on the command line for Clang-based compilers. +
* Improved knowledge about MSVC debug flags so that non-debug
`/Z*` options are once again supported. +
* Ccache no longer treats `/Zi` as unsupported for clang-cl.
* Made the output format of `ccache -k max_size` parsable by
ccache itself. +
* Added a remote file storage example with URL-encoded spaces.
OBS-URL: https://build.opensuse.org/request/show/1087989
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ccache?expand=0&rev=133
- update to 4.8:
* Improved the automatic cache cleanup mechanism. Automatic
cleanups are now performed on 1/256 of the cache instead of
1/16, thus making them much quicker (but naturally more frequent).
Cleanups are coordinated between ccache processes so that at most
one process will perform cleanup at a time. Also, the actual cache
size will stay very close to the configured maximum size instead of
staying around 90% as was the case before.
* Added support for setting per-compilation configuration options on
the command line. Example: `ccache hash_dir=false gcc -c example.c`
* Made it possible to disable ccache for a certain source code file
by embedding the string `ccache:disable` in a comment near the top
of the file.
* Made ccache understand that an MSVC `/Z7` option overrides an
earlier `/Z*` option and thus is not too hard to cache.
* Added a `--recompress-threads` command line option for selecting
the number of CPU threads to use when recompressing the local cache.
* Added `--trim-recompress` and `--trim-recompress-threads` command
line options for recompressing file-based remote storage.
* Added tmpfs, ufs and zfs to the list of supported filesystems on
macOS and BSDs for the inode cache.
* Improved progress bars for clean/clear/evict-style operations.
* Improved printing of cache sizes in various outputs.
* Activate debug logging for command mode options like `--cleanup`.
* Added support for `-Wp,-U<macro>` in the direct mode.
* Added quotes around arguments with space in logged command lines.
* Added logging of executed command lines on Windows. +
* Made sure not to update the stats file when there are no incremented
counters.
* Improved actual disk size calculation on Windows.
OBS-URL: https://build.opensuse.org/request/show/1071214
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ccache?expand=0&rev=131
- update to 4.7.4:
* Fixed an inode cache race condition.
* The default temporary directory is now `$XDG_RUNTIME_DIR/ccache-tmp`
instead of a hardcoded `/run/user/<UID>/ccache-tmp`. If `XDG_RUNTIME_DIR`
is not set, `<cache_dir>/tmp` is used. This avoids creating `/run/user/<UID>`
on systems that don't have it if compiling as root.
* Added a fallback in case `posix_fallocate` returns `EINVAL` when
creating the
inode cache file.
* Connection timeout for an HTTP connection is now reported as a timeout
instead
* Temporary files found in the cache are no longer counted in
`--show-compression`.
* Removed duplicate magic header in output from `--inspect`.
* Ccache now properly waits for all recompression jobs to finish when
there is no `f` subdirectory in the cache.
* Documentation improvements
OBS-URL: https://build.opensuse.org/request/show/1040262
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ccache?expand=0&rev=129
- update to 4.6.3:
* Fixed detection of PCH header for concatenated `-include` option (e.g.,
`-includepch.h` instead of `-include pch.h`).
* Fixed build with musl when using GCC 12.
* Disabled the `"Failure to write output file"` when running on a filesystem
that doesn't support read-only directories.
* Fixed a race condition that could lead to a crash if a file in the cache is
removed with unlucky timing, e.g. by another ccache process doing cache
cleanup.
* Dependency file rewriting will now always be performed if
`base_dir`/`CCACHE_BASEDIR` is active. This fixes a problem with the
dependency file content when Clang is used with `-fsanitize=address`.
* Fixed handling of error condition for `--hash-file`/`--checksum-file`.
* Made sure to enable the inode cache only if subsecond `stat` timestamps are
available.
* Added a work-around for a Clang bug when writing to a full NFS file system.
* Made failure writing to the output file increment the "`bad output file`"
counter instead of "`cache miss`".
* Fixed false positive cache hits for code constructions similar to
`__asm__(".incbin" " \"file\"")`.
* Fixed false success for `-fcolor-diagnostics` probe with GCC. A side effect of
this is that a compiler type that ccache can't identify from the compiler name
(such as `/usr/bin/cc` where `cc` is not a symlink) from now on won't produce
color diagnostics when used via ccache even if the compiler actually is GCC or
Clang.
* More cases of invalid secondary storage URLs are now handled gracefully.
* Fixed the display of maximum cache size in `ccache -s` if it's 0 (=
unlimited).
* Removed AsciiDoc markup from help text of `--trim-dir`.
* The temporary directory is now cleaned up properly even if it's left
OBS-URL: https://build.opensuse.org/request/show/1005766
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ccache?expand=0&rev=125
- update to 4.6.1:
* Added support for passing a directory to the MSVC `/Fo` option.
* Added knowledge about the `-imsvc` compiler option.
* Added knowledge about the `-z` linker option.
* Improved handling of `.gcno` files in combination with absolute input file
paths.
* Adapted to changes in GCC 9+ `.gcno` files, which contain the current working
directory, by including said directory in the hash. You can opt out of this by
enabling "`gcno_cwd sloppiness`".
* A preexisting object file is no longer considered when using
`-fsyntax-only`.
* Authenticate with Redis before database selection.
* Don't exit with an error on failure reading a cached file.
* Bail out on too hard MSVC environment variables `CL` and `+_CL_+`.
* Only use `/run/user/<UID>/ccache-tmp` as the temporary directory if it's
writable.
* Fixed handling of the final newline in cached standard output from the
compiler.
* Fixed a bug related to distcc markers in standard error output.
* Paths to `base_dir` are now properly normalized on Windows.
* Fixed handling of MSVC `/Fp` and `/Yu` options with concatenated path.
* Fixed "`Multiple precompiled headers used`" error if MSVC `/Yu` option is used
after `/Fp`.
* Check for short reads when reading strings in result/manifest files.
* Log expanded secondary storage URL in put/remove.
* Fixed logging of statistics counters with value higher than one in debug log
and stats log.
* Avoid incorrect error log message for Redis write operations in `reshare`
mode.
* Support Redis URL without host (meaning localhost).
OBS-URL: https://build.opensuse.org/request/show/980818
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ccache?expand=0&rev=66
* Added support for passing a directory to the MSVC `/Fo` option.
* Added knowledge about the `-imsvc` compiler option.
* Added knowledge about the `-z` linker option.
* Improved handling of `.gcno` files in combination with absolute input file
paths.
* Adapted to changes in GCC 9+ `.gcno` files, which contain the current working
directory, by including said directory in the hash. You can opt out of this by
enabling "`gcno_cwd sloppiness`".
* A preexisting object file is no longer considered when using
`-fsyntax-only`.
* Authenticate with Redis before database selection.
* Don't exit with an error on failure reading a cached file.
* Bail out on too hard MSVC environment variables `CL` and `+_CL_+`.
* Only use `/run/user/<UID>/ccache-tmp` as the temporary directory if it's
writable.
* Fixed handling of the final newline in cached standard output from the
compiler.
* Fixed a bug related to distcc markers in standard error output.
* Paths to `base_dir` are now properly normalized on Windows.
* Fixed handling of MSVC `/Fp` and `/Yu` options with concatenated path.
* Fixed "`Multiple precompiled headers used`" error if MSVC `/Yu` option is used
after `/Fp`.
* Check for short reads when reading strings in result/manifest files.
* Log expanded secondary storage URL in put/remove.
* Fixed logging of statistics counters with value higher than one in debug log
and stats log.
* Avoid incorrect error log message for Redis write operations in `reshare`
mode.
* Support Redis URL without host (meaning localhost).
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ccache?expand=0&rev=121
- update to 4.5.1:
* Fixed entry_size field for result entries.
* The actual compression level is now once again stored in the cache entry
header.
* Corrected error handling for unconstructible secondary storage backends. For
instance, this avoids a crash when a Redis server can't be reached.
* Made various improvements to the cache entry format. Among other things, the
header now contains a creation timestamp and a note of the ccache version used
to create the entry. The cache entry checksum has also been upgraded to use
128-bit XXH3 instead 64-bit XXH3.
* Made HTTP keep-alive configurable, defaulting to off for now.
* Added support for rewriting absolute path to Clang option `--gcc-toolchain`.
* Fixed a problem with special characters in the user info part of URLs for HTTP
storage.
* The hard link and file clone features are now disabled when secondary storage
is used since they only work for the local primary cache.
OBS-URL: https://build.opensuse.org/request/show/935294
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ccache?expand=0&rev=117
* Fixed entry_size field for result entries.
* The actual compression level is now once again stored in the cache entry
header.
* Corrected error handling for unconstructible secondary storage backends. For
instance, this avoids a crash when a Redis server can't be reached.
* Made various improvements to the cache entry format. Among other things, the
header now contains a creation timestamp and a note of the ccache version used
to create the entry. The cache entry checksum has also been upgraded to use
128-bit XXH3 instead 64-bit XXH3.
* Made HTTP keep-alive configurable, defaulting to off for now.
* Added support for rewriting absolute path to Clang option `--gcc-toolchain`.
* Fixed a problem with special characters in the user info part of URLs for HTTP
storage.
* The hard link and file clone features are now disabled when secondary storage
is used since they only work for the local primary cache.
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ccache?expand=0&rev=115
- Update to version 4.2.1:
* Ccache now only dup2`s stderr into `$UNCACHED_ERR_FD for calls to the preprocessor/compiler. This works around a complex bug in interaction with GNU Make, LTO linking and the Linux PTY driver.
* Fixed detection of color diagnostics usage when using -Xclang -fcolordiagnostics options.
* The -frecord-gcc-switches compiler option is now handled correctly to avoid false positive cache hits.
* Made it possible for per-compilation debug log files to be written in most argument processing error scenarios. Previously, ccache would only write debug log files if the argument processing phase was successful.
* Made ccache bail out on too hard Clang option -gen-cdb-fragment-path.
* The run_second_cpp made is now enforced on macOS if -g is used since newer Clang versions on macOS produce different debug information when compiling preprocessed code.
* Made ccache only reject -f(no-)color-diagnostics for a known GCC compiler. This fixes a problem when using said option with clang++ on macOS.
* Build configuration scripts now probe for atomic increment as well. This fixes a linking error on Sparc.
* An existing CMake log message level is now used when warning about not finding asciidoc.
* Fixed assertion in the "Debug option" test.
* Upgraded to doctest 2.4.6. This fixes a build error with glibc >= 2.34.
OBS-URL: https://build.opensuse.org/request/show/883205
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ccache?expand=0&rev=58
* Ccache now only dup2`s stderr into `$UNCACHED_ERR_FD for calls to the preprocessor/compiler. This works around a complex bug in interaction with GNU Make, LTO linking and the Linux PTY driver.
* Fixed detection of color diagnostics usage when using -Xclang -fcolordiagnostics options.
* The -frecord-gcc-switches compiler option is now handled correctly to avoid false positive cache hits.
* Made it possible for per-compilation debug log files to be written in most argument processing error scenarios. Previously, ccache would only write debug log files if the argument processing phase was successful.
* Made ccache bail out on too hard Clang option -gen-cdb-fragment-path.
* The run_second_cpp made is now enforced on macOS if -g is used since newer Clang versions on macOS produce different debug information when compiling preprocessed code.
* Made ccache only reject -f(no-)color-diagnostics for a known GCC compiler. This fixes a problem when using said option with clang++ on macOS.
* Build configuration scripts now probe for atomic increment as well. This fixes a linking error on Sparc.
* An existing CMake log message level is now used when warning about not finding asciidoc.
* Fixed assertion in the "Debug option" test.
* Upgraded to doctest 2.4.6. This fixes a build error with glibc >= 2.34.
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ccache?expand=0&rev=104
- Update to version 4.2:
* Improved calculation of relative paths when using base_dir to also consider canonical paths (i.e. paths with dereferenced symlinks) as candidates.
* Added a debug_dir (CCACHE_DEBUGDIR) configuration setting for specifying a directory for files written in debug mode.
* Added support for compiler option -x cuda, understood by Clang.
* The value of the SOURCE_DATE_EPOCH variable is now only hashed if it potentially affects the output from ccache. This means that ccache now (like before version 4.0) will be able produce cache hits for source code that doesn’t contain __DATE__ or __TIME__ macros regardless of the value of SOURCE_DATE_EPOCH.
OBS-URL: https://build.opensuse.org/request/show/869207
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ccache?expand=0&rev=57
* Improved calculation of relative paths when using base_dir to also consider canonical paths (i.e. paths with dereferenced symlinks) as candidates.
* Added a debug_dir (CCACHE_DEBUGDIR) configuration setting for specifying a directory for files written in debug mode.
* Added support for compiler option -x cuda, understood by Clang.
* The value of the SOURCE_DATE_EPOCH variable is now only hashed if it potentially affects the output from ccache. This means that ccache now (like before version 4.0) will be able produce cache hits for source code that doesn’t contain __DATE__ or __TIME__ macros regardless of the value of SOURCE_DATE_EPOCH.
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ccache?expand=0&rev=101
Another attempt, with ccache-4.1.tar.xz.asc added.
This fixes https://github.com/ccache/ccache/issues/711, which prevented ccache 4.0 being accepted into Factory.
- Update to version 4.1:
* Symlinks are now followed when guessing the compiler, e.g. /usr/bin/c++ -> g++10
* Added a new compiler_type (CCACHE_COMPILERTYPE) configuration option that allows for overriding the guessed compiler type.
* Added support for caching compilations with -fsyntax-only.
* Added a command line option --config-path, which specifies the configuration file to operate on. It can be used instead of setting CCACHE_CONFIGPATH temporarily.
OBS-URL: https://build.opensuse.org/request/show/850291
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ccache?expand=0&rev=99
* Changed the default cache directory location to follow the XDG base directory specification.
* Changed compression algorithm from Deflate (zlib) to Zstandard, enabled by default.
* Added functionality for recompressing cache content with a higher compression level.
* Changed hash algorithm from MD4 to BLAKE3.
* Added checksumming with XXH3 to detect data corruption.
* Improved cache directory structure.
* Added support for using file cloning (AKA “reflinks”).
* Added an experimental “inode cache” for file hashes.
- Changes for version 3.7.12:
* Coverage files (.gcno) produced by GCC 9+ when using -fprofile-dir=dir are now handled gracefully by falling back to running the compiler.
* Fixed writing to log file larger than 2 GiB when running ccache compiled in 32-bit mode.
- Drop no longer applying patch:
* 0001-Add-another-cleanup-mechanism-evict-older-than.patch
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ccache?expand=0&rev=98
- Update to version 3.7.10:
* Improved handling of profiling options. ccache should now work correctly
for profiling options like -fprofile-{generate,use}[=path] for GCC ≥ 9
and Clang as well as -fauto-profile[=path] and the Clang-specific
-fprofile-instr-{generate,use}[=path] and -fprofile-sample-{use,accurate}
options.
* ccache now copies files directly from the cache to the destination file
instead of via a temporary file. This avoids problems when using
filenames long enough to be near the file system’s filename max limit.
* When the hard-link mode is enabled, ccache now only uses hard links for
object files, not other files like dependency files. This is because
compilers unlink object files before writing to them but they don’t do
that for dependency files, so the latter can become overwritten and
therefore corrupted in the cache.
* Fixed a glitch related to hard-link mode and an empty cache.
* ccache now supports the ccache.conf file to be a symlink.
* Temporary files are now deleted immediately on signals like SIGTERM and
SIGINT instead of some time later in a cleanup phase.
* Fixed a bug that affected ccache’s -o/--set-config option for the
base_dir and cache_dir_levels keys.
OBS-URL: https://build.opensuse.org/request/show/821771
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ccache?expand=0&rev=94