summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik de Castro Lopo <erikd@mega-nerd.com>2016-05-11 16:17:08 +1000
committerErik de Castro Lopo <erikd@mega-nerd.com>2016-05-11 22:13:06 +1000
commit0efbf18b80c261708da9ef61bcd420fa94cfed42 (patch)
treea9fe8bad32060fa4bf18adc6ff29c4844a3b0495
parent584ade67630f4e5c599c8422801e93f352b9a6df (diff)
downloadhaskell-0efbf18b80c261708da9ef61bcd420fa94cfed42.tar.gz
rts: Fix C compiler warnings on Windows
Summary: Specifcally we want the MinGW compiler to use ISO print format specfifiers. Test Plan: Validate on Linux, OS X and Windows Reviewers: Phyx, austin, bgamari, simonmar Reviewed By: bgamari, simonmar Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2192
-rw-r--r--includes/stg/Types.h5
-rw-r--r--rts/Linker.c9
-rw-r--r--rts/Trace.c13
3 files changed, 18 insertions, 9 deletions
diff --git a/includes/stg/Types.h b/includes/stg/Types.h
index 1a61c8bb46..0ad3c5c77d 100644
--- a/includes/stg/Types.h
+++ b/includes/stg/Types.h
@@ -21,6 +21,11 @@
#ifndef STGTYPES_H
#define STGTYPES_H
+#if defined(mingw32_HOST_OS)
+/* Inform mingw we want the ISO rather than Windows printf format specifiers. */
+#define __USE_MINGW_ANSI_STDIO 1
+#endif
+
/* ISO C 99 says:
* "C++ implementations should define these macros only when
* __STDC_LIMIT_MACROS is defined before <stdint.h> is included."
diff --git a/rts/Linker.c b/rts/Linker.c
index 981df2553f..09d4f6a8f9 100644
--- a/rts/Linker.c
+++ b/rts/Linker.c
@@ -3799,9 +3799,12 @@ ocVerifyImage_PEi386 ( ObjectCode* oc )
IF_DEBUG(linker, i=1);
if (i == 0) return 1;
- debugBelch( "sectab offset = %" FMT_Int "\n", ((UChar*)sectab) - ((UChar*)hdr) );
- debugBelch( "symtab offset = %" FMT_Int "\n", ((UChar*)symtab) - ((UChar*)hdr) );
- debugBelch( "strtab offset = %" FMT_Int "\n", ((UChar*)strtab) - ((UChar*)hdr) );
+ debugBelch("sectab offset = %" FMT_SizeT "\n",
+ ((UChar*)sectab) - ((UChar*)hdr) );
+ debugBelch("symtab offset = %" FMT_SizeT "\n",
+ ((UChar*)symtab) - ((UChar*)hdr) );
+ debugBelch("strtab offset = %" FMT_SizeT "\n",
+ ((UChar*)strtab) - ((UChar*)hdr) );
debugBelch("\n" );
debugBelch( "Machine: 0x%x\n", (UInt32)(hdr->Machine) );
diff --git a/rts/Trace.c b/rts/Trace.c
index cf47e160bb..8480f10bbd 100644
--- a/rts/Trace.c
+++ b/rts/Trace.c
@@ -424,18 +424,19 @@ void traceCapsetEvent (EventTypeNum tag,
tracePreface();
switch (tag) {
case EVENT_CAPSET_CREATE: // (capset, capset_type)
- debugBelch("created capset %" FMT_Word " of type %d\n", (W_)capset, (int)info);
+ debugBelch("created capset %" FMT_Word32 " of type %d\n", capset,
+ (int)info);
break;
case EVENT_CAPSET_DELETE: // (capset)
- debugBelch("deleted capset %" FMT_Word "\n", (W_)capset);
+ debugBelch("deleted capset %" FMT_Word32 "\n", capset);
break;
case EVENT_CAPSET_ASSIGN_CAP: // (capset, capno)
- debugBelch("assigned cap %" FMT_Word " to capset %" FMT_Word "\n",
- (W_)info, (W_)capset);
+ debugBelch("assigned cap %" FMT_Word " to capset %" FMT_Word32 "\n",
+ info, capset);
break;
case EVENT_CAPSET_REMOVE_CAP: // (capset, capno)
- debugBelch("removed cap %" FMT_Word " from capset %" FMT_Word "\n",
- (W_)info, (W_)capset);
+ debugBelch("removed cap %" FMT_Word " from capset %" FMT_Word32
+ "\n", info, capset);
break;
}
RELEASE_LOCK(&trace_utx);