From: Redirect 'Slash' NIL Date: Mon, 19 Oct 2009 16:49:34 +0000 (-0700) Subject: corrective fix for MinGW GNU C99 printf compliance X-Git-Tag: v0.3.0-rc0~70 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=113679ff59e20530c621051d0aceb1876a49c45d;p=openocd 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. --- diff --git a/src/helper/command.h b/src/helper/command.h index c574efd5..ba825bcb 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 8f6ac770..f43e1e6c 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