]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commit
ccache.conf: Add include_file_ctime to sloppiness
authorFabio Berton <fabio.berton@criticaltechworks.com>
Sun, 23 Feb 2025 10:19:14 +0000 (10:19 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 25 Feb 2025 23:18:17 +0000 (23:18 +0000)
commit4899698297c7783e02aba5388e0469cc83bd2f70
treed058bf3c603932ced206a8ae7f1f9cb4e6c4c9a2
parent84fa232cc1b50f0d15c090377659d6aa7a065b1d
ccache.conf: Add include_file_ctime to sloppiness

When multiple recipes are built in parallel, Ccache sometimes refuses to
lookup some objects in cache, leading to undesired cache misses. The
root cause of this is an interaction between the way how bitbake
constructs a recipe sysroot and Ccache's `include_file_ctime` check.

Whenever bitbake creates a recipe's sysroot it hardlinks the files
provided by a recipes dependencies. Adding a hardlink to a file changes
it's ctime which in turn leads Ccache to believe that the file was
modified thus aborting the cache lookup.

To avoid this situation, add `include_file_ctime` to the list of checks
that should be ignored using the Ccache sloppiness configuration option
[1].

Example of a log entry that Ccache ignores a file:
/
|recipe-sysroot/usr/include/bits/pthread_stack_min.h had status change
|near or after invocation (ctime 1739822508.107677255, invocation time
|1739822507.970071107)
\

1 - https://ccache.dev/manual/4.10.2.html#config_sloppiness

Signed-off-by: Fabio Berton <fabio.berton@criticaltechworks.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/conf/ccache.conf