summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2012-04-24 17:19:58 +0100
committerIan Lynagh <igloo@earth.li>2012-04-24 17:19:58 +0100
commit8b1fd2609919dfa8b889f13f91e80885177ba737 (patch)
tree95d61ad13d9dcedf84a0e7e03688bdd92b6d3f23
parent3020e6dc793100fe05aba4ae17475dbd1210fee1 (diff)
downloadhaskell-8b1fd2609919dfa8b889f13f91e80885177ba737.tar.gz
A couple of build fixes for Win64
-rw-r--r--includes/Rts.h2
-rw-r--r--rts/eventlog/EventLog.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/includes/Rts.h b/includes/Rts.h
index c1f4f05bea..89efb15d9d 100644
--- a/includes/Rts.h
+++ b/includes/Rts.h
@@ -168,7 +168,7 @@ void _assertFail(const char *filename, unsigned int linenum)
#define FMT_Word64 "lu"
#define FMT_Int64 "ld"
#else
-#if defined(mingw32_HOST_OS)
+#if defined(mingw32_HOST_OS) && defined(i386_HOST_ARCH)
/* mingw doesn't understand %llu/%lld - it treats them as 32-bit
rather than 64-bit */
#define FMT_Word64 "I64u"
diff --git a/rts/eventlog/EventLog.c b/rts/eventlog/EventLog.c
index a3103775d9..66b589e282 100644
--- a/rts/eventlog/EventLog.c
+++ b/rts/eventlog/EventLog.c
@@ -237,7 +237,10 @@ initEventLogging(void)
// Forked process, eventlog already started by the parent
// before fork
event_log_pid = getpid();
- sprintf(event_log_filename, "%s.%d.eventlog", prog, event_log_pid);
+ // We don't have a FMT* symbol for pid_t, so we go via Word64
+ // to be sure of not losing range. It would be nicer to have a
+ // FMT* symbol or similar, though.
+ sprintf(event_log_filename, "%s.%" FMT_Word64 ".eventlog", prog, (StgWord64)event_log_pid);
}
stgFree(prog);