On Wed, 6 Oct 2004, Richard M Kreuter wrote:
> I think the problem is in the setup for the call into Lisp: the eax
> register is zero at the end of call_into_lisp on NetBSD, but contains
> a non-zero address at the same point of execution on GNU/Linux (it's
> supposed to contain a pointer to the lexenv for the Lisp function to
> be called, IIUC). Tracing backwards, the word that's copied into eax
> at/around line 216 of x86-assem.S is zero, but I'm not sure who's
> supposed to be stashing the desired value into that address.
Looking at the commit message for 0.8.15.7
"arrange_return_to_lisp_function wasn't restoring esp
properly. Not sure it ever makes a difference in practice,
but fix it anyway."
makes me guess arrange_r_t_l_f is the culprit, or alternatively we're not
getting the right/all info out of the signal context (see x86-bsd-os.h and
This is just guessing, though.
-- Nikodemus Schemer: "Buddha is small, clean, and serious."
Lispnik: "Buddha is big, has hairy armpits, and laughs."