From 418e341b32d307b4cd8cc4fe5931b09975fa40c8 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 29 Aug 2017 18:27:46 +0200 Subject: [PATCH] Patches to make it possible to compile with mingw, pt. 1 --- Common/Atomic_Win32.h | 4 ++++ Common/Common.h | 2 ++ Common/ConsoleListener.cpp | 2 +- Common/FileUtil.h | 2 ++ Common/MsgHandler.h | 2 +- 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Common/Atomic_Win32.h b/Common/Atomic_Win32.h index e15101733..7040deb80 100644 --- a/Common/Atomic_Win32.h +++ b/Common/Atomic_Win32.h @@ -88,6 +88,10 @@ inline void AtomicStoreRelease(volatile T& dest, U value) dest = (T)value; // 32-bit writes are always atomic } +#ifdef __MINGW32__ +void *_InterlockedExchangePointer_acq(void *volatile *, void volatile *); +#endif + template inline T* AtomicExchangeAcquire(T* volatile& loc, U newval) { diff --git a/Common/Common.h b/Common/Common.h index f93a71c46..0125068dc 100644 --- a/Common/Common.h +++ b/Common/Common.h @@ -64,7 +64,9 @@ private: // Check MSC ver #if !defined _MSC_VER || _MSC_VER <= 1000 +#ifndef __MINGW32__ #error needs at least version 1000 of MSC +#endif #endif // Memory leak checks diff --git a/Common/ConsoleListener.cpp b/Common/ConsoleListener.cpp index 7f9e0a7f7..b969b6808 100644 --- a/Common/ConsoleListener.cpp +++ b/Common/ConsoleListener.cpp @@ -77,7 +77,7 @@ ConsoleListener::~ConsoleListener() Close(); } -#ifdef _WIN32 +#if defined(_WIN32) && !defined(__MINGW32__) // Handle console event bool WINAPI ConsoleHandler(DWORD msgType) { diff --git a/Common/FileUtil.h b/Common/FileUtil.h index f0ce75001..fa132b931 100644 --- a/Common/FileUtil.h +++ b/Common/FileUtil.h @@ -26,12 +26,14 @@ #include "Common.h" #ifdef _WIN32 +#ifndef __MINGW32__ inline struct tm* localtime_r(const time_t *clock, struct tm *result) { if (localtime_s(result, clock) == 0) return result; return NULL; } #endif +#endif namespace File { diff --git a/Common/MsgHandler.h b/Common/MsgHandler.h index 97e865bed..75e8137e1 100644 --- a/Common/MsgHandler.h +++ b/Common/MsgHandler.h @@ -33,7 +33,7 @@ extern bool MsgAlert(bool yes_no, int Style, const char* format, ...) void SetEnableAlert(bool enable); #ifndef GEKKO -#ifdef _WIN32 +#if defined(_WIN32) && !defined(__MINGW32__) #define PanicAlert(format, ...) MsgAlert(false, WARNING, format, __VA_ARGS__) #define PanicYesNo(format, ...) MsgAlert(true, WARNING, format, __VA_ARGS__) #else