On Sat, Dec 01, 2007 at 08:42:56PM -0800, Carl Shapiro wrote: > On Nov 30, 2007 7:26 AM, Kostik Belousov <kostikbel_at_gmail.com> wrote: > > The patch I posted was enough for CMUCL to survive the gc. > > The SIGBUS handler in CMUCL compares the value of si_code to > BUS_PAGE_FAULT. If these values do not compare equal, the signal is > not interpreted by the garbage collector. For the record, your > original patch did not fill the si_code value with BUS_PAGE_FAULT and > so it was not enough. Is this some new code ? I did tested it on CLUCL-19d compiled for RELENG_6. Also, the sigbus_handler() from lisp/FreeBSD-os.c rev 1.12 does not contain the check, it seems (that describes why it worked for me). > > > Patch below shall implement it, and be MFCed to RELENG_7. The change to > > crtbrand.c shall be MFCed to RELENG_6 (and, possibly, RELENG_5). Patch > > was lightly tested on i386, and compile tested on amd64. > > Please, give it a run. > > I applied your patch to my 7.0-BETA3 sources and my test programs now > behave as expected. Notably, the si_code value is always correct. > Thanks! I will put the patch into the tree ASAP, subject to coordination with re_at_ and portmgr_at_. Could you, please, describe what was tested in more details ? Did you run the CMUCL (and sbcl) with the patch ? If yes, could you, please, show the file(1) output on the bin/lisp and bin/sbcl binary ?
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:23 UTC