diff --git a/configure.ac b/configure.ac index 592bc90ec35383fbc00c749b7a22ac3b42cd99b8..280ed5f4dde122d517142ce542098e48c66cd69f 100644 --- a/configure.ac +++ b/configure.ac @@ -453,6 +453,24 @@ AM_ICONV VLC_ADD_CFLAGS([libvlc],[${INCICONV}]) VLC_ADD_LIBS([libvlc],[${LTLIBICONV}]) +dnl Check for broken versions of mingw-runtime compatability library +if test "${SYS}" = "mingw32" +then + AC_MSG_CHECKING(for broken mingw-runtime) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include <_mingw.h> +#if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 14) +# error Attempting to use mingw-runtime with broken vsnprintf support +#endif + ]])], + [AC_MSG_RESULT([Ok])], + [AC_MSG_ERROR([Broken mingw-runtime, need > 3.13])], +]) + dnl force use of mingw provided c99 *printf over msvcrt + CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1" + CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1" +fi + dnl Check for the need to include the mingwex lib for mingw32 if test "${SYS}" = "mingw32" then diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h index 15172b22671df3b68fefe88dfe4438c03f89fc62..0294c3d76717196ecfedc8e1be3cd746357b1e4e 100644 --- a/include/vlc_fixups.h +++ b/include/vlc_fixups.h @@ -26,6 +26,19 @@ #ifndef LIBVLC_FIXUPS_H # define LIBVLC_FIXUPS_H 1 +#ifdef __MINGW32_VERSION +# if __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 14 +# error This mingw-runtime is too old, it has a broken vsnprintf +# endif +/* mingw-runtime provides the whole printf family in a c99 compliant way. */ +/* the way to enable this is to define __USE_MINGW_ANSI_STDIO, or something + * such as _ISOC99_SOURCE; the former is done by configure.ac */ +/* This isn't done here, since some modules don't include config.h and + * therefore this as the first include file */ +#elif defined UNDER_CE +# error Window CE support for *printf needs fixing. +#endif + #ifndef HAVE_STRDUP # include <string.h> # include <stdlib.h>