summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Copyright2
-rw-r--r--osdep/compiler.h22
2 files changed, 9 insertions, 15 deletions
diff --git a/Copyright b/Copyright
index b03b4b9018..73784750b5 100644
--- a/Copyright
+++ b/Copyright
@@ -157,7 +157,7 @@ LGPL relicensing status:
osdep/android/* LGPL (BSD)
osdep/ar/* LGPL (BSD)
osdep/atomic.h LGPL
- osdep/compiler.h easy
+ osdep/compiler.h LGPL
osdep/endian.h easy
osdep/glob-win.c LGPL
osdep/io.* LGPL
diff --git a/osdep/compiler.h b/osdep/compiler.h
index 0edea7de4a..d25f0cd1e4 100644
--- a/osdep/compiler.h
+++ b/osdep/compiler.h
@@ -4,24 +4,18 @@
#define MP_EXPAND_ARGS(...) __VA_ARGS__
#ifdef __GNUC__
-
+#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format(printf, a1, a2)))
#define MP_NORETURN __attribute__((noreturn))
-
-/** 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. **/
-#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.
-#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (gnu_printf, a1, a2)))
-#else
-#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (printf, a1, a2)))
-#endif
-
#else
#define PRINTF_ATTRIBUTE(a1, a2)
#define MP_NORETURN
#endif
+// Broken crap with __USE_MINGW_ANSI_STDIO
+#if defined(__MINGW32__) && defined(__GNUC__) && !defined(__clang__)
+#undef PRINTF_ATTRIBUTE
+#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (gnu_printf, a1, a2)))
+#endif
+
+
#endif