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>