Synopsis
WARNING EC1193: Probable future cache miss: …
(Starting with CloudBees Build Acceleration 8.0.0, emake no longer issues this warning.)
Description
The act of parsing makefiles changed the filesystem in such a way that, the next time those makefiles are parsed, the resulting make rules, make variables, and so forth might come out differently.
Unless some rule body or post-build action restores the relevant files, the next build will not replay the cached parse result because it no longer applies.
Reasons
Your makefile contained $(shell …)
or some other construct that
makes changes to files while the makefiles are being parsed (rather than
during execution of rule bodies).
Furthermore, at least one affected file was read during makefile
parsing, usually because it was a makefile or because it was read by a
$(shell …)
invocation. Therefore the result of parsing makefiles
may depend upon that file, and change from build to build. If so, then
replaying a cached result would be wrong.
Fixes
First of all, the cache miss is only “probable”, not certain. Perhaps your build is part of a continuous integration system that checks out a fresh workspace from source control before every build. In that case you might still get cache hits, because the changes made during makefile parsing are reverted.
If you are getting cache hits, and wish to suppress this warning, then
use --emake-hide-warning=1193
.
However, if you are getting frequent cache misses and wish to improve performance, you could look into which files are being changed during makefile parsing, and why. Perhaps the changes are unnecessary, and can be avoided.
But if the filesystem changes are necessary, and you are certain that
they do not affect make rules, make variables, or other results of
makefile parsing, then you can use
--emake-parse-avoidance-ignore-path=…
to ignore all changes to
those files.