* 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
		
			
				
	
	
		
			27 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 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,
 |