Commit graph

84 commits

Author SHA1 Message Date
adam 0cc69c4726 ccache: updated to 4.8.3
Ccache 4.8.3

Bug fixes

Fixed various problems with parsing of MSVC response file (.rsp).

Fixed handling of NVCC -Xcompiler and --Werror options.

Fixed bookkeeping of files when hard linking or file cloning is enabled. In ccache 4.8–4.8.2 this could result in incorrect size/count statistics after automatic or explicit cleanup.

Build improvements

Made a workaround for GCC 12.3 bug 109241 where GCC fails to compile ccache.

Upgraded to xxHash 0.8.2, which fixes compilation of ccache with GCC 12 and -Og.
2023-08-30 13:01:12 +00:00
tnn c1d3507140 ccache: work around ICE with GCC 12.3. From upstream. 2023-08-08 12:54:14 +00:00
nia 0bc93c4023 devel: Adapt packages to use USE_(CC|CXX)_FEATURES 2023-07-18 14:11:14 +00:00
jperkin d7b70fc03c ccache: SunOS needs libsocket. 2023-06-26 08:32:42 +00:00
adam 1da18c1cba ccache: updated to 4.8.2
Ccache 4.8.2

Bug fixes
Fixed parsing of Windows drive letter in file URLs for remote storage.

Fixed a bug affecting depend mode with MSVC.

Ccache no longer passes -v to the preprocessor. This improves preprocessor mode hit rate when -v is on the compiler command line.

Made --trim-max-size accept 0 for no limit.

Build improvements
Made various fixes for Windows 64-bit MSBuild builds.

Silenced CMake warning for extracted timestamps.

Worked around problem with building ZStandard with Xcode.

Fixed undefined behavior (only triggered by unit tests) in util::read_file_part for zero count, making the build fail with _GLIBCXX_ASSERTIONS.

Documentation improvements
Clarified --evict-older-than semantics.

Test improvements
Fixed typo in “Directory is not hashed if using -gz” test.
2023-06-14 06:54:16 +00:00
adam 228898138f ccache: updated to 4.8.1
Ccache 4.8.1

Bug fixes
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.

Build/CI improvements
Corrected ccache version in the macOS binary release.
Made it possible to build ccache with clang-cl on Windows.
Upgraded to doctest 2.4.11, thereby fixing a build issue on Solaris.

Documentation improvements
Added a remote file storage example with URL-encoded spaces.
2023-05-22 08:04:59 +00:00
jperkin 5b781deeb6 *: GCC_REQD must always be appended to. 2023-04-25 13:51:49 +00:00
adam 2c9e0e62a6 ccache: switch to cmake/build.mk 2023-03-16 07:53:35 +00:00
adam 200c28cb43 ccache: updated to 4.8
Ccache 4.8

New features and improvements
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.

Build/CI improvements
Added CI support for building macOS universal binaries.

Make it possible to force download of Zstd and Hiredis, e.g. with cmake -D ZSTD_FROM_INTERNET=ON […​].

Bug fixes
Fixed an edge case where a non-temporal identifier is misidentified.

Fixed reporting of local/remote cache misses in depend mode.

Fixed parsing of backslashes in MSVC RSP files.

Fixed a crash in --show-log-stats when the stats log file doesn’t exist.

Fixed matching of base directory for MSVC. The base directory will now match case-insensitively with absolute paths in preprocessed output, or from /showIncludes in the depend mode case, when compiling with MSVC.

Fixed a problem where the original umask would be used when storing a remote cache result in the local cache.

Changed the inode cache implementation to use spinlocks instead of pthread mutexes. This makes the inode cache work on FreeBSD and similar systems.

Don’t treat -Wp,-D as interchangeable with -D.

Disable the inode cache if the filesystem risks getting full soon. This fixes a problem when the cache is on a filesystem where posix_fallocate isn’t reliable, like Btrfs with compression enabled.

