diff --git a/osdep/compiler.h b/osdep/compiler.h index a507cd02c2..0edea7de4a 100644 --- a/osdep/compiler.h +++ b/osdep/compiler.h @@ -10,7 +10,7 @@ /** Use gcc attribute to check printf fns. a1 is the 1-based index of * the parameter containing the format, and a2 the index of the first * argument. **/ -#ifdef __MINGW32__ +#if defined(__MINGW32__) && !defined(__clang__) // MinGW maps "printf" to the non-standard MSVCRT functions, even if // __USE_MINGW_ANSI_STDIO is defined and set to 1. We need to use "gnu_printf", // which isn't necessarily available on other GCC compatible compilers. diff --git a/ta/ta.h b/ta/ta.h index 8fbb9ea171..05564be73b 100644 --- a/ta/ta.h +++ b/ta/ta.h @@ -27,7 +27,7 @@ #endif // Broken crap with __USE_MINGW_ANSI_STDIO -#ifdef __MINGW32__ +#if defined(__MINGW32__) && defined(__GNUC__) && !defined(__clang__) #undef TA_PRF #define TA_PRF(a1, a2) __attribute__ ((format (gnu_printf, a1, a2))) #endif diff --git a/wscript b/wscript index c4d0c9c8b0..2b0de8bcd5 100644 --- a/wscript +++ b/wscript @@ -119,7 +119,7 @@ main_dependencies = [ 'name': 'mingw', 'desc': 'MinGW', 'deps': [ 'os-win32' ], - 'func': check_statement('stddef.h', 'int x = __MINGW32__;' + 'func': check_statement('stdlib.h', 'int x = __MINGW32__;' 'int y = __MINGW64_VERSION_MAJOR'), }, { 'name': 'posix',