freebsd-ports/cad/ngspice_rework/files/patch-src__frontend__resource.c
Tim Bishop 4f52fdc33f - Update to 17
PR:		90182
Submitted by:	shuhei <amakawa@jp.freebsd.org> (maintainer)
Approved by:	clement (mentor)
2005-12-11 17:42:50 +00:00

40 lines
1 KiB
C

--- src/frontend/resource.c.orig Thu Jun 30 23:38:21 2005
+++ src/frontend/resource.c Sat Dec 10 20:41:22 2005
@@ -424,6 +424,7 @@
fault(void)
{
signal(SIGSEGV, (SIGNAL_FUNCTION) fault); /* SysV style */
+ signal(SIGBUS, (SIGNAL_FUNCTION) fault); /* SysV style */
LONGJMP(env, 1);
}
@@ -436,7 +437,8 @@
char *low, *high, *at;
/* char *sbrk(int); */
long x;
- RETSIGTYPE (*orig_signal)( );
+ RETSIGTYPE (*orig_sigsegv)( );
+ RETSIGTYPE (*orig_sigbus)( );
if (getenv("SPICE_NO_DATASEG_CHECK"))
return 0;
@@ -444,7 +446,8 @@
low = 0;
high = (char *) ((unsigned long) sbrk(0) & ~((1 << LOG2_PAGESIZE) - 1));
- orig_signal = signal(SIGSEGV, (SIGNAL_FUNCTION) fault);
+ orig_sigsegv = signal(SIGSEGV, (SIGNAL_FUNCTION) fault);
+ orig_sigbus = signal(SIGBUS, (SIGNAL_FUNCTION) fault);
do {
@@ -472,7 +475,8 @@
} while (1);
- (void) signal(SIGSEGV, (SIGNAL_FUNCTION) orig_signal);
+ (void) signal(SIGSEGV, (SIGNAL_FUNCTION) orig_sigsegv);
+ (void) signal(SIGBUS, (SIGNAL_FUNCTION) orig_sigbus);
return (void *) high;
#endif