Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Nov 1997 07:03:19 -0800
From:      Fred Gilham <gilham@csl.sri.com>
To:        emulation@FreeBSD.ORG
Subject:   Problems with Linux Allegro Common Lisp (was Re: Problems with spicecad for Linux)
Message-ID:  <199711261503.HAA00854@japonica.csl.sri.com>
In-Reply-To: Your message of "Wed, 26 Nov 1997 15:11:12 %2B1030." <199711260441.PAA02499@word.smith.net.au> 

next in thread | previous in thread | raw e-mail | index | archive | help

Mike Smith writes:
>   .
>   .
>   .
>And then SIGBUS.  It's possible that it was expecting a SEGV here as
>well, but got SIGBUS due to a difference of opinion between FreeBSD
>and Linux.  Without knowing why it got the signal, it's fairly
>impossible to tell though.  You should look at the trap() function in
>i386/i386/ trap.c and look at where it returns SIGBUS to the process,
>and then compare this with Linux's reasons.


The same problem exists with Linux Allegro Common Lisp.  I spent some
time trying to figure out why and it seems possible that it's
T_STKFLT.  Linux has a SIGSTKFLT; FreeBSD just maps this directly to
SIGBUS.

I was told that it's possible to hack the emulator so that when ACL
sets up its signal handlers, it will set the bus error signal handler
instead of the SIGSTKFLT signal handler.  Actually the person
suggested installing the SIGSEGV handler for SIGBUS and preventing ACL
from installing its SIGBUS handler.  I haven't been able to get this
to work in any permutation, though, probably due to my lame hackery.
(I was able to get the behavior of the system to change, i.e. the
signal was being caught, but the system still didn't function
correctly.)

Is there a more robust solution? or rather, a solution at all?  The
current situation seems to exclude a significant class of Linux
applications from being run successfully by FreeBSD.

-Fred Gilham   gilham@csl.sri.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199711261503.HAA00854>