mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-15 17:33:38 +00:00
Commit Hans Boehm's modifications to my previous fix:
Estimated hours taken: 0.25 boehm_gc/os_dep.c: Commit Hans Boehm's modifications to my previous fix: my fix did the right thing for Irix 5.x, but with Hans's modifications it now also does the right thing for Irix 6.x.
This commit is contained in:
@@ -1652,14 +1652,16 @@ void GC_dirty_init()
|
||||
# else
|
||||
sigaction(SIGSEGV, &act, &oldact);
|
||||
# endif
|
||||
# ifdef IRIX5
|
||||
# if defined(_sigargs)
|
||||
/* This is Irix 5.x, not 6.x. Irix 5.x does not have */
|
||||
/* sa_sigaction. */
|
||||
GC_old_segv_handler = oldact.sa_handler;
|
||||
# else /* Irix 6.x or SUNOS5SIGS */
|
||||
if (oldact.sa_flags & SA_SIGINFO) {
|
||||
GC_old_segv_handler = (SIG_PF)(oldact.sa_sigaction);
|
||||
} else {
|
||||
GC_old_segv_handler = oldact.sa_handler;
|
||||
# else
|
||||
if (oldact.sa_flags & SA_SIGINFO) {
|
||||
GC_old_segv_handler = (SIG_PF)(oldact.sa_sigaction);
|
||||
} else {
|
||||
GC_old_segv_handler = oldact.sa_handler;
|
||||
}
|
||||
}
|
||||
# endif
|
||||
if (GC_old_segv_handler == SIG_IGN) {
|
||||
GC_err_printf0("Previously ignored segmentation violation!?");
|
||||
|
||||
Reference in New Issue
Block a user