From 29d58ab55a3c6d2e626274c6a9f2ab8cfcc57d06 Mon Sep 17 00:00:00 2001
sbcl 2.2.10 currently doesn't build on aarch64. Upstream has fixed the
needed until the next release.
---
gnu/packages/lisp.scm | 1 +
...ix-build-on-arm64-with-clisp-as-host.patch | 27 +++++++++++++++++++
2 files changed, 28 insertions(+)
create mode 100644 gnu/packages/patches/sbcl-fix-build-on-arm64-with-clisp-as-host.patch
Toggle diff (47 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 80018f8e1a..1b6b08d72f 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -429,6 +429,7 @@ (define-public sbcl
(method url-fetch)
(uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
version "-source.tar.bz2"))
+ (patches (search-patches "sbcl-fix-build-on-arm64-with-clisp-as-host.patch"))
(sha256
(base32 "0cq8x4svkawirxq5s5gs4qxkl23m4q5p722a2kpss8qjfslc7hwc"))))
(build-system gnu-build-system)
diff --git a/gnu/packages/patches/sbcl-fix-build-on-arm64-with-clisp-as-host.patch b/gnu/packages/patches/sbcl-fix-build-on-arm64-with-clisp-as-host.patch
new file mode 100644
index 0000000000..4fe3ed16db
--- /dev/null
+++ b/gnu/packages/patches/sbcl-fix-build-on-arm64-with-clisp-as-host.patch
@@ -0,0 +1,27 @@
+From 944f53fb00794f4bc96700dd14df1e88b6cd5623 Mon Sep 17 00:00:00 2001
+From: Christophe Rhodes <csr21@cantab.net>
+Date: Thu, 17 Nov 2022 22:29:26 +0000
+Subject: [PATCH] Fix build on arm64 with clisp as host
+
+Make sure the offset constants are defined while compiling vm.lisp.
+---
+ src/compiler/arm64/vm.lisp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/compiler/arm64/vm.lisp b/src/compiler/arm64/vm.lisp
+index ae6d7c7fa..2a151be58 100644
+--- a/src/compiler/arm64/vm.lisp
++++ b/src/compiler/arm64/vm.lisp
+@@ -23,7 +23,8 @@
+ (macrolet ((defreg (name offset)
+ (let ((offset-sym (symbolicate name "-OFFSET")))
+ `(progn
+- (defconstant ,offset-sym ,offset)
++ (eval-when (:compile-toplevel :load-toplevel :execute)
++ (defconstant ,offset-sym ,offset))
+ (setf (svref *register-names* ,offset-sym) ,(symbol-name name)))))
+
+ (defregset (name &rest regs)
+--
+2.30.2
+
--
2.38.1