EC1193

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.