From 40b626fd9b58e2975cff8dec202848a7bce41a9f Mon Sep 17 00:00:00 2001 From: James Ross-Gowan Date: Thu, 17 Nov 2016 22:46:18 +1100 Subject: build: fix compilation with mingw-w64/Clang This fixes the build in mingw-w64/Clang on MSYS2. It also disables the use of gnu_printf in Clang, which was what was causing most of the warnings. The Clang-compiled mpv binary appears to work, but there are no guarantees yet, since until now mpv has only been tested with mingw-w64/GCC on Windows. Fixes #3800 --- osdep/compiler.h | 2 +- ta/ta.h | 2 +- wscript | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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', -- cgit v1.2.3