Antonio Ospite has uploaded this change for review.

View Change

Fix compilation with older MinGW versions

The __MINGW_PRINTF_FORMAT constant has been defined back in 2012
https://sourceforge.net/p/mingw-w64/mingw-w64/ci/77bc5d6103b5fb9f59fbddab1583e69549913312/

However older toolchains are still around and some user reported the
following compilation failure:

flash.h:336:1: error: '__MINGW_PRINTF_FORMAT' is an unrecognized format function  type [-Werror=format=]
 __attribute__((format(__MINGW_PRINTF_FORMAT, 2, 3)));

Fix this by defining the constant when it isn't already; the change does
not affect other compilers because it's guarded by "#ifdef __MINGW32__".

Setting __MINGW_PRINTF_FORMAT to gnu_printf is exactly what newer MinGW
versions do when __USE_MINGW_ANSI_STDIO is defined, which it is in
flashrom Makefile.

Change-Id: I48de3e4303b9a389c515a8ce230282d9210576fd
Tested-by: Miklos Marton <martonmiklosqdev@gmail.com>
Signed-off-by: Antonio Ospite <ao2@ao2.it>
---
M flash.h
1 file changed, 3 insertions(+), 0 deletions(-)

git pull ssh://review.coreboot.org:29418/flashrom refs/changes/30/25130/1
diff --git a/flash.h b/flash.h
index a80a9c2..40a7f1a 100644
--- a/flash.h
+++ b/flash.h
@@ -360,6 +360,9 @@
/* Let gcc and clang check for correct printf-style format strings. */
int print(enum flashrom_log_level level, const char *fmt, ...)
#ifdef __MINGW32__
+# ifndef __MINGW_PRINTF_FORMAT
+# define __MINGW_PRINTF_FORMAT gnu_printf
+# endif
__attribute__((format(__MINGW_PRINTF_FORMAT, 2, 3)));
#else
__attribute__((format(printf, 2, 3)));

To view, visit change 25130. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I48de3e4303b9a389c515a8ce230282d9210576fd
Gerrit-Change-Number: 25130
Gerrit-PatchSet: 1
Gerrit-Owner: Antonio Ospite <ao2@ao2.it>