- Update to 4.9:
* Made ignore_options/CCACHE_IGNOREOPTIONS also skip the option from special
processing, similar to how --ccache-skip works.
* Added support for expanding environment variables references in all
configuration options.
* MSVC options /Fd, /FS and /MP are no longer included in the input hash.
* Made ccache terminate an ongoing compiler subprocess when terminated on all
platforms, not only on Unix.
* Added support for multiple -Xarch_* arguments matching -arch.
* Added a debug_level/CCACHE_DEBUGLEVEL configuration option, making it
possible to tell ccache to only write a log file for each compilation, not
other debug files.
* Added max_cache_size_kibibyte and max_files_in_cache fields in output from
ccache --print-stats.
* Paths after -Xclang -include are now rewritten to relative paths if
base_dir/CCACHE_BASEDIR is in effect.
* Added support for clang --analyze.
* Improved processing of input file arguments.
* Added support for st_Xtimensec fields in struct stat, thus improving
behavior on some BSDs when using newly created include files.
* Added support for the undocumented GCC/Clang option --include.
* Ccache now exits more gracefully on invalid sharded remote storage URLs.
* Made ccache bail out on too hard options -fmodules-ts, -fmodule-header,
-wrapper and -Xclang -ast-dump.
* Stopped relying on the st_blocks field in struct stat since it cannot be
trusted for filesystems such as ZFS that do transparent compression or
deduplication and adjust st_blocks some time in the future.
* Fixed crash on Windows for paths with only a drive letter.
* Made handling of Clang config options (such as --config-system-dir) more
robust.
OBS-URL: https://build.opensuse.org/request/show/1139682
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ccache?expand=0&rev=139
- 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