summaryrefslogtreecommitdiff
path: root/extra/sbcl
diff options
context:
space:
mode:
Diffstat (limited to 'extra/sbcl')
-rw-r--r--extra/sbcl/PKGBUILD10
-rw-r--r--extra/sbcl/mips-arch.h.diff20
2 files changed, 28 insertions, 2 deletions
diff --git a/extra/sbcl/PKGBUILD b/extra/sbcl/PKGBUILD
index 11f8b1388..b425ac087 100644
--- a/extra/sbcl/PKGBUILD
+++ b/extra/sbcl/PKGBUILD
@@ -9,11 +9,13 @@ pkgver=1.0.56
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")
@@ -39,7 +41,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;