Fixed performance of cache path relativization in preprocessed output, primarily on Windows where stat calls are relatively costly.

Fixed rare crash in the signal handler at process exit.

Fixed handling of Unix-style paths passed to MSVC.

Fixed so that the config options and command line are logged before trying to locate the compiler and exiting early.

Documentation improvements
Improved description of --set-config.

Fixed broken markup in the manual.

Added a note to the manual that stats = false will disable automatic cleanup.

Fix a bad reference to the “Remote storage backends” section.
2023-03-14 06:30:23 +00:00
gdt a3723a324f devel/ccache*: Adjust comment about xz to modern reality 2023-01-19 15:41:40 +00:00
gutteridge 1888009132 ccache: fix builds on i386 (and possibly other arches)
Addresses PR pkg/57157 from ano(ther)nymous.
2023-01-04 02:26:47 +00:00
wiz 2d257d1e47 ccache: perl is a build dependency
Fix asciidoctor executable name to work for all ruby versions, not
just the current default.
2022-12-09 16:14:12 +00:00
gdt 93b62c52a3 devel/ccache: Find asciidoctor where pkgsrc puts it
Upstream doesn't look for versioned asciidoctor, and unless
pkg_alternatives helpfully hide this, the manpage build fails.
2022-12-09 12:08:56 +00:00
gdt 6a3845187e devel/ccache: Build man page
The man page was lost in the update, due to needing asciidoctor.
However, it built (and thus caused a PLIST error) on machines with
asciidoctor installed.  Depend on asciidoctor, rather than forcing it
off, since this package ought to have a man page.

Tested on NetBSD 9 amd64.
2022-12-09 11:56:47 +00:00
adam 4e9f2e9156 ccache: update compiler requirements 2022-12-06 16:14:50 +00:00
adam 2c901ccb38 ccache: updated to 4.7.4
Ccache 4.7.4

Bug fixes

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 of an error.
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.

Other minor improvements

Improved inode cache logging.

Documentation improvements

Removed stray parenthesis.
Improved description of how header files are handled.
Added a hint about using -fno-pch-timestamp for precompiled headers with Clang.
Removed obsolete description of compiler type “pump”.


More https://ccache.dev/releasenotes.html
2022-12-05 08:29:44 +00:00
wiz 8292204475 *: recursive bump for perl 5.36 2022-06-28 11:30:51 +00:00
nia f27e22519a archivers: Replace RMD160 checksums with BLAKE2s checksums
All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Could not be committed due to merge conflict:
devel/py-traitlets/distinfo

The following distfiles were unfetchable (note: some may be only fetched
conditionally):

./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
2021-10-26 10:13:59 +00:00
nia 2da474aec0 devel: Remove SHA1 hashes for distfiles 2021-10-07 13:38:55 +00:00
wiz 6eae1297d5 *: recursive bump for perl 5.34 2021-05-24 19:49:01 +00:00
adam 5e40e56049 ccache: updated to 3.7.12
ccache 3.7.12

Bug fixes
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.

Other
Improved documentation about sharing a cache on NFS.
Fixed test case failures with old objdump versions.
Fixed test case failures with GCC 4.4.
2020-10-02 08:08:07 +00:00
wiz 00da7815c0 *: bump PKGREVISION for perl-5.32. 2020-08-31 18:06:29 +00:00
adam fce9653893 ccache: updated to 3.7.11
ccache 3.7.11

Bug fixes
Added knowledge about -fprofile-{correction,reorder-functions,values}.
ccache now handles the Intel compiler option -xCODE (where CODE is a processor feature code) correctly.
Added support for NVCC’s -Werror and --Werror options.

Other
ccache’s “Directory is not hashed if using -gz[=zlib]” tests are now skipped for GCC 6.
2020-07-27 16:04:38 +00:00
adam 6971f6829e ccache: updated to 3.7.10
ccache 3.7.10

