NetBSD/PPC support (from Aymeric Vincent sbcl-devel 2007-01-18).
;;;; -*- coding: utf-8; -*-
changes in sbcl-1.0.3 relative to sbcl-1.0.2:
+ * new platform: NetBSD/PPC. (thanks to Aymeric Vincent)
* optimization: calls of the form (AREF FOO (+ INDEX <constant>)) now
produce more efficient code on the x86 if the compiler can determine
that (+ INDEX <constant>) does not require a bounds check and FOO
[Aa]lpha) guessed_sbcl_arch=alpha ;;
sparc*) guessed_sbcl_arch=sparc ;;
sun*) guessed_sbcl_arch=sparc ;;
- ppc) guessed_sbcl_arch=ppc ;;
+ *ppc) guessed_sbcl_arch=ppc ;;
ppc64) guessed_sbcl_arch=ppc ;;
Power*Macintosh) guessed_sbcl_arch=ppc ;;
parisc) guessed_sbcl_arch=hppa ;;
echo "See the limit(1) or ulimit(1) commands and the README file."
exit 1
fi
+elif [ "$sbcl_arch" = "ppc" -a "$sbcl_os" = "netbsd" ]; then
+ printf ' :gencgc :stack-allocatable-closures :linkage-table' >> $ltf
elif [ "$sbcl_arch" = "sparc" ]; then
# Test the compiler in order to see if we are building on Sun
# toolchain as opposed to GNU binutils, and write the appropriate
;;; Given a signal context, return the floating point modes word in
;;; the same format as returned by FLOATING-POINT-MODES.
;;;
-;;; FIXME: surely this must be accessible somewhere under Darwin?
-#!-darwin
+;;; FIXME: surely this must be accessible somewhere under Darwin? Or
+;;; under NetBSD?
+#!+linux
(define-alien-routine ("os_context_fp_control" context-floating-point-modes)
(sb!alien:unsigned 32)
(context (* os-context-t)))
(def!constant linkage-table-space-end #x0b000000)
(def!constant linkage-table-entry-size 16))
+#!+netbsd
+(progn
+ #!+gencgc
+ (progn
+ (def!constant dynamic-space-start #x4f000000)
+ (def!constant dynamic-space-end #x7efff000))
+ #!-gencgc
+ (progn
+ (def!constant dynamic-0-space-start #x4f000000)
+ (def!constant dynamic-0-space-end #x66fff000)
+ (def!constant dynamic-1-space-start #x67000000)
+ (def!constant dynamic-1-space-end #x7efff000))
+
+ (def!constant linkage-table-space-start #x0a000000)
+ (def!constant linkage-table-space-end #x0b000000)
+ (def!constant linkage-table-entry-size 16))
+
#!+darwin
(progn
#!+gencgc
Caveat callers. */
+#if defined (LISP_FEATURE_DARWIN) || defined(LISP_FEATURE_LINUX)
#ifndef PT_DAR
#define PT_DAR 41
#endif
#ifndef PT_DSISR
#define PT_DSISR 42
#endif
+#endif
void arch_init() {
}
unsigned long pc = (unsigned long)(*os_context_pc_addr(context));
os_vm_address_t addr;
+#if defined(LISP_FEATURE_NETBSD)
+ addr = (os_vm_address_t) (code->si_addr);
+#else
addr = (os_vm_address_t) (*os_context_register_addr(context,PT_DAR));
+#endif
return addr;
}
test-status.lisp-expr
run-program-ed-test.tmp
threads-foreign.c
+read-sequence.data
+write-sequence.data
.L ## fct ## e1: ; \\
.size ldso_stub__ ## fct,.L ## fct ## e1-ldso_stub__ ## fct ;"
-#!+(and linux ppc) "
+#!+(and (not darwin) ppc) "
#define LDSO_STUBIFY(fct) \\
.globl ldso_stub__ ## fct ; \\
.type ldso_stub__ ## fct,@function ; \\
;;; 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".)
-"1.0.2.10"
+"1.0.2.11"