OS X build fixes
authorIan Lynagh <igloo@earth.li>
Thu, 26 Apr 2012 19:53:18 +0000 (20:53 +0100)
committerIan Lynagh <igloo@earth.li>
Thu, 26 Apr 2012 20:04:18 +0000 (21:04 +0100)
OS X doesn't understand 'gnu_printf', so we need to onyl use it
conditionally.

includes/rts/Messages.h
rts/Stats.h

index e43155c..d3dabde 100644 (file)
 
 #include <stdarg.h>
 
+#if defined(mingw32_HOST_OS)
+/* On Win64, if we say "printf" then gcc thinks we are going to use
+   MS format specifiers like %I64d rather than %llu */
+#define PRINTF gnu_printf
+#else
+/* However, on OS X, "gnu_printf" isn't recognised */
+#define PRINTF printf
+#endif
+
 /* -----------------------------------------------------------------------------
  * Message generation
  * -------------------------------------------------------------------------- */
@@ -48,7 +57,7 @@ void vbarf(const char *s, va_list ap)
  * errorBelch() invokes (*errorMsgFn)().
  */
 void errorBelch(const char *s, ...)
-   GNUC3_ATTRIBUTE(format (gnu_printf, 1, 2));
+   GNUC3_ATTRIBUTE(format (PRINTF, 1, 2));
 
 void verrorBelch(const char *s, va_list ap);
 
@@ -62,7 +71,7 @@ void verrorBelch(const char *s, va_list ap);
  * sysErrorBelch() invokes (*sysErrorMsgFn)().
  */
 void sysErrorBelch(const char *s, ...)
-   GNUC3_ATTRIBUTE(format (gnu_printf, 1, 2));
+   GNUC3_ATTRIBUTE(format (PRINTF, 1, 2));
 
 void vsysErrorBelch(const char *s, va_list ap);
 
@@ -74,7 +83,7 @@ void vsysErrorBelch(const char *s, va_list ap);
  * debugBelch() invokes (*debugMsgFn)().
  */
 void debugBelch(const char *s, ...)
-   GNUC3_ATTRIBUTE(format (gnu_printf, 1, 2));
+   GNUC3_ATTRIBUTE(format (PRINTF, 1, 2));
 
 void vdebugBelch(const char *s, va_list ap);
 
index f576e1f..d74cf29 100644 (file)
 
 #include "BeginPrivate.h"
 
+#if defined(mingw32_HOST_OS)
+/* On Win64, if we say "printf" then gcc thinks we are going to use
+   MS format specifiers like %I64d rather than %llu */
+#define PRINTF gnu_printf
+#else
+/* However, on OS X, "gnu_printf" isn't recognised */
+#define PRINTF printf
+#endif
+
 struct gc_thread_;
 
 void      stat_startInit(void);
@@ -64,7 +73,7 @@ Time stat_getElapsedTime(void);
 
 /* Only exported for Papi.c */
 void statsPrintf( char *s, ... ) 
-    GNUC3_ATTRIBUTE(format (gnu_printf, 1, 2));
+    GNUC3_ATTRIBUTE(format (PRINTF, 1, 2));
 
 #include "EndPrivate.h"