that the various BOOLE-related constants have the same value in
host and target lisps. (noted by Paul Dietz' test suite on an
SBCL binary built from CLISP)
+ * the system can now be dynamically linked on the MIPS platform,
+ which enables dynamic loading of foreign code from Lisp. (thanks
+ to Ralf Baechle for discussions on the MIPS ABI)
* fixed a compiler bug: MV-LET convertion did not check references
to the "max args" entry point. (reported by Brian Downing)
* tweaked disassembly notes to be less confident about proclaiming
LINKFLAGS = -v -g
NM = nm -p
-ASSEM_SRC = mips-assem.S #hppa-linux-stubs.S
-ARCH_SRC = mips-arch.c undefineds.c
+ASSEM_SRC = mips-assem.S ldso-stubs.S
+ARCH_SRC = mips-arch.c #undefineds.c
OS_SRC = linux-os.c mips-linux-os.c os-common.c
-LINKFLAGS+=-static
OS_LIBS= -ldl
GC_SRC= cheneygc.c
nop /* delay slot*/ ; \
.L ## fct ## e1: ; \
.size ldso_stub__ ## fct,.L ## fct ## e1-ldso_stub__ ## fct ;
+
+#elif defined LISP_FEATURE_MIPS
+
+/* KLUDGE: set up the vital fifth argument, passed on the
+ stack. Do this unconditionally, even if the stub is for a
+ function with few arguments: it can't hurt. We only do this for
+ the fifth argument, as the first four are passed in registers
+ and we apparently don't ever need to pass six arguments to a
+ libc function. -- CSR, 2003-10-29 */
+
+#define LDSO_STUBIFY(fct) \
+.globl ldso_stub__ ## fct ; \
+ .type ldso_stub__ ## fct,@function ; \
+ldso_stub__ ## fct: ; \
+ addiu $29,-48 ; \
+ sw $28,40($29) ; \
+ sw $31,44($29) ; \
+ lw $25,64($29) ; \
+ sw $25,16($29) ; \
+ la $25, fct ; \
+ jalr $25 ; \
+ lw $31,44($29) ; \
+ lw $28,40($29) ; \
+ addiu $29,48 ; \
+ jr $31 ; \
+.L ## fct ## e1: ; \
+ .size ldso_stub__ ## fct,.L ## fct ## e1-ldso_stub__ ## fct ;
#else
#error unsupported CPU architecture
;;; 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.5.16"
+"0.8.5.17"