[Openmcl-devel] Segmentation fault on linuxppc

Gary Byers gb at clozure.com
Tue Jul 27 14:30:02 PDT 2004



On Tue, 27 Jul 2004, Jan Idzikowski wrote:

> At Wed, 14 Jul 2004 08:30:15 -0600 (MDT),
> Gary Byers wrote:
> >
> > Sorry that your message was "held for approval" for so long; I missed#
> > it.
>
> no problem, i subscribbed now.
>
>
> > What happens when you try to run without GDB ?
>
> it is the same: "Segmentation fault" without any other information.
> --
> ________________________________
> jan.idzikowski at knowledgetools.de
>
>

Things seem to work fine on a similar system with kernel 2.6.5:

[ccl-0.14/ccl] gb at z2> uname -a
Linux z2 2.6.5-gentoo-r1 #6 Tue Jun 8 13:50:59 MDT 2004 ppc 7455, altivec supported PowerBook6,3 GNU/Linux
[ccl-0.14/ccl] gb at z2> ./ppccl
Welcome to OpenMCL Version (Beta: Linux) 0.14.2-p1!
?

So, either there's some subtle difference between 2.6.5 and 2.6.7, or
we're both missing something obvious.

As the lisp starts up, there should be several SIGSEGVs (as write-protected
pages in the heap are written to); a signal handler in the lisp kernel
should quietly unprotect the page in question and cause execution to
resume.

If you have the "strace" program installed ("emerge strace" on Gentoo),
I'd be interested in seeing the output from:

shell> strace -etrace=\!SYS_0 -o strace.out ./ppccl

e.g., trace all system calls/signals other than SYS_0 (not sure what that
is ...) and send output to a file.  I'd expect to see (among other things):

...
rt_sigaction(SIGSEGV, {0x300dbb7c, ~[], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
...

and several:

--- SIGSEGV (Segmentation fault) @ 0 (0) ---
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
mprotect(0x35332000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
rt_sigprocmask(SIG_SETMASK, ~[RT_1], NULL, 8) = 0
rt_sigreturn(0x2d348)                   = 31




More information about the Openmcl-devel mailing list