diff --git a/rtl/linux/osmain.inc b/rtl/linux/osmain.inc index 2e492e9aa1..fc4d889557 100644 --- a/rtl/linux/osmain.inc +++ b/rtl/linux/osmain.inc @@ -515,13 +515,13 @@ begin FillChar(act, sizeof(SigActionRec),0); { initialize handler } act.sa_handler := signalhandler(@SignalToRunError); -{$ifdef CPUARM} +{$ifdef RTSIGACTION} act.sa_flags:=4; -{$endif CPUARM} - FpSigAction(SIGFPE,@act,@oldact); - FpSigAction(SIGSEGV,@act,@oldact); - FpSigAction(SIGBUS,@act,@oldact); - FpSigAction(SIGILL,@act,@oldact); +{$endif RTSIGACTION} + FpSigAction(SIGFPE,@act,nil); + FpSigAction(SIGSEGV,@act,nil); + FpSigAction(SIGBUS,@act,nil); + FpSigAction(SIGILL,@act,nil); end; procedure SetupCmdLine; @@ -584,7 +584,10 @@ end; { $Log$ - Revision 1.15 2004-04-22 21:16:35 peter + Revision 1.16 2004-04-27 20:47:00 florian + * tried to fix x86-64 signal handling + + Revision 1.15 2004/04/22 21:16:35 peter * do_write/do_read fix Revision 1.14 2004/03/27 14:33:45 florian diff --git a/rtl/linux/ossysc.inc b/rtl/linux/ossysc.inc index 94c2db9f0f..126081fd06 100644 --- a/rtl/linux/ossysc.inc +++ b/rtl/linux/ossysc.inc @@ -475,7 +475,7 @@ CONST MAP_ANONYMOUS =$20; {Constansts Termios/Ioctl (used in Do_IsDevice) } - {$ifdef PowerPc} + {$ifdef PowerPC} IOCtl_TCGETS=$402c7413; {$else} IOCtl_TCGETS=$5401; // TCGETS is also in termios.inc, but the sysunix needs only this @@ -509,7 +509,10 @@ end; { $Log$ - Revision 1.22 2004-04-25 07:18:49 florian + Revision 1.23 2004-04-27 20:47:00 florian + * tried to fix x86-64 signal handling + + Revision 1.22 2004/04/25 07:18:49 florian * mmap for x86-64 fixed Revision 1.21 2004/04/20 20:27:01 florian @@ -579,6 +582,4 @@ end; Revision 1.1 2002/11/12 14:40:18 marco * The syscall core of the new system unit. - - } diff --git a/rtl/linux/signal.inc b/rtl/linux/signal.inc index f50f6f908c..e528550900 100644 --- a/rtl/linux/signal.inc +++ b/rtl/linux/signal.inc @@ -88,7 +88,7 @@ type status: cardinal; end; - SigSet = array[0..wordsinsigset-1] of Longint; + SigSet = array[0..wordsinsigset-1] of cint; sigset_t= SigSet; PSigSet = ^SigSet; psigset_t=psigset; @@ -343,6 +343,13 @@ type TSigAction = procedure(Sig: Longint; SigContext: SigContextRec);cdecl; +{$ifdef CPUARM} +{$define NEWSIGNAL} +{$endif CPUARM} + +{$ifdef CPUx86_64} +{$define NEWSIGNAL} +{$endif CPUx86_64} SigActionRec = packed record // this is temporary for the migration {$ifdef posixworkaround} @@ -354,22 +361,25 @@ type 1: (Sa: TSigAction); end; {$endif} - {$ifdef CPUARM} - Sa_Flags : Longint; + {$ifdef NEWSIGNAL} + Sa_Flags : cuint; Sa_restorer : SignalRestorer; { Obsolete - Don't use } Sa_Mask : SigSet; - {$else CPUARM} + {$else NEWSIGNAL} Sa_Mask : SigSet; Sa_Flags : Longint; Sa_restorer : SignalRestorer; { Obsolete - Don't use } - {$endif CPUARM} + {$endif NEWSIGNAL} end; TSigActionRec = SigActionRec; PSigActionRec = ^SigActionRec; { $Log$ - Revision 1.17 2004-03-27 14:35:13 florian + Revision 1.18 2004-04-27 20:47:00 florian + * tried to fix x86-64 signal handling + + Revision 1.17 2004/03/27 14:35:13 florian * structs for arm adapted Revision 1.16 2004/02/05 01:16:12 florian