0.8.9.49:

merged Scott Parish's patch for OpenBSD, with a few tweaks...
	...reduced space sizes to work around ulimit problems (as a
		quick hack, probably not the ideal long-term solution)
	...fiddling to work around collisions with NetBSD patch; ah,
		the joys of working on living, squirmy code
	...I think s/LISP_FEATURE_LINUX/LISP_FEATURE_SB_THREAD/ on
		create_thread() is correct; it was motivated by the
		way that now new_thread_trampoline() is defined only
		when LISP_FEATURE_SB_THREAD.
	minor issue encountered while going through xc: clean.sh
		should blow away src/runtime/genesis/.
This commit is contained in:
William Harold Newman 2004-04-19 03:41:40 +00:00
parent ef8fd235fa
commit 8f07013fea
11 changed files with 47 additions and 21 deletions

3
NEWS
View file

@ -2367,6 +2367,9 @@ changes in sbcl-0.8.10 relative to sbcl-0.8.9:
* Support for the forthcoming 2.0 version of the NetBSD kernel
running on x86 hardware has been added. (thanks to Perry
E. Metzger most immediately, and others for their past work)
* SBCL now runs on OpenBSD 3.4. (Thanks to Scott Parish; 3.4 is the
current release version; SBCL's OpenBSD support had been broken
since about the time of OpenBSD's switch to ELF binary format.)
* [placeholder for DX summary]
** user code with &REST lists declared dynamic-extent, under high
speed or space and low safety and debug optimization policy.

View file

@ -13,7 +13,7 @@
# this script (including "gmake clean" in the src/runtime directory)
# several times in a row without failure.. so we leave the output/
# directory in place.)
rm -rf obj/* output/* doc/user-manual \
rm -rf obj/* output/* src/runtime/genesis/ doc/user-manual \
doc/user-manual.junk doc/DBTOHTML_OUTPUT_DIR*
# (The doc/user-manual.junk and doc/DBTOHTML_OUTPUT_DIR* directories
# are created by the Cygnus db2html script when it formats the the

View file

@ -164,18 +164,26 @@
#!+(or freebsd openbsd)
(progn
(def!constant read-only-space-start #x10000000)
(def!constant read-only-space-end #x1ffff000)
(def!constant read-only-space-start
#!+freebsd #x10000000
#!+openbsd #x40000000)
(def!constant read-only-space-end
#!+freebsd #x1ffff000
#!+openbsd #x47fff000)
(def!constant static-space-start
#!+freebsd #x30000000
#!+openbsd #x28000000)
(def!constant static-space-end #x37fff000)
#!+openbsd #x50000000)
(def!constant static-space-end
#!+freebsd #x37fff000
#!+openbsd #x5ffff000)
(def!constant dynamic-space-start
#!+freebsd #x48000000
#!+openbsd #x50000000)
(def!constant dynamic-space-end #x88000000))
#!+freebsd #x48000000
#!+openbsd #x80000000)
(def!constant dynamic-space-end
#!+freebsd #x88000000
#!+openbsd #xA0000000))
#!+netbsd
(progn

View file

@ -451,7 +451,5 @@
;;; the symbol table (for example, prepending an underscore).
(defun extern-alien-name (name)
(declare (type simple-base-string name))
;; OpenBSD is non-ELF, and needs a _ prefix
#!+openbsd (concatenate 'string "_" name)
;; The other (ELF) ports currently don't need any prefix
#!-openbsd name)
;; non-ELF ports currently don't need any prefix
name)

View file

@ -37,7 +37,6 @@
#include <signal.h>
/* #include <sys/sysinfo.h> */
#include "validate.h"
os_vm_size_t os_vm_page_size;

View file

@ -18,8 +18,10 @@
#include <sys/signal.h>
typedef caddr_t os_vm_address_t;
#ifdef __NetBSD__
#if defined __NetBSD__
typedef vsize_t os_vm_size_t;
#elif defined __OpenBSD__
typedef size_t os_vm_size_t;
#else
typedef vm_size_t os_vm_size_t;
#endif

View file

@ -48,6 +48,7 @@ initial_thread_trampoline(struct thread *th)
* whatever other bookkeeping needs to be done
*/
#ifdef LISP_FEATURE_SB_THREAD
int
new_thread_trampoline(struct thread *th)
{
@ -62,6 +63,7 @@ new_thread_trampoline(struct thread *th)
th->state=STATE_RUNNING;
return funcall0(function);
}
#endif /* LISP_FEATURE_SB_THREAD */
/* this is called from any other thread to create the new one, and
* initialize all parts of it that can be initialized from another

View file

@ -160,7 +160,7 @@ F(sigvec)
F(socket)
F(socketpair)
F(stat)
#ifndef SVR4
#if !defined(SVR4) && !defined(__OpenBSD__)
F(swapon)
#endif
F(symlink)

View file

@ -30,6 +30,8 @@ ensure_space(lispobj *start, unsigned long size)
"ensure_space: failed to validate %ld bytes at 0x%08lx\n",
size,
(unsigned long)start);
fprintf(stderr,
"(hint: Try \"ulimit -a\"; maybe you should increase memory limits.)\n");
exit(1);
}
}

View file

@ -22,16 +22,29 @@
#include "genesis/symbol.h"
#include "genesis/thread.h"
/* Minimize conditionalization for different OS naming schemes. */
#if defined __linux__ || defined __FreeBSD__ || defined __NetBSD__ /* (but *not* OpenBSD) */
/* Minimize conditionalization for different OS naming schemes.
*
* (As of sbcl-0.8.10, this seems no longer to be much of an issue,
* since everyone has converged on ELF. If this generality really
* turns out not to matter, perhaps it's just clutter we could get
* rid of? -- WHN 2004-04-18)
*/
#if defined __linux__ || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__
#define GNAME(var) var
#else
#define GNAME(var) _##var
#endif
/* Get the right type of alignment. Linux, FreeBSD and NetBSD (but not OpenBSD)
* want alignment in bytes. */
#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
* want alignment in bytes.
*
* (As in the GNAME() definitions above, as of sbcl-0.8.10, this seems
* no longer to be much of an issue, since everyone has converged on
* the same value. If this generality really turns out not to
* matter any more, perhaps it's just clutter we could get
* rid of? -- WHN 2004-04-18)
*/
#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
#define align_4byte 4
#define align_8byte 8
#define align_16byte 16
@ -44,7 +57,6 @@
.text
.global GNAME(foreign_function_call_active)
.global GNAME(all_threads)
/*
* A call to call_into_c preserves esi, edi, and ebp.

View file

@ -17,4 +17,4 @@
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
"0.8.9.48"
"0.8.9.49"