summary refs log tree commit diff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorGuillaume Le Vaillant <glv@posteo.net>2024-01-11 16:49:24 +0100
committerGuillaume Le Vaillant <glv@posteo.net>2024-01-11 16:49:24 +0100
commit24f000a49a00b8dd3e9f51e08f0ef5567edf04aa (patch)
tree84fd0d601378b3a29979d6ef53c536e59b4b4847 /gnu/packages/patches
parent3dd8bf94a9d1a2eddb6eda9da7d4a3d422b9dfe9 (diff)
parentf122f2bead538617d3bd43a05fa6f2def5e03c05 (diff)
downloadguix-24f000a49a00b8dd3e9f51e08f0ef5567edf04aa.tar.gz
Merge branch 'lisp-team'
Change-Id: I4ec6ad695392c76c389224255477819fa686eecb
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/sbcl-fix-ppc64-build.patch27
-rw-r--r--gnu/packages/patches/sbcl-fix-riscv-build.patch19
2 files changed, 46 insertions, 0 deletions
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,
diff --git a/gnu/packages/patches/sbcl-fix-riscv-build.patch b/gnu/packages/patches/sbcl-fix-riscv-build.patch
new file mode 100644
index 0000000000..3e01ee6579
--- /dev/null
+++ b/gnu/packages/patches/sbcl-fix-riscv-build.patch
@@ -0,0 +1,19 @@
+commit b286d92af7468164c155c70d38213211b296fdfe
+Author: Douglas Katzman <dougk@google.com>
+Date:   Wed Jan 10 11:46:55 2024 -0500
+
+    Fix riscv build
+
+diff --git a/src/compiler/riscv/float.lisp b/src/compiler/riscv/float.lisp
+index ce46d24ac..a16380293 100644
+--- a/src/compiler/riscv/float.lisp
++++ b/src/compiler/riscv/float.lisp
+@@ -578,7 +578,7 @@
+   (:results (res :scs (double-reg)))
+   (:arg-types signed-num)
+   (:result-types double-float)
+-  (:translate make-double-float)
++  (:translate %make-double-float)
+   (:policy :fast-safe)
+   (:generator 2
+     (inst fmvx-> :double res bits)))