From 9d9562237a261442f903a973cd57b5dda8f4d10d Mon Sep 17 00:00:00 2001 From: simonm Date: Wed, 27 May 1998 12:09:43 +0000 Subject: [PATCH] [project @ 1998-05-27 12:09:43 by simonm] - remove _BSD_SOURCE for linux case, it broke older linuxen. - type of scp.cr2 is unsigned long, not caddr_t. - cast all pointer-like things to (char *) for comparisons. --- ghc/runtime/main/Signals.lc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ghc/runtime/main/Signals.lc b/ghc/runtime/main/Signals.lc index a85451b..db2da4e 100644 --- a/ghc/runtime/main/Signals.lc +++ b/ghc/runtime/main/Signals.lc @@ -38,7 +38,6 @@ much pain. #if defined(linux_TARGET_OS) # define NON_POSIX_SOURCE /* sigh, linux w/ glibc needs _BSD_SOURCE to get caddr_t... (ToDo) */ -# define _BSD_SOURCE #endif #if defined(osf3_TARGET_OS) || defined(osf1_TARGET_OS) @@ -146,15 +145,15 @@ segv_handler(int sig, extern void StackOverflow(STG_NO_ARGS) STG_NORETURN; # if defined(linux_TARGET_OS) || defined(linuxaout_TARGET_OS) - caddr_t addr = scp.cr2; + unsigned long addr = scp.cr2; /* Magic info from Tommy Thorn! */ # endif # if defined(aix_TARGET_OS) caddr_t addr = scp->sc_jmpbuf.jmp_context.o_vaddr; /* Magic guess by andre */ # endif - if (addr >= (caddr_t) stks_space - && addr < (caddr_t) (stks_space + RTSflags.GcFlags.stksSize)) + if ( (char *)addr >= (char *)stks_space + && (char *)addr < (char *)(stks_space + RTSflags.GcFlags.stksSize)) StackOverflow(); fflush(stdout); -- 1.7.10.4