Fix build on mingw-w64.
authorAnton Korobeynikov <asl@math.spbu.ru>
Fri, 21 Oct 2011 09:38:50 +0000 (09:38 +0000)
committerAnton Korobeynikov <asl@math.spbu.ru>
Fri, 21 Oct 2011 09:38:50 +0000 (09:38 +0000)
Patch by Ruben Van Boxem!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142646 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/Windows/Signals.inc

index 473168edfcf6f5ea4d7fa06988af09c4fb2c65f7..0d4b8a26b0232bcfa063830216bb0f8efdaf54c4 100644 (file)
  #pragma GCC diagnostic ignored "-Wformat"
  #pragma GCC diagnostic ignored "-Wformat-extra-args"
 
  #pragma GCC diagnostic ignored "-Wformat"
  #pragma GCC diagnostic ignored "-Wformat-extra-args"
 
- // MinGW does not have updated support for the 64-bit versions of the DebugHlp
- // APIs. So we will have to load them manually. The structures and method
- // signatures were pulled from DbgHelp.h in the Windows Platform SDK, and
- // adjusted for brevity.
+ #if !defined(__MINGW64_VERSION_MAJOR)
+ // MinGW.org does not have updated support for the 64-bit versions of the
+ // DebugHlp APIs. So we will have to load them manually. The structures and
+ // method signatures were pulled from DbgHelp.h in the Windows Platform SDK,
+ // and adjusted for brevity.
  typedef struct _IMAGEHLP_LINE64 {
    DWORD    SizeOfStruct;
    PVOID    Key;
  typedef struct _IMAGEHLP_LINE64 {
    DWORD    SizeOfStruct;
    PVOID    Key;
@@ -147,6 +148,7 @@ static bool load64BitDebugHelp(void) {
   }
   return StackWalk64 != NULL;
 }
   }
   return StackWalk64 != NULL;
 }
+ #endif // !defined(__MINGW64_VERSION_MAJOR)
 #endif // __MINGW32__
 
 // Forward declare.
 #endif // __MINGW32__
 
 // Forward declare.
@@ -207,8 +209,8 @@ static int CRTReportHook(int ReportType, char *Message, int *Return) {
 #endif
 
 static void RegisterHandler() {
 #endif
 
 static void RegisterHandler() {
-#if __MINGW32__
-  // On MinGW, we need to load up the symbols explicitly, because the
+#if __MINGW32__ && !defined(__MINGW64_VERSION_MAJOR)
+  // On MinGW.org, we need to load up the symbols explicitly, because the
   // Win32 framework they include does not have support for the 64-bit
   // versions of the APIs we need.  If we cannot load up the APIs (which
   // would be unexpected as they should exist on every version of Windows
   // Win32 framework they include does not have support for the 64-bit
   // versions of the APIs we need.  If we cannot load up the APIs (which
   // would be unexpected as they should exist on every version of Windows