summaryrefslogtreecommitdiff
path: root/extra/sbcl
diff options
context:
space:
mode:
Diffstat (limited to 'extra/sbcl')
-rw-r--r--extra/sbcl/PKGBUILD16
-rw-r--r--extra/sbcl/mips-arch.h.diff20
2 files changed, 32 insertions, 4 deletions
diff --git a/extra/sbcl/PKGBUILD b/extra/sbcl/PKGBUILD
index 5829ea5b4..7fd330474 100644
--- a/extra/sbcl/PKGBUILD
+++ b/extra/sbcl/PKGBUILD
@@ -9,16 +9,20 @@ pkgver=1.0.51
pkgrel=1
pkgdesc="Steel Bank Common Lisp"
url="http://www.sbcl.org/"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
license=('custom')
depends=('glibc')
provides=('common-lisp' 'cl-asdf')
makedepends=('sbcl' 'texinfo')
+[ "$CARCH" = "mips64el" ] && \
+makedepends=('clisp' 'texinfo')
install=sbcl.install
source=("http://downloads.sourceforge.net/project/sbcl/sbcl/$pkgver/$pkgname-$pkgver-source.tar.bz2"
- "arch-fixes.lisp")
+ "arch-fixes.lisp"
+ "mips-arch.h.diff")
md5sums=('08032cc777f1236953cb901e24775457'
- '7ac0c1936547f4278198b8bf7725204d')
+ '7ac0c1936547f4278198b8bf7725204d'
+ 'a456535d65d6c5b85b1b646f11455fce')
build() {
cd "$srcdir/$pkgname-$pkgver"
@@ -39,7 +43,11 @@ build() {
(disable :largefile)))
EOF
- sh make.sh sbcl
+ if [ "$CARCH" = "mips64el" ]; then
+ sh make.sh clisp
+ else
+ sh make.sh sbcl
+ fi
make -C doc/manual info
}
diff --git a/extra/sbcl/mips-arch.h.diff b/extra/sbcl/mips-arch.h.diff
new file mode 100644
index 000000000..4f593aa83
--- /dev/null
+++ b/extra/sbcl/mips-arch.h.diff
@@ -0,0 +1,20 @@
+--- sbcl-1.0.49.orig/src/runtime/mips-arch.h 2011-06-25 16:13:44.103101571 +0200
++++ sbcl-1.0.49/src/runtime/mips-arch.h 2011-06-25 16:14:31.279501569 +0200
+@@ -1,6 +1,8 @@
+ #ifndef _MIPS_ARCH_H
+ #define _MIPS_ARCH_H
+
++/* For lose. */
++#include "interr.h"
+
+ static inline void
+ get_spinlock(volatile lispobj *word, long value)
+@@ -31,7 +33,7 @@
+ [__new] "r" (value)
+ : "memory");
+
+- if (!cmp)
++ if (!__cmp)
+ lose("recursive get_spinlock: 0x%x,%d\n", word, value);
+ #else /* LISP_FEATURE_SB_THREAD */
+ *word=value;