[llvm-dev] Compilation error with MinGW
Yaron Keren via llvm-dev
llvm-dev at lists.llvm.org
Sun Aug 30 11:48:52 PDT 2015
Easy to do at build time, something like
#include <stdlib.h>
#if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR)
#error MinGW.org not supported. Please use Mingw-w64.
#endif
Probably could go into CMakeLists.txt somehow.
2015-08-30 21:35 GMT+03:00 Anton Korobeynikov <anton at korobeynikov.info>:
> Can we somehow distinguish between mingw and mingw-w64 at configure
> time and error properly?
>
> On Sun, Aug 30, 2015 at 9:25 PM, Yaron Keren via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
> > This is an outdated version, please download mingw-w64 from
> > https://sourceforge.net/projects/mingw-w64/
> >
> > 2015-08-30 20:57 GMT+03:00 Slycelote <slycelot at yandex.ru>:
> >>
> >> I use the one from mingw.org, installed by the recommended way with
> >> mingw-get-setup.exe.
> >>
> >> Sly.
> >>
> >> On 30.08.2015 06:10, Yaron Keren wrote:
> >> > Which mingw distribution exactly do you use?
> >> >
> >> > 2015-08-30 0:46 GMT+03:00 Slycelote via llvm-dev
> >> > <llvm-dev at lists.llvm.org>:
> >> >
> >> >> Hi all,
> >> >>
> >> >> I'm hitting the same problem as in this[1] thread. I use release_37
> >> >> branch on 64-bit Windows 7.
> >> >> The problem is here:
> >> >>
> >> >> #ifdef __MINGW32__
> >> >> #include <imagehlp.h>
> >> >> #else
> >> >> #include <dbghelp.h>
> >> >> #endif
> >> >>
> >> >> <skip>
> >> >>
> >> >> typedef BOOL (WINAPI
> >> >>
> >> >>
> *fpEnumerateLoadedModules)(HANDLE,PENUMLOADED_MODULES_CALLBACK64,PVOID);
> >> >>
> >> >> imagehlp.h doesn't define PENUMLOADED_MODULES_CALLBACK64 type.
> >> >> I fixed it on my side by the patch in the bottom of this email, but I
> >> >> don't know if it's the right approach in general.
> >> >>
> >> >> [1] http://comments.gmane.org/gmane.comp.compilers.clang.user/709
> >> >>
> >> >> -- Sly.
> >> >>
> >> >>
> >> >> diff --git a/lib/Support/Windows/DynamicLibrary.inc
> >> >> b/lib/Support/Windows/DynamicLibrary.inc
> >> >> index d38f197..b4c8f1b 100644
> >> >> --- a/lib/Support/Windows/DynamicLibrary.inc
> >> >> +++ b/lib/Support/Windows/DynamicLibrary.inc
> >> >> @@ -31,7 +31,16 @@ using namespace sys;
> >> >> //=== and must not be UNIX code.
> >> >>
> >> >>
> >> >>
> //===----------------------------------------------------------------------===//
> >> >>
> >> >> +#if defined(__MINGW32__) and !defined(_WIN64)
> >> >> +typedef BOOL (WINAPI
> >> >>
> *fpEnumerateLoadedModules)(HANDLE,PENUMLOADED_MODULES_CALLBACK,PVOID);
> >> >> +static const char* sEnumerateLoadedModules =
> "EnumerateLoadedModules";
> >> >> +typedef DWORD ModuleOffset;
> >> >> +#else
> >> >> typedef BOOL (WINAPI
> >> >>
> >> >>
> *fpEnumerateLoadedModules)(HANDLE,PENUMLOADED_MODULES_CALLBACK64,PVOID);
> >> >> +static const char* sEnumerateLoadedModules =
> >> >> "EnumerateLoadedModules64";
> >> >> +typedef DWORD64 ModuleOffset;
> >> >> +#endif
> >> >> +
> >> >> static fpEnumerateLoadedModules fEnumerateLoadedModules;
> >> >> static DenseSet<HMODULE> *OpenedHandles;
> >> >>
> >> >> @@ -39,13 +48,13 @@ static bool loadDebugHelp(void) {
> >> >> HMODULE hLib = ::LoadLibraryW(L"Dbghelp.dll");
> >> >> if (hLib) {
> >> >> fEnumerateLoadedModules = (fpEnumerateLoadedModules)
> >> >> - ::GetProcAddress(hLib, "EnumerateLoadedModules64");
> >> >> + ::GetProcAddress(hLib, sEnumerateLoadedModules);
> >> >> }
> >> >> return fEnumerateLoadedModules != 0;
> >> >> }
> >> >>
> >> >> static BOOL CALLBACK
> >> >> -ELM_Callback(WIN32_ELMCB_PCSTR ModuleName, DWORD64 ModuleBase,
> >> >> +ELM_Callback(WIN32_ELMCB_PCSTR ModuleName, ModuleOffset ModuleBase,
> >> >> ULONG ModuleSize, PVOID UserContext) {
> >> >> OpenedHandles->insert((HMODULE)ModuleBase);
> >> >> return TRUE;
> >> >>
> >> >> _______________________________________________
> >> >> LLVM Developers mailing list
> >> >> llvm-dev at lists.llvm.org
> >> >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >> >>
> >>
> >
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > llvm-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >
>
>
>
> --
> With best regards, Anton Korobeynikov
> Faculty of Mathematics and Mechanics, Saint Petersburg State University
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150830/5d55439a/attachment.html>
More information about the llvm-dev
mailing list