[Ecls-list] Patch: using Ct before it's initialized

Josh Elsasser josh at elsasser.org
Sat Oct 4 19:11:39 UTC 2008


The split of init_unixint() into two passes last week resulted in
si::*interrupt-enable* being set to Ct before Ct is initialized.  On
my system this has the effect of causing a spurious SIGSEGV during
init_all_symbols() which is interpreted as an unrecoverable stack
overflow.  I'm not sure if this is the right thing to do, but moving
the assignment to the second init_unixint() pass allows the build to
finish for me.

diff --git src/c/unixint.d src/c/unixint.d
index 871c673..bd6a84b 100644
--- src/c/unixint.d
+++ src/c/unixint.d
@@ -473,7 +473,7 @@ init_unixint(int pass)
 					    cl_core.system_package);
 			si_Xmake_constant(name, MAKE_FIXNUM(known_signals[i].code));
 		}
+		ECL_SET(@'si::*interrupt-enable*', Ct);
 	}
-	ECL_SET(@'si::*interrupt-enable*', Ct);
 	ecl_interrupt_enable = 1;
 }




More information about the ecl-devel mailing list