<div dir="rtl"><div dir="ltr">Which mingw distribution exactly do you use?</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div dir="ltr">2015-08-30 0:46 GMT+03:00 Slycelote via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span>:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
I'm hitting the same problem as in this[1] thread. I use release_37<br>
branch on 64-bit Windows 7.<br>
The problem is here:<br>
<br>
#ifdef __MINGW32__<br>
 #include <imagehlp.h><br>
#else<br>
 #include <dbghelp.h><br>
#endif<br>
<br>
<skip><br>
<br>
typedef BOOL (WINAPI<br>
*fpEnumerateLoadedModules)(HANDLE,PENUMLOADED_MODULES_CALLBACK64,PVOID);<br>
<br>
imagehlp.h doesn't define PENUMLOADED_MODULES_CALLBACK64 type.<br>
I fixed it on my side by the patch in the bottom of this email, but I<br>
don't know if it's the right approach in general.<br>
<br>
[1] <a href="http://comments.gmane.org/gmane.comp.compilers.clang.user/709" rel="noreferrer" target="_blank">http://comments.gmane.org/gmane.comp.compilers.clang.user/709</a><br>
<br>
-- Sly.<br>
<br>
<br>
diff --git a/lib/Support/Windows/DynamicLibrary.inc<br>
b/lib/Support/Windows/DynamicLibrary.inc<br>
index d38f197..b4c8f1b 100644<br>
--- a/lib/Support/Windows/DynamicLibrary.inc<br>
+++ b/lib/Support/Windows/DynamicLibrary.inc<br>
@@ -31,7 +31,16 @@ using namespace sys;<br>
 //===          and must not be UNIX code.<br>
 //===----------------------------------------------------------------------===//<br>
<br>
+#if defined(__MINGW32__) and !defined(_WIN64)<br>
+typedef BOOL (WINAPI<br>
*fpEnumerateLoadedModules)(HANDLE,PENUMLOADED_MODULES_CALLBACK,PVOID);<br>
+static const char* sEnumerateLoadedModules = "EnumerateLoadedModules";<br>
+typedef DWORD ModuleOffset;<br>
+#else<br>
 typedef BOOL (WINAPI<br>
*fpEnumerateLoadedModules)(HANDLE,PENUMLOADED_MODULES_CALLBACK64,PVOID);<br>
+static const char* sEnumerateLoadedModules = "EnumerateLoadedModules64";<br>
+typedef DWORD64 ModuleOffset;<br>
+#endif<br>
+<br>
 static fpEnumerateLoadedModules fEnumerateLoadedModules;<br>
 static DenseSet<HMODULE> *OpenedHandles;<br>
<br>
@@ -39,13 +48,13 @@ static bool loadDebugHelp(void) {<br>
   HMODULE hLib = ::LoadLibraryW(L"Dbghelp.dll");<br>
   if (hLib) {<br>
     fEnumerateLoadedModules = (fpEnumerateLoadedModules)<br>
-      ::GetProcAddress(hLib, "EnumerateLoadedModules64");<br>
+      ::GetProcAddress(hLib, sEnumerateLoadedModules);<br>
   }<br>
   return fEnumerateLoadedModules != 0;<br>
 }<br>
<br>
 static BOOL CALLBACK<br>
-ELM_Callback(WIN32_ELMCB_PCSTR ModuleName, DWORD64 ModuleBase,<br>
+ELM_Callback(WIN32_ELMCB_PCSTR ModuleName, ModuleOffset ModuleBase,<br>
              ULONG ModuleSize, PVOID UserContext) {<br>
   OpenedHandles->insert((HMODULE)ModuleBase);<br>
   return TRUE;<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div><br></div>