<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, May 20, 2015 at 5:59 PM, Thompson, John <span dir="ltr"><<a href="mailto:John_Thompson@playstation.sony.com" target="_blank">John_Thompson@playstation.sony.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal">Hi,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">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:<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p>test.cpp:2:2: warning: missing submodule '_Builtin_intrinsics.intel.x86intrin'<u></u><u></u></p>
<p>      [-Wincomplete-umbrella]<u></u><u></u></p>
<p>#include <x86intrin.h><u></u><u></u></p>
<p>^       ~<u></u><u></u></p>
<p>1 warning generated.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">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.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">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?</p></div></div></blockquote><div><br></div><div>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?</div></div></div></div>