Bug fixes

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.
2020-06-29 13:40:53 +00:00
adam 0e75225e60 ccache: updated to 3.7.9
ccache 3.7.9

Bug fixes
Fixed replacing of /dev/null when building as root with hard link mode enabled and using -o /dev/null.
Removed incorrect assertion resulting in “ccache: error: Internal error in format” when using -fdebug-prefix-map=X= with X equal to $PWD.

Other
Improved CUDA/NVCC support: Recognize -dc and -x cu options.
Improved name of temporary file used in NFS-safe unlink.
2020-03-31 16:15:34 +00:00
adam 3b3035b030 ccache: updated to 3.7.8
ccache 3.7.8

Bug fixes
Use $PWD instead of the real CWD (current working directory) when checking for CWD in preprocessed output. This fixes a problem when $PWD includes a symlink part and the user has set hash_dir = false.
Rewrote the Windows version of the lockfile routines. This should mitigate several problems with the old implementation.
If localtime_r fails the epoch time is now logged instead of garbage.

Other
Improved error message when a boolean environment variable has an invalid value.
Improved the regression fix in ccache 3.7.5 related to not passing compilation-only options to the preprocessor.
ccache’s PCH test suite now skips running the tests if it detects broken PCH compiler support.
Fixed unit test failure on Windows.
Fixed “stringop-truncation” build warning on Windows.
Improved “x_rename” implementation on Windows.
Improved removal of temporary file when rewriting absolute paths to relative in the dependency file.
Clarified “include_file_ctime sloppiness” in the Performance section in the manual.
2020-03-17 14:49:31 +00:00
adam 54262bfa7a ccache: updated to 3.7.7
ccache 3.7.7
Bug fixes

* Fixed a bug related to object file location in the dependency file (if using -MD or -MMD but not -MF and the build directory is not the same as the source directory then the object file location in the .d file would become incorrect). This fixes regression in ccache 3.7.5 introduced by the bug fix related to EDG-based compilers. Note that this removes support for EDG-based compilers again. (A better fix for this is planned for ccache 4.0.)

* Removed the unify mode since it has bugs and shortcomings that are non-trivial or impossible to fix: it doesn’t work with the direct mode, it doesn’t handle C++ raw strings correctly, it can give false cache hits for .incbin directives, it’s turned off when using -g and it can make line numbers in warning messages and __LINE__ macros incorrect.

* mtime and ctime values are now stored in the manifest files only when sloppy_file_stat is set. This avoids adding superfluous manifest file entries on direct mode cache misses.

* A “Result:” line is now always printed to the log.

* The “cache miss” statistics counter will now be updated for read-only cache misses, making it consistent with the cache hit case.
2020-01-06 16:57:07 +00:00
adam 45caaa7c1e ccache: updated to 3.7.6
ccache 3.7.6

Bug fixes
The opt-in “file_macro sloppiness” mode has been removed so that the input file path now is always included in the direct mode hash. This fixes a bug that could result in false cache hits in an edge case when “file_macro sloppiness” is enabled and several identical source files include a relative header file with the same name but in different directories.

Statistics files are no longer lost when the filesystem of the cache is full.

Bail out on too hard Clang option -MJarg (in addition to the previous bailout of -MJ arg).

Properly handle color diagnostics in the depend mode as well.
2019-11-20 09:38:42 +00:00
adam ca75130ea7 ccache: updated to 3.7.5
3.7.5:
New features
Added support for -MF=arg (with an extra equal sign) as understood by EDG-based compilers.

