From 113679ff59e20530c621051d0aceb1876a49c45d Mon Sep 17 00:00:00 2001 From: Redirect 'Slash' NIL Date: Mon, 19 Oct 2009 09:49:34 -0700 Subject: [PATCH] corrective fix for MinGW GNU C99 printf compliance Compilation on cygwin, using gcc v3 with option -mno-cygwin, currently produces a large number of the following warnings: warning: `gnu_printf' is an unrecognized format function type These have been introduced with the recent MinGW GNU C99 printf compliance patch, as gnu_printf was only introduced with gcc v4.4 and is not recognized with earlier versions. The attached fix adds gcc version detection to the previous patch to avoid the problem. --- src/helper/command.h | 7 ++++--- src/helper/log.h | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/helper/command.h b/src/helper/command.h index c574efd507..ba825bcb48 100644 --- a/src/helper/command.h +++ b/src/helper/command.h @@ -35,9 +35,10 @@ #include "jim.h" #endif -/* To achieve C99 printf compatibility in MinGW, gnu_printf should */ -/* be used for __attribute__((format( ... ))) */ -#ifdef IS_MINGW +/* To achieve C99 printf compatibility in MinGW, gnu_printf should be + * used for __attribute__((format( ... ))), with GCC v4.4 or later + */ +#if (defined(IS_MINGW) && (((__GNUC__ << 16) + __GNUC_MINOR__) >= 0x00040004)) #define PRINTF_ATTRIBUTE_FORMAT gnu_printf #else #define PRINTF_ATTRIBUTE_FORMAT printf diff --git a/src/helper/log.h b/src/helper/log.h index 8f6ac7706d..f43e1e6cb0 100644 --- a/src/helper/log.h +++ b/src/helper/log.h @@ -28,9 +28,10 @@ #include "command.h" -/* To achieve C99 printf compatibility in MinGW, gnu_printf should */ -/* be used for __attribute__((format( ... ))) */ -#ifdef IS_MINGW +/* To achieve C99 printf compatibility in MinGW, gnu_printf should be + * used for __attribute__((format( ... ))), with GCC v4.4 or later + */ +#if (defined(IS_MINGW) && (((__GNUC__ << 16) + __GNUC_MINOR__) >= 0x00040004)) #define PRINTF_ATTRIBUTE_FORMAT gnu_printf #else #define PRINTF_ATTRIBUTE_FORMAT printf -- 2.30.2