[cfe-dev] Changing module maps

blangmuir at apple.com blangmuir at apple.com
Thu May 21 14:23:27 PDT 2015


> On May 20, 2015, at 6:14 PM, Richard Smith <richard at metafoo.co.uk> wrote:
> 
> On Wed, May 20, 2015 at 5:59 PM, Thompson, John <John_Thompson at playstation.sony.com <mailto:John_Thompson at playstation.sony.com>> wrote:
> Hi,
> 
>  
> 
> I’ve experienced a few situations where I’ve been changing a module map during development, or passing module maps to others to try, who then get mysterious warnings or errors, such as:
> 
>  
> 
> test.cpp:2:2: warning: missing submodule '_Builtin_intrinsics.intel.x86intrin'
> 
>       [-Wincomplete-umbrella]
> 
> #include <x86intrin.h>
> 
> ^       ~
> 
> 1 warning generated.
> 
>  
> 
> Sometimes clang detects it, and issues a relevant warning.  Other times it does not.  (Perhaps due to a time tag being earlier?)  The recovery is to delete the module cache manually.
> 
>  
> 
> Is there something we could do to better detect a changed module map, and perhaps even better, also automatically delete the prior module cache to avoid potential problems?  Checksum/CRC the module map?  Use size and file time?
> 
> 
> We do these things, but the checks are turned off by default for system modules (to avoid stat'ing all the system headers on every compile). I think there's a flag to turn on the checks even for system modules, -fmodules-validate-system-headers I think?

Maybe we should flip the default, and make the unsafe behaviour opt-in?  IDEs and build systems can also use -fmodules-validate-once-per-build-session to avoid unnecessary re-checking without making it hard to edit system module maps.

> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150521/81e38751/attachment.html>


More information about the cfe-dev mailing list