Bug fixes
Fixed a regression in 3.7.2 that could result in a warning message instead of an error in an edge case related to usage of “-Werror”.
An implicit -MQ is now passed to the preprocessor only if the object file extension is non-standard. This will make it easier to use EDG-based compilers (e.g. GHS) which don’t understand -MQ. (This is a bug fix of the corresponding improvement implemented in ccache 3.4.)
ccache now falls back to running the real compiler instead of failing fataly if an internal temporary file is missing after compilation.
Fixed a crash if localtime returns null pointer in localtime_r replacement.
Fixed header file dependency tracking when building ccache itself.
Fixed warning during configure in out-of-tree build in developer mode.
2019-10-31 10:58:58 +00:00
adam 6c4231b5ee ccache: updated to 3.7.4
ccache 3.7.4
Improvements
Added support for the -gz[=type] compiler option (previously ccache would think that “-gz” alone would enable debug information, thus potentially including the current directory in the hash).
Added support for converting paths like “/c/users/...” into relative paths on Windows.
2019-09-13 08:07:29 +00:00
adam eddecffe60 ccache: updated to 3.7.3
ccache 3.7.3

Bug fixes
The cache size (which is counted in “used disk blocks”) is now correct on filesystems that use more or less disk blocks than conventional filesystems, e.g. ecryptfs or btrfs/zfs with transparent compression. This also fixes a related problem with ccache’s own test suite when run on such file systems.

Fixed a regression in 3.7.2 when using the compiler option “-Werror” and then “-Wno-error” later on the command line.
2019-08-19 10:13:46 +00:00
wiz 84e123ddd2 Bump PKGREVISIONs for perl 5.30.0 2019-08-11 13:17:48 +00:00
nia 3cd7768971 ccache: Update to 3.7.2
Bug fixes

* The compiler option -gdwarf* no longer forces “run_second_cpp = true”.
* Added verification that the value passed to the -o/--set-config option
  is valid.
* Fixed detection of precompiled headers in the depend mode.
* Bail out on too hard Clang option -ftime-trace.
* ccache now updates the correct stats file when adding/updating manifest
  files.
  This bug previously made the file and size statistics counters incorrect
  over time.
* Fixed warnings from Clang about unused arguments during preprocessing.
* Unknown manifest versions are now handled gracefully in --dump-manifest.
* Fixed make check with “funny” locales.

Documentation

* Added a hint about not running autogen.sh when building from a release
  archive.
* Mention that xsltproc is needed when building from the source repository.
2019-07-27 13:40:36 +00:00
adam eb3ecdc8f5 ccache: updated to 3.7.1
Changes 3.7.1:
Fixed a problem when using the compiler option -MF /dev/null.
Long commandlines are now handled gracefully on Windows by using the @file syntax to avoid hitting the commandline size limit.
Fixed complaint from GCC 9’s -Werror=format-overflow when compiling ccache itself.
2019-05-06 15:06:04 +00:00
adam 73e977a049 ccache: updated to 3.7
Changes 3.7:
Fixed crash when the debug mode is enabled and the output file is in a non-writable directory, e.g. when the output file is /dev/null.

Fixed an issue when printing very large log messages to the debug log.

Fixed bugs related to support for -gsplit-dwarf. Previously ccache could produce an incorrect link to the .dwo file in the .o file.

Compilations with /dev/null as the input file are now cached.

ccache has learned how to contruct the object filename if no -o option is given and the source filename does not include a . or ends with a ..

Fixed a temporary file leak when the depend mode is enabled and the compiler produces standard error output.

Fixed a bug in the depend mode where a manifest hash only could be associated with one set of header dependencies.

Manifest files did not get marked as used on direct cache hits, so the LRU cache cleanup would incorrectly remove them eventually. This has been fixed.

The rewriting of absolute paths into relative paths in the dependency file has been enabled in the depend mode as well.

ccache now ignores unknown keys in configuration files for forward compatibility.

Rearranged command-line options into sections in the help text.

Documented the previously undocumented --dump-manifest and --hash-file options (only useful for debugging ccache itself).

Added missing documentation for the command-line option -k/--get-config added in ccache 3.5.

Renamed the --print-config command to --show-config.

Added a new --print-stats command that prints statistics counters in machine-parsable (tab-separated) format.

ccache no longer creates a missing output directory, thus mimicking the compiler behavior for -o out/obj.o when “out” doesn’t exist.

