projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LLVM: Use mangler to fix up stack alignment issues on OSX
[ghc-hetmet.git]
/
rts
/
RtsMessages.c
diff --git
a/rts/RtsMessages.c
b/rts/RtsMessages.c
index
53a910e
..
6e75abc
100644
(file)
--- a/
rts/RtsMessages.c
+++ b/
rts/RtsMessages.c
@@
-9,7
+9,11
@@
#include "PosixSource.h"
#include "Rts.h"
#include "PosixSource.h"
#include "Rts.h"
+#include "eventlog/EventLog.h"
+
#include <stdio.h>
#include <stdio.h>
+#include <string.h>
+#include <errno.h>
#ifdef HAVE_WINDOWS_H
#include <windows.h>
#ifdef HAVE_WINDOWS_H
#include <windows.h>
@@
-126,7
+130,7
@@
isGUIApp(void)
#define xstr(s) str(s)
#define str(s) #s
#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)
rtsFatalInternalErrorFn(const char *s, va_list ap)
{
#if defined(cygwin32_HOST_OS) || defined (mingw32_HOST_OS)
@@
-159,6
+163,10
@@
rtsFatalInternalErrorFn(const char *s, va_list ap)
fflush(stderr);
}
fflush(stderr);
}
+#ifdef TRACING
+ if (RtsFlags.TraceFlags.tracing == TRACE_EVENTLOG) endEventLogging();
+#endif
+
abort();
// stg_exit(EXIT_INTERNAL_ERROR);
}
abort();
// stg_exit(EXIT_INTERNAL_ERROR);
}
@@
-185,7
+193,7
@@
rtsErrorMsgFn(const char *s, va_list ap)
#endif
{
/* don't fflush(stdout); WORKAROUND bug in Linux glibc */
#endif
{
/* don't fflush(stdout); WORKAROUND bug in Linux glibc */
- if (prog_argv != NULL && prog_name != NULL) {
+ if (prog_name != NULL) {
fprintf(stderr, "%s: ", prog_name);
}
vfprintf(stderr, s, ap);
fprintf(stderr, "%s: ", prog_name);
}
vfprintf(stderr, s, ap);
@@
-237,7
+245,12
@@
rtsSysErrorMsgFn(const char *s, va_list ap)
}
vfprintf(stderr, s, ap);
if (syserr) {
}
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);
fprintf(stderr, ": %s\n", syserr);
+#endif
} else {
fprintf(stderr, "\n");
}
} else {
fprintf(stderr, "\n");
}