On Sun, Apr 18, 2004 at 03:44:56PM +0000, Scott Parish wrote:
> Attached is a patch which seems to allow (on my computer) SBCL to be
> boot strapped on OpenBSD 3.4 (x86). The boot strapping was done using
> cmucl on freebsd as the "host".
OK, it's merged in CVS. Thank you.
It's not quite perfect; there are the ulimit hacks described below,
and I note also
The build seems to have finished successfully, including 9
(out of 13 ) contributed modules.
But it's smart enough to build itself, which is considerably better
than not being buildable for OpenBSD at all.
The just-merged NetBSD patch collided with your in several places, so
I had to fiddle with it manually a little, so there's a possibility I
could've done something dumb. But it does build and run on my machine,
so I hope it can't be too dumb.
Also I wasn't able to figure out how to get "ulimit -d" above 1048576
on my machine, even with :datasize=infinity: in /etc/login.conf. (My
machine has about 1400Mbytes RAM+swap; maybe there's some kind of
conservatism built into the system? I didn't find it either in the
online docs or Google, though.) As a quick fix, which should be
suitable for sbcl-0.8.10, I shrank the memory map; later maybe we can
do something more ambitious.
PS: For when people ask what to do when SBCL's policy of slurping up a
lot of address space at startup fights with OpenBSD's ulimits, I
sympathize, and here, recorded for posterity, is what I have figured
out so far:
* Your default soft limit (as reported by "ulimit -a") is probably
64Mbytes. SBCL is too much of a pig for that, and you'd almost
certainly have problems at least when you're trying to use it to
compile itself, so raise it. (with "ulimit -d") Now, how far can
you raise it?
** Ideally, you can get root to set you up with
in /etc/login.conf. Then you can raise it to some arbitrary
value that I haven't been able to find documented anywhere.
(1048576 on my machine)
** If you can't get root to help you out, you're not going to be
able to raise it above the hard limit fixed in /etc/login.conf,
which in OpenBSD 3.4 seems to default to 256Mbytes. That's
enough that it might be reasonable to run SBCL in it, but you'd
have to patch the memory map in src/compiler/x86/parms.lisp.
William Harold Newman <william.newman@...>
Cross-compiling SBCL is easy -- <http://sbcl-internals.cliki.net/Build>
PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C