From: Johan L. <jo...@li...> - 2005-11-22 20:19:48
|
On Nov 22, 2005, at 16:17, Sam Steingold wrote: >>> SUMMARY: >>> >>> segfault on startup in closed_buffered() when built with "gcc -O2" >>> >>> Exception: EXC_BAD_ACCESS (0x0001) >>> Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x19fb6130 >>> >>> Thread 0 Crashed: >>> 0 lisp.run 0x0006f8b4 closed_buffered + 48 (crt.c:355) >>> 1 lisp.run 0x0007850c closed_all_files + 108 (crt.c:355) >>> 2 lisp.run 0x000289ac loadmem_from_handle + 3168 (crt.c:355) >>> 3 lisp.run 0x00028c68 loadmem + 128 (crt.c:355) >>> 4 lisp.run 0x00029058 init_memory + 888 (crt.c:355) >>> 5 lisp.run 0x0002b610 main + 3940 (crt.c:355) >>> 6 lisp.run 0x00002878 _start + 340 (crt.c:272) >>> 7 lisp.run 0x00002720 start + 60 >>> >>> no segfault when built with "SAFETY=3" >> >>> gcc --version >> >> powerpc-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. >> build >> 5247) >> >>> uname -a >> >> Darwin Johans-Computer.local 8.3.0 Darwin Kernel Version 8.3.0: >> Mon Oct >> 3 20:04:04 PDT 2005; root:xnu-792.6.22.obj~2/RELEASE_PPC Power >> Macintosh powerpc >> * "gcc -O" > > -O == -O2 > how about -O1 ? Hmm, the man-page on Darwin says -O == -O1. Just to make sure, I built it with "-O1" as well; it still segfaults. > now please keep -O2 but set SAFETY to different values. > SAFETY=0 (default) ==> segfault > SAFETY=3 ==> no segfault > SAFETY=1 ==> segfault > SAFETY=2 ==> segfault > BTW, do you observe the segfault with the 2.35 binaries from the SF? The latest build I can find on SF is for Darwin 7.9.0 (Mac OS X 10.3.9), but that one seems to work fine, no segfaults. I tried building from CVS head on another Mac, running OS X 10.4.2 and GCC 4.0.0; this also gives a crash dump, which falsifies my previous thought that this had to do with the upgrade from GCC 4.0.0 to 4.0.1. uname -a Darwin Johans-Mac-mini.local 8.2.0 Darwin Kernel Version 8.2.0: Fri Jun 24 17:46:54 PDT 2005; root:xnu-792.2.4.obj~3/RELEASE_PPC Power Macintosh powerpc gcc --version powerpc-apple-darwin8-gcc-4.0.0 (GCC) 4.0.0 20041026 (Apple Computer, Inc. build 4061) As I reported before, CLISP actually starts after the stack trace and other stuff has been written to "~/Library/Logs/CrashReporter/ lisp.run.crash.log"; is this due to some sort of libsigsegv-magic, or...? This is the reason why I haven't noticed it before; I stumbled upon this problem when I was browsing through the logs and saw a suspiciously large number of CLISP crashes, but I had not noticed it when I was using CLISP. -- Johan Liseborn |