blob: a7d4d9a21e0cb9e474e0c1ff58e814bca2830794 (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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,
|