-fdebug-prefix-map=ARG, -ffile-prefix-map=ARG and -fmacro-prefix-map=ARG are now included in the hash, but only the part before “ARG”. This fixes a bug where compiler feature detection of said flags would not work correctly with ccache.

Bail out on too hard compiler option -gtoggle.

Bail out on too hard Clang options --analyze and -analyze.

Improved debug logging of file hashes in depend mode.

Improved handling of various -g* options. In particular, ccache now understands that -g0 cancels out previous -g* options.

Worked around a problem with Automake related to .d files when using the hard link mode.

Added opt-in (at configure time) support for enabling trace logs for profiling ccache itself. See doc/DEVELOPER.md in the code tree for more information

Removed support for Fortran 77 again. Some Fortran support was added in ccache 3.3, but the implementation did not work when Fortran modules are involved.
2019-04-29 17:13:15 +00:00
adam dadfd25fdc ccache: updated to 3.6
ccache 3.6

ccache now has an opt-in “depend mode”. When enabled, ccache never executes the preprocessor, which results in much lower cache miss overhead at the expense of a lower potential cache hit rate. The depend mode is only possible to use when the compiler option -MD or -MMD is used.

Added support for GCC’s -ffile-prefix-map option. The -fmacro-prefix-map option is now also skipped from the hash.

Added support for multiple -fsanitize-blacklist arguments.

ccache now includes the environment variables LANG, LC_ALL, LC_CTYPE and LC_MESSAGES in the hash since they may affect localization of compiler warning messages. Set sloppiness to locale to opt out of this.

Fixed a problem due to Clang overwriting the output file when compiling an assembler file.

Clarified the manual to explain the reasoning behind the “file_macro” sloppiness setting in a better way.

ccache now handles several levels of nonexistent directories when rewriting absolute paths to relative.

A new sloppiness setting clang_index_store makes ccache skip the Clang compiler option -index-store-path and its argument when computing the manifest hash. This is useful if you use Xcode, which uses an index store path derived from the local project path. Note that the index store won’t be updated correctly on cache hits if you enable this option.

Rename sloppiness no_system_headers to system_headers for consistency with other options. no_system_headers can still be used as an (undocumented) alias.

The GCC variables “DEPENDENCIES_OUTPUT” and “SUNPRO_DEPENDENCIES” are now supported correctly.

The algorithm that scans for __DATE_ and __TIME__ tokens in the hashed source code now doesn’t produce false positives for tokens where __DATE__ or __TIME__ is a substring.
2019-01-15 09:04:17 +00:00
adam 561e68e86d ccache: updated to 3.5.1
ccache 3.5.1:
Added missing getopt_long.c source file to release archive.
Fixed (harmless) compiler warnings when building ccache object files.
CFLAGS is no longer passed to the linker when linking ccache.
Improved development mode build flags.
2019-01-04 23:43:23 +00:00
adam 324742bd81 ccache: updated to 3.5
ccache 3.5

Added a boolean debug (CCACHE_DEBUG) configuration option. When enabled, ccache will create per-object debug files that are helpful e.g. when debugging unexpected cache misses. See also the new “Cache debugging” section in the manual.

Renamed CCACHE_CC to CCACHE_COMPILER (keeping the former as a deprecated alias).

Added a new command-line option -k/--get-config that prints the value of a config key.

It is now possible to let ccache hash a precomputed checksum file instead of the full content of a precompiled header. This can save time for large precompiled headers. Note that the build system needs to keep the checksum file in sync with the precompiled header for this to work.

Improved performance substantially when using hash_dir = false on platforms like macOS where getcwd() is slow.

Added “stats updated” timestamp in ccache -s output. This can be useful if you wonder whether ccache actually was used for your last build.

Renamed “stats zero time” to “stats zeroed” and documented it. The counter is also now only present in ccache -s output when ccache -z actually has been called.

