gnu: racket-vm-bc: Add workaround for ppc64le.
This is an attempt to avoid a problem with Racket BC on ppc64 reported in <https://issues.guix.gnu.org/57050#19> that was exposed by attempting to use Racket BC to bootstrap Chez Scheme. Thanks to Matthew Flatt for the workaround: <https://racket.discourse.group/t/950/30>. * gnu/packages/racket.scm (racket-vm-bc)[arguments]<#:configure-flags>: Increase the number of bytes that should be available on the stack for "safety" when checking for stack overflow. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
		
							parent
							
								
									a15d72f8e1
								
							
						
					
					
						commit
						64a27e1678
					
				
					 1 changed files with 14 additions and 1 deletions
				
			
		| 
						 | 
					@ -412,7 +412,20 @@ code to use the 3M garbage collector.")
 | 
				
			||||||
     (substitute-keyword-arguments (package-arguments racket-vm-cgc)
 | 
					     (substitute-keyword-arguments (package-arguments racket-vm-cgc)
 | 
				
			||||||
       ((#:configure-flags _ '())
 | 
					       ((#:configure-flags _ '())
 | 
				
			||||||
        #~(cons "--enable-bconly"
 | 
					        #~(cons "--enable-bconly"
 | 
				
			||||||
                #$racket-vm-common-configure-flags))))
 | 
					                #$(cond
 | 
				
			||||||
 | 
					                   ((target-ppc64le?)
 | 
				
			||||||
 | 
					                    ;; Attempt to avoid a problem bootstrapping Chez Scheme:
 | 
				
			||||||
 | 
					                    ;; see <https://issues.guix.gnu.org/57050#19>
 | 
				
			||||||
 | 
					                    ;; and <https://racket.discourse.group/t/950/30>.
 | 
				
			||||||
 | 
					                    #~(map
 | 
				
			||||||
 | 
					                       (lambda (flag)
 | 
				
			||||||
 | 
					                         (if (string-prefix? "CPPFLAGS=" flag)
 | 
				
			||||||
 | 
					                             (string-append flag
 | 
				
			||||||
 | 
					                                            " -DSTACK_SAFETY_MARGIN=2000000")
 | 
				
			||||||
 | 
					                             flag))
 | 
				
			||||||
 | 
					                       #$racket-vm-common-configure-flags))
 | 
				
			||||||
 | 
					                   (else
 | 
				
			||||||
 | 
					                    racket-vm-common-configure-flags))))))
 | 
				
			||||||
    (synopsis "Racket BC [3M] implementation")
 | 
					    (synopsis "Racket BC [3M] implementation")
 | 
				
			||||||
    (description "The Racket BC (``before Chez'' or ``bytecode'')
 | 
					    (description "The Racket BC (``before Chez'' or ``bytecode'')
 | 
				
			||||||
implementation was the default before Racket 8.0.  It uses a compiler written
 | 
					implementation was the default before Racket 8.0.  It uses a compiler written
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue