[bug#55248,v3,6/9] gnu: stex: Get machine type dynamically.

Message ID 6521decd69c70fe38b056c2dbec10d1a1af0e570.1652075689.git.philip@philipmcgrath.com
State New
Headers
Series gnu: Update Racket to 8.5 and Chez Scheme to 9.5.8. |

Commit Message

Philip McGrath May 9, 2022, 6:02 a.m. UTC
* gnu/packages/chez.scm (stex)[arguments]: Run 'scheme' to determine
the machine type.
---
 gnu/packages/chez.scm | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
  

Patch

diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index 785b6837c1..dd485d37e1 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -602,6 +602,10 @@  (define-public stex-bootstrap
                             ("src" "lib/stex/")
                             ("Mf-stex" "lib/stex/")
                             ("Makefile.template" "lib/stex/"))
+         #:modules
+         '((guix build copy-build-system)
+           (guix build utils)
+           (ice-9 popen))
          #:phases
          #~(modify-phases %standard-phases
              (add-before 'install 'patch-sources
@@ -633,8 +637,14 @@  (define-public stex-bootstrap
                         (define makefile
                           (string-append (getcwd) "/Makefile"))
                         (define machine
-                          #$(and=> (nix-system->chez-machine)
-                                   chez-machine->threaded))
+                          (let ((pipe (open-pipe* OPEN_BOTH scheme "-q")))
+                            ;; try to not be wrong for cross-compilation
+                            ;; (avoid #% reader abbreviation for Guile)
+                            (write '(($primitive $target-machine)) pipe)
+                            (force-output pipe)
+                            (let ((sym (read pipe)))
+                              (close-pipe pipe)
+                              (symbol->string sym))))
                         (with-directory-excursion
                             (search-input-directory outputs "/lib/stex")
                           (invoke "make"