The content of the -fsanitize-blacklist file is now included in the hash, so updates to the file will now correctly result in separate cache entries.

It’s now possible to opt out of building and installing man pages when running make install in the source repository.

If the compiler type can’t be detected (e.g. if it is named cc), use safer defaults that won’t trip up Clang.

Made the ccache test suite work on FreeBSD.

Added file_stat_matches_ctime option to disable ctime check if file_stat_matches is enabled.

Made “./configure --without-bundled-zlib” do what’s intended.
2018-10-30 12:03:52 +00:00
adam 007b215fb3 ccache: updated to 3.4.3
ccache 3.4.3

Bug fixes
Fixed a race condition when creating the initial config file in the cache directory.
Bail out on too hard clang option -MJ.
Bail out on too hard option -save-temps=obj.
Handle separate parameter to clang option -target correctly.
Upgraded bundled zlib to version 1.2.11.
2018-09-05 13:22:21 +00:00
adam 7e753a97c3 ccached: updated to 3.4.2
ccache 3.4.2

Bug fixes:

The cleanup algorithm has been fixed to not misbehave when files are removed by another process while the cleanup process is running. Previously, too many files could be removed from the cache if multiple cleanup processes were triggered at the same time, in extreme cases trimming the cache to a much smaller size than the configured limits.

Correctly hash preprocessed headers located in a “.gch directory”. Previously, ccache would not pick up changes to such precompiled headers, risking false positive cache hits.

Fixed build failure when using the bundled zlib sources.

ccache 3.3.5 added a workaround for not triggering Clang errors when a precompiled header’s dependency has an updated timestamp (but identical content). That workaround is now only applied when the compiler is Clang.

Made it possible to perform out-of-source builds in dev mode again.
2018-04-06 08:04:53 +00:00
adam eab4bac5ee ccache: updated to 3.4.1
ccache 3.4.1
Bug fixes
Fixed printing of version number in ccache --version.

ccache 3.4
New features and enhancements
The compiler option form --sysroot arg is now handled like the documented --sysroot=arg form.
Added support for caching .su files generated by GCC flag -fstack-usage.
ccache should now work with distcc’s “pump” wrapper.
The optional unifier is no longer disabled when the direct mode is enabled.
Added support for nvcc compiler options --compiler-bindir/-ccbin, --output-directory/-odir and --libdevice-directory/-ldir.
Boolean environment variable settings no longer accept the following (case-insensitive) values: 0, false, disable and no. All other values are accepted and taken to mean “true”. This is to stop users from setting e.g. CCACHE_DISABLE=0 and then expect the cache to be used.
Improved support for run_second_cpp = false: If combined with passing -fdirectives-only (GCC) or frewrite-includes (Clang) to the compiler, diagnostics warnings and similar will be correct.
An implicit -MQ is now passed to the preprocessor only if the object file extension is non-standard. This should make it easier to use EDG-based compilers (e.g. GHS) which don’t understand -MQ.
ccache now treats an unreadable configuration file just like a missing configuration file.
Documented more pitfalls with enabling hard_links (CCACHE_HARDLINK).
Documented caveats related to colored warnings from compilers.

Bug fixes
File size and number counters are now updated correctly when files are overwritten in the cache, e.g. when using CCACHE_RECACHE.
run_second_cpp is now forced for nvcc.
Fixed how the nvcc options -optf and -odir are handled.
2018-02-12 08:32:11 +00:00
adam 8af7ed94e2 ccache: updated to 3.3.6
ccache 3.3.6

New features and improvements
- Improved instructions on how to get cache hits between different working
  directories.

Bug fixes
- Fixed regression in ccache 3.3.5 related to the `UNCACHED_ERR_FD` feature.
2018-01-30 05:43:19 +00:00
adam 25fa628a76 ccache: updated to 3.3.5
ccache 3.3.5

New features and improvements
* Documented how automatic cache cleanup works.

