guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

19/27: gnu: racket-vm-bc: Add workaround for ppc64le.


From: guix-commits
Subject: 19/27: gnu: racket-vm-bc: Add workaround for ppc64le.
Date: Sun, 4 Sep 2022 17:20:33 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 64a27e1678930307de49e29c4a55bd3b5de79857
Author: Philip McGrath <philip@philipmcgrath.com>
AuthorDate: Sat Aug 27 14:55:53 2022 -0400

    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>
---
 gnu/packages/racket.scm | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm
index 264b44b7fd..74052d47eb 100644
--- a/gnu/packages/racket.scm
+++ b/gnu/packages/racket.scm
@@ -412,7 +412,20 @@ code to use the 3M garbage collector.")
      (substitute-keyword-arguments (package-arguments racket-vm-cgc)
        ((#:configure-flags _ '())
         #~(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")
     (description "The Racket BC (``before Chez'' or ``bytecode'')
 implementation was the default before Racket 8.0.  It uses a compiler written



reply via email to

[Prev in Thread] Current Thread [Next in Thread]