diff --git a/gnu/local.mk b/gnu/local.mk index 20aef71bf5f..e766cbeff1a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -76,6 +76,7 @@ # Copyright © 2025 Nigko Yerden # Copyright © 2025 Cayetano Santos # Copyright © 2025 bdunahu +# Copyright © 2026 Simen Endsjø # # This file is part of GNU Guix. # @@ -2431,7 +2432,6 @@ dist_patch_DATA = \ %D%/packages/patches/sajson-build-with-gcc10.patch \ %D%/packages/patches/sane-look-for-plugins-in-SANE_BACKEND_LIB_PATH.patch \ %D%/packages/patches/sbc-fix-build-non-x86.patch \ - %D%/packages/patches/sbcl-fix-arm64-shared-lib.patch \ %D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch \ %D%/packages/patches/sbcl-aserve-fix-rfe12668.patch \ %D%/packages/patches/sbcl-burgled-batteries3-fix-signals.patch \ diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index e8b3a3ddc2b..91795c5b91a 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -34,6 +34,7 @@ ;;; Copyright © 2024 David Pflug ;;; Copyright © 2024 Janneke Nieuwenhuizen ;;; Copyright © 2026 Igorj Gorjaĉev +;;; Copyright © 2026 Simen Endsjø ;;; ;;; This file is part of GNU Guix. ;;; @@ -1371,16 +1372,14 @@ be built as a stand-alone REPL interpreter.") (define-public sbcl (package (name "sbcl") - (version "2.5.8") + (version "2.6.4") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-" version "-source.tar.bz2")) (sha256 - (base32 "1bm9hvsrg21mzqhcayiyghz0nkfp43ks840p0bg3bxlma22kwq57")) - ;; TODO: Remove this patch when upgrading to SBCL > 2.5.8. - (patches (search-patches "sbcl-fix-arm64-shared-lib.patch")) + (base32 "0yym01a6a2vp9cns46vi3ikg4q2jdnfijrh4yp2bgzk09djkx99v")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/patches/sbcl-fix-arm64-shared-lib.patch b/gnu/packages/patches/sbcl-fix-arm64-shared-lib.patch deleted file mode 100644 index 5aa654764ed..00000000000 --- a/gnu/packages/patches/sbcl-fix-arm64-shared-lib.patch +++ /dev/null @@ -1,129 +0,0 @@ -From b25c5a9f89922554e1221dab761e1eb583113953 Mon Sep 17 00:00:00 2001 -From: Douglas Katzman -Date: Thu, 4 Sep 2025 13:28:15 -0400 -Subject: [PATCH 1/2] Change asm to avoid 'ld' error making libsbcl.so on linux - -Fixes lp#2122059 ---- - src/runtime/arm64-assem.S | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/runtime/arm64-assem.S b/src/runtime/arm64-assem.S -index 95e0bfc89..b708f4ca0 100644 ---- a/src/runtime/arm64-assem.S -+++ b/src/runtime/arm64-assem.S -@@ -235,9 +235,15 @@ no_args: - - // load CARDTABLE-TN. reg_NAME macros aren't autogenerated for native asm code - // and it hardly seems worth #defining it to use in one assembly statement. -+#ifdef LISP_FEATURE_LINUX -+ adrp x28, :got:gc_card_mark -+ ldr x28, [x28, #:got_lo12:gc_card_mark] -+ ldr x28, [x28] -+#else - adrp x28, PAGE(gc_card_mark) - add x28, x28, PAGELOW(gc_card_mark) - ldr x28, [x28] -+#endif - - // Load the closure-fun (or simple-fun-self), in case we're - // trying to call a closure. --- -2.51.0 - -From 076ae8dfc67d23bda158666847c5f1b627d90778 Mon Sep 17 00:00:00 2001 -From: Stas Boukarev -Date: Thu, 4 Sep 2025 20:39:24 +0300 -Subject: [PATCH 2/2] Fix libsbcl.so on linux arm64 - -It got already fixed but this one has a macro. ---- - src/runtime/GNUmakefile | 2 +- - src/runtime/arm64-assem.S | 43 ++++++++++++++++++++++----------------- - 2 files changed, 25 insertions(+), 20 deletions(-) - -diff --git a/src/runtime/GNUmakefile b/src/runtime/GNUmakefile -index cb34b5586..3a63d1c67 100644 ---- a/src/runtime/GNUmakefile -+++ b/src/runtime/GNUmakefile -@@ -138,7 +138,7 @@ libsbcl.so: $(PIC_OBJS) - %.pic.o: %.c - $(CC) -fPIC -c $(CPPFLAGS) $(filter-out -fno-pie,$(CFLAGS)) $< -o $@ - %.pic.o: %.S # (-fPIC doesn't affect hand-written assembly source) -- $(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ -+ $(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ -DLIBSBCL - - SHRINKWRAP_DEPS = ../../output/sbcl.core ../../tools-for-build/elftool.lisp - shrinkwrap-sbcl.s shrinkwrap-sbcl-core.o: $(SHRINKWRAP_DEPS) -diff --git a/src/runtime/arm64-assem.S b/src/runtime/arm64-assem.S -index b708f4ca0..1794fc60e 100644 ---- a/src/runtime/arm64-assem.S -+++ b/src/runtime/arm64-assem.S -@@ -13,24 +13,37 @@ - - #endif - --#ifdef LISP_FEATURE_DARWIN --#define GNAME(var) _##var --#define PAGE(var) _##var@PAGE --#define PAGELOW(var) _##var@PAGEOFF --#else --#define GNAME(var) var --#define PAGE(var) var --#define PAGELOW(var) #:lo12:##var --#endif -- - #ifdef LISP_FEATURE_DARWIN - #define TYPE(name) - #define SIZE(name) -+#define GNAME(var) _##var -+ -+.macro LOAD_GNAME, dest, symbol -+ adrp \dest, _\symbol@PAGE -+ ldr \dest, [\dest, _\symbol@PAGEOFF] -+.endm -+ - #else -+ - #define TYPE(name) .type name,%function - #define SIZE(name) .size name,.-name -+#define GNAME(var) var -+ -+#ifdef LIBSBCL -+.macro LOAD_GNAME, dest, symbol -+ adrp \dest, :got:\symbol -+ ldr \dest, [\dest, #:got_lo12:\symbol] -+ ldr \dest, [\dest] -+.endm -+#else -+.macro LOAD_GNAME, dest, symbol -+ adrp \dest, \symbol -+ ldr \dest, [\dest, #:lo12:\symbol] -+.endm -+#endif - #endif - -+ - #ifdef LISP_FEATURE_SB_THREAD - .macro ENTER_PA - str reg_wNULL,[reg_THREAD,THREAD_PSEUDO_ATOMIC_BITS_OFFSET] -@@ -235,15 +248,7 @@ no_args: - - // load CARDTABLE-TN. reg_NAME macros aren't autogenerated for native asm code - // and it hardly seems worth #defining it to use in one assembly statement. --#ifdef LISP_FEATURE_LINUX -- adrp x28, :got:gc_card_mark -- ldr x28, [x28, #:got_lo12:gc_card_mark] -- ldr x28, [x28] --#else -- adrp x28, PAGE(gc_card_mark) -- add x28, x28, PAGELOW(gc_card_mark) -- ldr x28, [x28] --#endif -+ LOAD_GNAME x28, gc_card_mark - - // Load the closure-fun (or simple-fun-self), in case we're - // trying to call a closure. --- -2.51.0 -