Bug fixes
* Fixed a regression where the original order of debug options could be lost. This reverts the “Improved parsing of -g* options” feature in ccache 3.3.
* Multiple -fdebug-prefix-map options should now be handled correctly.
* Fixed matching of directories in the ignore_headers_in_manifest configuration option.
* Fixed detection of missing argument to -opt/--options-file.
* ccache now bails out when building a precompiled header if any of the corresponding header files have an updated timestamp. This fixes complaints from clang.
* Fixed a bug related to erroneously storing a dependency file with absolute paths in the cache on a preprocessed hit.
* ccache -c/--cleanup now works like documented: it just recalculates size counters and trims the cache to not exceed the max size and file number limits. Previously, the forced cleanup took “limit_multiple” into account, so that ccache -c/--cleanup by default would trim the cache to 80% of the max limit.
* ccache no longer ignores linker arguments for clang since clang warns about them.
* Plugged a couple of file descriptor leaks.
* Fixed a bug where ccache would skip hashing the compiler argument following a -fno-working-directory, -fworking-directory, -nostdinc, -nostdinc++, -remap or -trigraphs option in preprocessor mode.
2018-01-15 08:07:02 +00:00
adam d72442fabd ccache 3.3.4:
New features and improvements:
* Documented the different cache statistics counters.

Bug fixes:
* Fixed a regression in ccache 3.3 related to potentially bad content of dependency files when compiling identical source code but with different source paths. This was only partially fixed in 3.3.2 and reverts the new “Names of included files are no longer included in the hash of the compiler’s preprocessed output” feature in 3.3.
* Corrected statistics counter for -optf/--options-file failure.
* Fixed undefined behavior warnings in ccache found by -fsanitize=undefined.
2017-02-26 10:17:00 +00:00
adam db6e5d5806 Changes 3.3.3:
* ccache now detects usage of .incbin assembler directives in the source code and avoids caching such compilations.
2016-10-31 10:54:30 +00:00
adam 284d7cf442 Changes 3.3.2:
* Fixed a regression in ccache 3.3 related to potentially bad content of dependency files when compiling identical source code but with different source paths.
* Fixed a regression in ccache 3.3.1: ccache could get confused when using the compiler option -Wp, to pass multiple options to the preprocessor, resulting in missing dependency files from direct mode cache hits.
2016-10-25 12:12:43 +00:00
adam 79819b300b Changes 3.3.1:
* Fixed a problem in the “multiple -arch options” support introduced in 3.3. When using the direct mode (the default), different combinations of -arch options were not detected properly.
* Fixed an issue when compiler option -Wp,-MT,path is used instead of -MT path (and similar for -MF, -MP and -MQ) and run_second_cpp (CCACHE_CPP2) is enabled.
2016-09-20 12:36:19 +00:00
mef 9eea13db2a Updated devel/ccache 3.2.7 to 3.3
---------------------------------
ccache 3.3
----------
Release date: 2016-08-27

Notes
~~~~~
- A C99-compatible compiler is now required to build ccache.

New features and improvements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- The configuration option `run_second_cpp` (`CCACHE_CPP2`) now defaults to
  true. This improves ccache's out-of-the-box experience for compilers that
  can't compile their own preprocessed output with the same outcome as if they
  compiled the real source code directly, e.g. newer versions of GCC and Clang.

- The configuration option `hash_dir` (`CCACHE_HASHDIR`) now defaults to true.

- Added a new `ignore_headers_in_manifest` configuration option, which
  specifies headers that should be ignored in the direct mode.

- Added a new `prefix_command_cpp` (`CCACHE_PREFIX_CPP`) configuration option,
  which specifies one or several prefixes to add to the command line ccache
  uses when invoking the preprocessor.

- Added a new `limit_multiple` (`CCACHE_LIMIT_MULTIPLE`) configuration option,
  which specifies how much of the cache to remove when cleaning.

