From: Joel Rosdahl Date: Sat, 14 Mar 2020 09:18:53 +0000 (+0100) Subject: doc: Clarify include_file_ctime sloppiness in the Performance section X-Git-Tag: v3.7.8~2 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=fc8182ae95af0f46fc8f71ab29e91534636325b7;p=thirdparty%2Fccache.git doc: Clarify include_file_ctime sloppiness in the Performance section --- diff --git a/doc/MANUAL.adoc b/doc/MANUAL.adoc index 409d56084..19fc85702 100644 --- a/doc/MANUAL.adoc +++ b/doc/MANUAL.adoc @@ -570,7 +570,7 @@ still has to do _some_ preprocessing (like macros). Ignore ctimes when *file_stat_matches* is enabled. This can be useful when backdating files' mtimes in a controlled way. *include_file_ctime*:: - By default, ccache also will not cache a file if it includes a header whose + By default, ccache will not cache a file if it includes a header whose ctime is too new. This option disables that check. *include_file_mtime*:: By default, ccache will not cache a file if it includes a header whose @@ -1189,13 +1189,13 @@ problems and what may be done to increase the hit rate: setting. ** A modification time of one of the include files is too new (created the same second as the compilation is being done). This check is made to avoid a race - condition. To fix this, create the include file earlier in the build - process, if possible, or set *sloppiness* to *include_file_mtime* if you are - willing to take the risk. (The race condition consists of these events: the - preprocessor is run; an include file is modified by someone; the new include - file is hashed by ccache; the real compiler is run on the preprocessor's - output, which contains data from the old header file; the wrong object file - is stored in the cache.) + condition. To fix this, create the include file earlier in the build process, + if possible, or set *sloppiness* to *include_file_ctime, include_file_mtime* + if you are willing to take the risk. (The race condition consists of these + events: the preprocessor is run; an include file is modified by someone; the + new include file is hashed by ccache; the real compiler is run on the + preprocessor's output, which contains data from the old header file; the + wrong object file is stored in the cache.) ** The `__TIME__` preprocessor macro is (potentially) being used. ccache turns off direct mode if `__TIME__` is present in the source code. This is done as a safety measure since the string indicates that a `__TIME__` macro _may_