Subject: Re: lang/clisp: patch-aa questions
To: Thomas Klausner <>
From: Martin J. Laubach <>
List: tech-pkg
Date: 06/14/2000 05:13:30
| Any reason why we should still need the following flags that get added
| in lang/clisp/patches/patch-aa?
| +       XCFLAGS=$XCFLAGS' -DNO_GENERATIONAL_GC -fpcc-struct-return -Dunix'
| a) NO_GENERATIONAL_GC was only ever needed because of a NetBSD 0.92
|    kernel bug (which hopefully has been fixed some time ago), and
| b) that -fpcc-struct-return is unneeded, because clisp is not even
|    reentrant.
| It seems to work on 1.4.2/i386 if I remove those flags.

  NO_GENERATIONAL_GC: The generational garbage collector needs to
extract the faulting address when a segv occurs, but we don't have
that. CLisp includes a patch to the NetBSD kernel sources (quite
outdated, for NetBSD 1.1 or such) to include that register in
struct sigcontext, but only for i386. And last time I checked, that
register was not in a stock struct sigcontext. The author considers
that a kernel bug "because other applications may need the faulting
address too".
  That's the reason why in the build process, the various checks
for a sigv handler are commented out via some other patch.

  pcc-struct-return: I can't remember why exactly I put that in,
but there was some problem with struct returns. No idea whether
it was just a workaround for a gcc bug or the need for some
obscure piece of clisp that expected passed structures to be
on the stack. I seem to associate it with a problem on some
other architecture besides i386, alpha or sparc, someone told
me it didn't work on that architecture and saying that option
fixed it -- and since it didn't break things on i386...

  Does clisp pass the regression tests ("make checks" I think
it was) with your changes? Also be certain to run several gc
to exercise the garbage collector.