X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FRtsUtils.c;h=646fba93aff524e0ba9179a1511373f2facd6e20;hb=3595da95b2ca0d60c9100f77541b6ce36e49363c;hp=f4d61b1992dda014b9b080402d8738375f9ca85b;hpb=20d697a1c300663df2c1472e222e57c84c4385fc;p=ghc-hetmet.git diff --git a/ghc/rts/RtsUtils.c b/ghc/rts/RtsUtils.c index f4d61b1..646fba9 100644 --- a/ghc/rts/RtsUtils.c +++ b/ghc/rts/RtsUtils.c @@ -32,13 +32,12 @@ #include #include -#if defined(openbsd_TARGET_OS) -# ifdef HAVE_SIGNAL_H -# include -# endif -# ifdef HAVE_PTHREAD_H -# include -# endif +#ifdef HAVE_SIGNAL_H +#include +#endif + +#if defined(THREADED_RTS) && defined(openbsd_HOST_OS) && defined(HAVE_PTHREAD_H) +#include #endif /* ----------------------------------------------------------------------------- @@ -90,15 +89,6 @@ stgFree(void* p) free(p); } -void -_stgAssert (char *filename, unsigned int linenum) -{ - fflush(stdout); - fprintf(stderr, "ASSERTION FAILED: file %s, line %u\n", filename, linenum); - fflush(stderr); - abort(); -} - /* ----------------------------------------------------------------------------- Stack overflow @@ -192,7 +182,7 @@ time_str(void) * clean up for us. * -------------------------------------------------------------------------- */ -#if !defined(mingw32_TARGET_OS) +#if !defined(mingw32_HOST_OS) void resetNonBlockingFd(int fd) { @@ -231,7 +221,7 @@ static ullong startTime = 0; ullong msTime(void) { -# if defined(HAVE_GETCLOCK) && !defined(alpha_TARGET_ARCH) && !defined(hppa1_1_TARGET_ARCH) +# if defined(HAVE_GETCLOCK) && !defined(alpha_HOST_ARCH) && !defined(hppa1_1_HOST_ARCH) struct timespec tv; if (getclock(TIMEOFDAY, &tv) != 0) { @@ -240,7 +230,7 @@ msTime(void) stg_exit(EXIT_FAILURE); } return tv.tv_sec * LL(1000) + tv.tv_nsec / LL(1000000) - startTime; -# elif HAVE_GETTIMEOFDAY && !defined(alpha_TARGET_ARCH) +# elif HAVE_GETTIMEOFDAY && !defined(alpha_HOST_ARCH) struct timeval tv; if (gettimeofday(&tv, NULL) != 0) { @@ -298,18 +288,16 @@ heapCheckFail( void ) #endif /* - * It seems that pthreads and signals interact oddly in OpenBSD - * pthreads (and possibly FreeBSD). When linking with -lpthreads, we + * It seems that pthreads and signals interact oddly in OpenBSD & FreeBSD + * pthreads (and possibly others). When linking with -lpthreads, we * have to use pthread_kill to send blockable signals. So use that * when we have a threaded rts. So System.Posix.Signals will call * genericRaise(), rather than raise(3). */ -#if defined(openbsd_TARGET_OS) int genericRaise(int sig) { -# if defined(THREADED_RTS) +#if defined(THREADED_RTS) && (defined(openbsd_HOST_OS) || defined(freebsd_HOST_OS)) return pthread_kill(pthread_self(), sig); -# else +#else return raise(sig); -# endif -} #endif +}