From owner-freebsd-emulation Wed Nov 26 07:03:58 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id HAA22402 for emulation-outgoing; Wed, 26 Nov 1997 07:03:58 -0800 (PST) (envelope-from owner-freebsd-emulation) Received: from csla.csl.sri.com (csla.csl.sri.com [192.12.33.2]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id HAA22397 for ; Wed, 26 Nov 1997 07:03:54 -0800 (PST) (envelope-from gilham@csl.sri.com) Received: from japonica.csl.sri.com (japonica.csl.sri.com [130.107.15.17]) by csla.csl.sri.com (8.8.7/8.8.7) with ESMTP id GAA03806 for ; Wed, 26 Nov 1997 06:59:23 -0800 (PST) Received: from japonica.csl.sri.com (localhost [127.0.0.1]) by japonica.csl.sri.com (8.8.7/8.8.7) with ESMTP id HAA00854 for ; Wed, 26 Nov 1997 07:03:19 -0800 (PST) Message-Id: <199711261503.HAA00854@japonica.csl.sri.com> To: emulation@FreeBSD.ORG Subject: Problems with Linux Allegro Common Lisp (was Re: Problems with spicecad for Linux) In-reply-to: Your message of "Wed, 26 Nov 1997 15:11:12 +1030." <199711260441.PAA02499@word.smith.net.au> Date: Wed, 26 Nov 1997 07:03:19 -0800 From: Fred Gilham Sender: owner-freebsd-emulation@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk 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