Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Jun 1997 12:46:01 +0100
From:      richard@cogsci.ed.ac.uk
To:        freebsd-emulation@freebsd.org
Subject:   Linux Allegro Common Lisp
Message-ID:  <1976.199706111146@pitcairn.cogsci.ed.ac.uk>

next in thread | raw e-mail | index | archive | help
I just got the free Allegro CL for Linux, and have been trying to
get it working under FreeBSD.  I encountered a few problems:

(1) Linux pwd (probably getcwd()) doesn't work when I'm under /tmp,
which is a memory file system.  It returns /foo/bar instead of
/tmp/foo/bar.  Presumably Linux's method of detecting the root
directory isn't working.

(2) I managed to twice damage my ext2fs filesystem.  Both times a
directory was corrupted (and fixed by Linux fsck), and one time a
directory was detatched.  Is the ext2fs code known to have problems?
Is it reasonable to replace /compat/linux with a link to my ext2fs
partition?

(3) (The serious one) ACL dies with a bus error.  The problem appears to
be that ACL uses the common technique of using SIGSEGV to detect when
it needs to allocate more memory.  It looks as if FreeBSD sends a SIGBUS
in some circumstance in which Linux sends SIGSEGV.  I hacked the emulator
so that when ACL sets its SIGSEGV handler, it really sets the SIGBUS
handler, and that seems to fix it, at least to the stage where I can
run some benchmarks.

I'll look into this more closely myself, but maybe someone can tell me
exactly what are the circumstances in which FreeBSD sends SIGSEGV and
SIGBUS?  Is it practical to have the rules be different for an
emulated process?

BTW, I'm using 2.2-gamma.

-- Richard



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