From 7335a0e9afd7eb4354e6d7fe7d6c295b0f4b7121 Mon Sep 17 00:00:00 2001 From: peter Date: Sat, 5 Feb 2005 23:45:38 +0000 Subject: [PATCH] * sigcontext is invalid, use siginfo only --- rtl/linux/sparc/sighnd.inc | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/rtl/linux/sparc/sighnd.inc b/rtl/linux/sparc/sighnd.inc index 89a05d983f..55f8de3c6e 100644 --- a/rtl/linux/sparc/sighnd.inc +++ b/rtl/linux/sparc/sighnd.inc @@ -30,11 +30,13 @@ const procedure SignalToRunerror(sig : longint; SigInfo: PSigInfo; SigContext: PSigContext);cdecl; var res : word; + addr : pointer; begin res:=0; case sig of SIGFPE : begin + addr := siginfo^._sifields._sigfault._addr; res := 207; case siginfo^.si_code of FPE_INTDIV: @@ -58,16 +60,22 @@ begin SIGILL, SIGBUS, SIGSEGV : - res:=216; + begin + addr := siginfo^._sifields._sigfault._addr; + res:=216; + end; end; { give runtime error at the position where the signal was raised } if res<>0 then - HandleErrorAddrFrame(res,pointer(SigContext^.sigc_pc),pointer(SigContext^.sigc_wbuf[SigContext^.sigc_oswins-1].ins[6])); + HandleErrorAddrFrame(res,addr,nil); end; { $Log$ - Revision 1.6 2005-01-30 18:01:15 peter + Revision 1.7 2005-02-05 23:45:38 peter + * sigcontext is invalid, use siginfo only + + Revision 1.6 2005/01/30 18:01:15 peter * signal cleanup for linux * sigactionhandler instead of tsigaction for bsds * sigcontext moved to cpu dir