<div dir="rtl"><div dir="ltr">Easy to do at build time, something like</div><div dir="ltr"><br></div><div dir="ltr"><pre style="font-family:courier,'courier new',monospace;font-size:14px;white-space:pre-wrap;word-wrap:break-word;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);line-height:19.6000003814697px"><span style="line-height:19.6000003814697px">#include <stdlib.h></span></pre><pre style="font-family:courier,'courier new',monospace;font-size:14px;white-space:pre-wrap;word-wrap:break-word;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);line-height:19.6000003814697px">#if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR)</pre><pre style="font-family:courier,'courier new',monospace;font-size:14px;white-space:pre-wrap;word-wrap:break-word;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);line-height:19.6000003814697px">#error MinGW.org not supported. Please use Mingw-w64.
#endif
</pre><div><br></div><div>Probably could go into CMakeLists.txt somehow.</div></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div dir="ltr">2015-08-30 21:35 GMT+03:00 Anton Korobeynikov <span dir="ltr"><<a href="mailto:anton@korobeynikov.info" target="_blank">anton@korobeynikov.info</a>></span>:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Can we somehow distinguish between mingw and mingw-w64 at configure<br>
time and error properly?<br>
<div class="HOEnZb"><div class="h5"><br>
On Sun, Aug 30, 2015 at 9:25 PM, Yaron Keren via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
> This is an outdated version, please download mingw-w64 from<br>
> <a href="https://sourceforge.net/projects/mingw-w64/" rel="noreferrer" target="_blank">https://sourceforge.net/projects/mingw-w64/</a><br>
><br>
> 2015-08-30 20:57 GMT+03:00 Slycelote <<a href="mailto:slycelot@yandex.ru">slycelot@yandex.ru</a>>:<br>
>><br>
>> I use the one from <a href="http://mingw.org" rel="noreferrer" target="_blank">mingw.org</a>, installed by the recommended way with<br>
>> mingw-get-setup.exe.<br>
>><br>
>> Sly.<br>
>><br>
>> On 30.08.2015 06:10, Yaron Keren wrote:<br>
>> > Which mingw distribution exactly do you use?<br>
>> ><br>
>> > 2015-08-30 0:46 GMT+03:00 Slycelote via llvm-dev<br>
>> > <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>>:<br>
>> ><br>
>> >> 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>
>> >><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>
>> >> //===----------------------------------------------------------------------===//<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>
>> >><br>
>> >> *fpEnumerateLoadedModules)(HANDLE,PENUMLOADED_MODULES_CALLBACK64,PVOID);<br>
>> >> +static const char* sEnumerateLoadedModules =<br>
>> >> "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>
>> >><br>
>><br>
><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>
><br>
<br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
With best regards, Anton Korobeynikov<br>
Faculty of Mathematics and Mechanics, Saint Petersburg State University<br>
</font></span></blockquote></div><br></div>