./devel/ccache, Cache for C/C++ compilers

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 3.6, Package name: ccache-3.6, Maintainer: pkgsrc-users

ccache is a compiler cache. It acts as a caching pre-processor
to C/C++ compilers, using the -E compiler switch and a hash to
detect when a compilation can be satisfied from cache. This
often results in a 5 to 10 times speedup in common compilations.

Required to build:

Master sites:

SHA1: 921017434c603c644d735e8ed7b4a9f8e5325bac
RMD160: eaadcb7dc8da3e02c67eb23b023d51a005c15faa
Filesize: 370.533 KB

Version history: (Expand)

CVS history: (Expand)

   2019-01-15 10:04:17 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
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.

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-05 00:43:23 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
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.
   2018-10-30 13:03:52 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
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 \ 

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-09-05 15:22:21 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
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-04-06 10:04:53 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
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-02-12 09:32:11 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
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-01-30 06:43:19 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
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

Bug fixes
- Fixed regression in ccache 3.3.5 related to the `UNCACHED_ERR_FD` feature.
   2018-01-15 09:07:02 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
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 \ 
* 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 \ 
* 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.