- /* G++ can't inline functions with variable arguments... */
- #define kprintf(fmt, ...) fprintf(stderr, fmt, ## __VA_ARGS__)
- #define kvprintf(fmt, ap) vfprintf(stderr, fmt, ap)
+ #if COMPILER_VARIADIC_MACROS
+ /* G++ can't inline functions with variable arguments... */
+ #define kprintf(fmt, ...) fprintf(stderr, fmt, ## __VA_ARGS__)
+ #else
+ #define kvprintf(fmt, ap) vfprintf(stderr, fmt, ap)
+ INLINE int kprintf(const char *fmt, ...)
+ {
+ va_list ap;
+ int result;
+
+ va_start(ap, fmt);
+ result = kvprintf(fmt, ap);
+ va_end(ap);
+
+ return result;
+ }
+ #endif