summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-12-22 17:15:05 +0100
committerLudovic Courtès <ludo@gnu.org>2017-12-30 01:30:20 +0100
commit33c3a214a4194a34b534bccf76bdd05db8ee565b (patch)
tree7de03dfa58af5e9e13e28411bfbf4513a35c3a9d
parentabdb97f8ce5c3577873c0286afab0fa14fcca8fb (diff)
downloadguix-33c3a214a4194a34b534bccf76bdd05db8ee565b.tar.gz
gnu: guile@2.2: Fix cross-compilation.
Previously it would fail with:

    GUILEC language/elisp/boot.go
  [...]
  In language/bytecode/spec.scm:
      28:15  2 (bytecode->value #vu8(127 69 76 70 1 1 1 255 0 0 0 0 0 0 0 0 3 0 0 0 1 0 0 0 0 0 0 0 52 0 0 0 24 ?) ?)
  In unknown file:
	     1 (load-thunk-from-memory #vu8(127 69 76 70 1 1 1 255 0 0 0 0 0 0 0 0 3 0 0 0 1 0 0 0 0 0 0 0 52 0 0 ?))
  In ice-9/boot-9.scm:
     752:25  0 (dispatch-exception _ _ _)

  ice-9/boot-9.scm:752:25: In procedure dispatch-exception:
  In procedure load-thunk-from-memory: No such file or directory

* gnu/packages/guile.scm (guile-2.2)[arguments]: New field.
-rw-r--r--gnu/packages/guile.scm19
1 files changed, 18 insertions, 1 deletions
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index bc6fcd74eb..cf87688627 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -249,7 +249,24 @@ without requiring the source code to be rewritten.")
            (search-path-specification
             (variable "GUILE_LOAD_COMPILED_PATH")
             (files '("lib/guile/2.2/site-ccache"
-                     "share/guile/site/2.2")))))))
+                     "share/guile/site/2.2")))))
+
+    (arguments
+     (if (%current-target-system)
+         (substitute-keyword-arguments (package-arguments guile-2.0)
+           ((#:phases phases '%standard-phases)
+            `(modify-phases ,phases
+               (add-after 'unpack 'sacrifice-elisp-support
+                 (lambda _
+                   ;; Cross-compiling language/elisp/boot.el fails, so
+                   ;; sacrifice it.  See
+                   ;; <https://git.savannah.gnu.org/cgit/guile.git/commit/?h=stable-2.2&id=988aa29238fca862c7e2cb55f15762a69b4c16ce>
+                   ;; for the upstream fix.
+                   (substitute* "module/Makefile.in"
+                     (("language/elisp/boot\\.el")
+                      "\n"))
+                   #t)))))
+         (package-arguments guile-2.0)))))
 
 (define-public guile-2.2/fixed
   ;; A package of Guile 2.2 that's rarely changed.  It is the one used