diff --git a/src/emu/delegate.h b/src/emu/delegate.h index 3b7e92cc75d..612fbe691aa 100644 --- a/src/emu/delegate.h +++ b/src/emu/delegate.h @@ -93,7 +93,12 @@ // select which one we will be using #if defined(__GNUC__) -#define USE_DELEGATE_TYPE DELEGATE_TYPE_INTERNAL + /* does not work in versions over 4.7.x of 32bit MINGW */ + #if ((defined(__MINGW32__) && !defined(__x86_64) && defined(__i386__) && (__GNUC__ == 4) && (__GNUC_MINOR__ >= 7))) + #define USE_DELEGATE_TYPE DELEGATE_TYPE_COMPATIBLE + #else + #define USE_DELEGATE_TYPE DELEGATE_TYPE_INTERNAL + #endif #else #define USE_DELEGATE_TYPE DELEGATE_TYPE_COMPATIBLE #endif diff --git a/src/osd/windows/drawgdi.c b/src/osd/windows/drawgdi.c index 7e03ccb1acc..2b7eae3b5e2 100644 --- a/src/osd/windows/drawgdi.c +++ b/src/osd/windows/drawgdi.c @@ -82,7 +82,7 @@ static void drawgdi_exit(void) static int drawgdi_window_init(win_window_info *window) { gdi_info *gdi; - int i; + UINT8 i; // allocate memory for our structures gdi = global_alloc_clear(gdi_info); diff --git a/src/osd/windows/winwork.c b/src/osd/windows/winwork.c index cfe1104053a..b8c9b227428 100644 --- a/src/osd/windows/winwork.c +++ b/src/osd/windows/winwork.c @@ -53,6 +53,10 @@ #define end_timing(v) do { } while (0) #endif +#if __GNUC__ && defined(__i386__) && !defined(__x86_64) +#undef YieldProcessor +#endif + #ifndef YieldProcessor #ifdef __GNUC__ INLINE void YieldProcessor(void)