<div dir="ltr">I've tracked down the source of a bunch of test failures on Windows which are caused by file handle leaks.  The symptom of the problem is that if you run "file a.out" the file is locked after that, and you cannot delete it.  This causes a bunch of tests to fail when "make clean" can't delete the file.  <div><br></div><div>Thas to do with the nature of the Windows kernel and how it treats memory mapped files.  Essentially what is happening is that ModuleList::GetSharedModule() is mmapping the file and intentionally leaking the handle.  So even doing target delete won't free the handle.<div><br></div><div>I'm guessing this is an optimization, but how necessary is it?  Assuming it needs to stay, would it be reasonable for me to disable this intentional leak for Windows behind a preprocessor definition, make target delete remove the module from the shared module list, and update the test suite to always free created targets on teardown?</div></div></div>