Subject: Re: Chez Scheme for Racket build on aarch64 (patch attached)

From: Philip McGrath <[email-masked]>
Date: Sat, 25 Mar 2023 01:36:17 -0400

On Friday, March 24, 2023 4:03:19 PM EDT Tim Johann wrote:
> Hi Philip,
> 
> Happy to be of help.
> 
> Thanks for the pointers, here's the amended patch.  I hope it is to your
> liking.
> 

Thanks, this addresses my concerns!

I'm not a Guix committer, so I'm cc'ing a couple of people who have applied 
recent patches to this file. They may want to review the commit message for 
style, also.

I expect the underlying issue would also affect riscv64, but I hit some network 
trouble when trying to look for a build log just now.

-Philip

commit e3c514db745d48e5ef7f7abb7b45037341298b17
Author: Tim Johann <[email-masked]>
Date:   Fri Mar 24 21:09:52 2023 +0100

    gnu: chez-scheme-for-racket-bootstrap-bootfiles: change for aarch64.
    
    * gnu/packages/chez.scm (chez-scheme-for-racket-bootstrap-bootfiles):
      Temporary change for build on aarch64, making racket available on aarch64.
      Architecture autodetect in rktboot only addresses x86 archs, so far.
      This work-around sets the architecture, looked up in translation table,
      explicitly.  The long term solution should be to fix rktboot to include
      other natively supported architectures in the autodetect mechanism.
        cf. https://github.com/racket/racket/issues/3948
      [arguments] use --machine even when architecture is supported by Racket's
      fork of ChezScheme.

diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index c6420a980e..ab6eaba6bd 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -692,10 +692,12 @@ (define-public chez-scheme-for-racket-bootstrap-bootfiles
                          (search-input-file (or native-inputs inputs)
                                             "/opt/racket-vm/bin/racket")
                          "../rktboot/main.rkt"
-                         #$@(if (racket-cs-native-supported-system?)
-                                #~()
-                                (let ((m (nix-system->pbarch-machine-type)))
-                                  #~("--machine" #$m)))))))))))))
+                         ;; Temporary handling of builds on non-x86 architectures,
+                         ;; see https://github.com/racket/racket/issues/3948
+                         ;; Autodetect in rktboot only addresses x86 archs, so far.
+                         #$@(let ((m (or (racket-cs-native-supported-system?)
+                                         (nix-system->pbarch-machine-type))))
+                              #~("--machine" #$m))))))))))))
     (supported-systems
      (package-supported-systems chez-scheme-for-racket))
     (home-page "https://github.com/racket/ChezScheme")