Add flag to omit self-recompilation avoidance information from interface files
Interface files contain two kinds of information
- The "ABI hash" which records when the externally visible interface has change (ie a new function, a decl has changed etc). This is used by modules which import the interface to determine whether the module has changed since last time we looked at it.
- Other information which determines if we try to recompile the module, whether we need to recompile it or not. For example, information about the source hash of the module, what the module imports, what files the module depends on, what flags the module was compiled with.
The proposal is to add a flag which omits (2) from an interface file for the situation where you know you will never attempt to recompile a module. For example, if you are building a package for distribution. The motivation is that this reduces the surface area for interface file non-determinism to sneak into the build. See #10424 for a workaround for an issue to do with information for (2).