diff options
author | Guillaume Le Vaillant <glv@posteo.net> | 2024-01-09 09:59:46 +0100 |
---|---|---|
committer | Guillaume Le Vaillant <glv@posteo.net> | 2024-01-09 10:04:20 +0100 |
commit | ea832b44b79fb06bac88679029773006fea15827 (patch) | |
tree | 2507d27d38dadb9c0145ad365f48a9ebe116fd93 | |
parent | 7f530f52c9c07b34c4df9c8fbeae0c3c9d0345e9 (diff) | |
download | guix-ea832b44b79fb06bac88679029773006fea15827.tar.gz guix-ea832b44b79fb06bac88679029773006fea15827.zip |
gnu: sbcl: Fix build on powerpc64.
* gnu/packages/patches/sbcl-fix-ppc64-build.patch: New file.
* gnu/local.mk: Register it.
* gnu/packages/lisp.scm (sbcl)[source]: Use it.
Change-Id: If81321bc7e4075ac7ec63f7b8d623011b4b975d5
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/lisp.scm | 1 | ||||
-rw-r--r-- | gnu/packages/patches/sbcl-fix-ppc64-build.patch | 27 |
3 files changed, 29 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index ee25e1535e..1bf8a9df27 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1988,6 +1988,7 @@ dist_patch_DATA = \ %D%/packages/patches/sbcl-burgled-batteries3-fix-signals.patch \ %D%/packages/patches/sbcl-clml-fix-types.patch \ %D%/packages/patches/sbcl-eazy-gnuplot-skip-path-check.patch \ + %D%/packages/patches/sbcl-fix-ppc64-build.patch \ %D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \ %D%/packages/patches/scalapack-gcc-10-compilation.patch \ %D%/packages/patches/scheme48-tests.patch \ diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 20ec61dfe5..40217780c8 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -447,6 +447,7 @@ an interpreter, a compiler, a debugger, and much more.") version "-source.tar.bz2")) (sha256 (base32 "0xhpdnsg8idzxkn20iw8gd2rk470d7vc22vrp5clq9fj117vgn43")) + (patches (search-patches "sbcl-fix-ppc64-build.patch")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/patches/sbcl-fix-ppc64-build.patch b/gnu/packages/patches/sbcl-fix-ppc64-build.patch new file mode 100644 index 0000000000..a7d4d9a21e --- /dev/null +++ b/gnu/packages/patches/sbcl-fix-ppc64-build.patch @@ -0,0 +1,27 @@ +commit 255f3ead060129aa097b62f10d054cdc4997a431 +Author: Douglas Katzman <dougk@google.com> +Date: Mon Jan 1 23:59:50 2024 -0500 + + Fix ppc64 failure-to-build (from a few weeks ago) + + Git rev 7354472bb5 caused NIL to get a bogus widetag. + +diff --git a/make-target-2-load.lisp b/make-target-2-load.lisp +index 6571ec27d..daef942ea 100644 +--- a/make-target-2-load.lisp ++++ b/make-target-2-load.lisp +@@ -339,7 +339,13 @@ Please check that all strings which were not recognizable to the compiler + + + (do-all-symbols (symbol) +- (sb-kernel:logior-header-bits symbol sb-vm::+symbol-initial-core+) ++ ;; Don't futz with the header of static symbols. ++ ;; Technically LOGIOR-HEADER-BITS can only be used on an OTHER-POINTER-LOWTAG ++ ;; objects, so modifying NIL should not ever work, but it's especially wrong ++ ;; on ppc64 where OTHER- and LIST- pointer lowtags are 10 bytes apart instead ++ ;; of 8, so this was making a random alteration to the header. ++ (unless (eq (heap-allocated-p symbol) :static) ++ (sb-kernel:logior-header-bits symbol sb-vm::+symbol-initial-core+)) + + ;; A symbol whose INFO slot underwent any kind of manipulation + ;; such that it now has neither properties nor globaldb info, |