RTS tidyup sweep, first phase
[ghc-hetmet.git] / rts / RtsMessages.c
index 53a910e..ef5c5a2 100644 (file)
@@ -10,6 +10,8 @@
 #include "Rts.h"
 
 #include <stdio.h>
+#include <string.h>
+#include <errno.h>
 
 #ifdef HAVE_WINDOWS_H
 #include <windows.h>
@@ -126,7 +128,7 @@ isGUIApp(void)
 #define xstr(s) str(s)
 #define str(s) #s
 
-void
+void GNU_ATTRIBUTE(__noreturn__)
 rtsFatalInternalErrorFn(const char *s, va_list ap)
 {
 #if defined(cygwin32_HOST_OS) || defined (mingw32_HOST_OS)
@@ -237,7 +239,12 @@ rtsSysErrorMsgFn(const char *s, va_list ap)
        }
        vfprintf(stderr, s, ap);
        if (syserr) {
+#if defined(cygwin32_HOST_OS) || defined (mingw32_HOST_OS)
+            // Win32 error messages have a terminating \n
+           fprintf(stderr, ": %s", syserr);
+#else
            fprintf(stderr, ": %s\n", syserr);
+#endif
        } else {
            fprintf(stderr, "\n");
        }