- Added a new `keep_comments_cpp` (`CCACHE_COMMENTS`) configuration option,
  which tells ccache not to discard the comments before hashing preprocessor
  output. This can be used to check documentation with *-Wdocumentation*.

- Added a new sloppiness option `no_system_headers`, which tells ccache not to
  include system headers in manifest files.

- Added a new statistics counter that tracks the number of performed cleanups
  due to the cache size being over the limit. The value is shown in the output
  of ``ccache -s''.

- Added support for relocating debug info directory using `-fdebug-prefix-map`.
  This allows for cache hits even when `hash_dir` is used in combination with
  `base_dir`.

- Added a new ``cache hit rate'' field to the output of ``ccache -s''.

- Added support for caching compilation of assembler code produced by e.g.
  ``gcc -S file.c''.

- Added support for cuda including the -optf/--options-file option.

- Added support for Fortran 77.

- Added support for multiple `-arch` options to produce "fat binaries".

- Multiple identical `-arch` arguments are now handled without bailing.

- The concatenated form of some long compiler options is now recognized, for
  example when using `-isystemPATH` instead of `-isystem PATH`.

- If hard-linking is enabled and but fails (e.g. due to cross-device linking),
  ccache now falls back to copying instead of running the compiler.

- Made the `hash_dir` option only have effect when generating debug info.

- ccache now knows how to convert absolute paths to relative paths inside
  dependency files when using `base_dir`.

- Improved parsing of `-g*` options.

- Made ccache understand `-Wp,-D*` options.

- ccache now understands the undocumented `-coverage` (only one dash) GCC
  option.

- Names of included files are no longer included in the hash of the compiler's
  preprocessed output. This leads to more potential cache hits when not using
  the direct mode.

- Increased buffer size used when reading file data. This improves performance
  slightly.

Bug fixes
~~~~~~~~~
- Bail out on too hard compiler option `-P`.

- Fixed clang test suite when running on Linux.

- Fixed build and test for MinGW32 and Windows.
2016-08-28 13:44:18 +00:00
mef 607460e153 Updated devel/ccache 3.2.5 to 3.2.7
-----------------------------------
ccache 3.2.7
------------
Release date: 2016-07-20

Bug fixes
~~~~~~~~~
- Fixed a bug which could lead to false cache hits for compiler command lines
  with a missing argument to an option that takes an argument.

- ccache now knows how to work around a glitch in the output of GCC 6's
  preprocessor.

ccache 3.2.6
------------
Release date: 2016-07-12

Bug fixes
~~~~~~~~~
- Fixed build problem on QNX, which lacks ``SA_RESTART''.

- Bail out on compiler option `-fstack-usage` since it creates a `.su` file
  which ccache currently doesn't handle.

- Fixed a bug where (due to ccache rewriting paths) the compiler could choose
  incorrect include files if `CCACHE_BASEDIR` is used and the source file path
  is absolute and is a symlink.
2016-08-09 13:14:17 +00:00
adam 55a8570e84 ccache 3.2.5
New features and improvements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Only pass clang-specific `-stdlib=` to the preprocessor.
- Improved handling of stale NFS handles.
- Made it harder to misinterpret documentation of boolean environment settings'
  semantics.

Bug fixes
~~~~~~~~~
- Include m4 files used by configure.ac in the source dist archives.
- Corrected "Performance" section in the manual regarding `__DATE_`, `__TIME__`
  and `__FILE__` macros.
- Fixed build on Solaris 10+ and AIX 7.
- Fixed failure to create directories on QNX.
- Don't (try to) update manifest file in ``read-only'' and ``read-only direct''
  modes.
- Fixed a bug in caching of `stat` system calls in ``file_stat_matches
  sloppiness mode''.
- Fixed bug in hashing of clang plugins, leading to unnecessary cache misses.
- Fixed --print-config to show ``pch_defines sloppiness''.
- The man page is now built when running ``make install'' from Git repository
  sources.
2016-04-25 10:24:48 +00:00