summaryrefslogtreecommitdiff
path: root/gnu/packages/guile-xyz.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-04-14 11:32:57 +0200
committerLudovic Courtès <ludo@gnu.org>2022-04-14 14:48:20 +0200
commit1f826021534c5ab290263708e970e8474f0364ff (patch)
tree844ed48407bcd65a13ab345582cb3b5a346e4d30 /gnu/packages/guile-xyz.scm
parentc9cded095593783a957ea500160587252d5cadf6 (diff)
downloadguix-patches-1f826021534c5ab290263708e970e8474f0364ff.tar
guix-patches-1f826021534c5ab290263708e970e8474f0364ff.tar.gz
gnu: guile-fibers@1.1: Support cross-compilation.
Fixes <https://issues.guix.gnu.org/54793>. Reported by Mathieu Othacehe <othacehe@gnu.org>. * gnu/packages/guile-xyz.scm (guile-fibers-1.1)[arguments]: Add 'support-cross-compilation' phase.
Diffstat (limited to 'gnu/packages/guile-xyz.scm')
-rw-r--r--gnu/packages/guile-xyz.scm19
1 files changed, 19 insertions, 0 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 3299b6cb74..863ebd17ea 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -627,6 +627,25 @@ Unix-style DSV format and RFC 4180 format.")
(add-after 'unpack 'regenerate-autotools
(lambda _
(delete-file "configure")))
+ (add-after 'unpack 'support-cross-compilation
+ (lambda* (#:key target #:allow-other-keys)
+ ;; Support cross-compilation. These issues are fixed in
+ ;; Fibers commit c4756b9c336374546a41ac90a4431fcc8f7e98ee
+ ;; and this phase can be removed for 1.1.1.
+ (when target
+ (substitute* "build-aux/guile.am"
+ (("\\$\\(AM_V_GEN\\)" all)
+ (string-append all " FIBERS_CROSS_COMPILING=yes "))
+ (("compile")
+ (string-append "compile --target=" target
+ " -L $(abs_top_srcdir)")))
+ (substitute* "fibers/epoll.scm"
+ (("\\(dynamic-call")
+ "(unless (getenv \"FIBERS_CROSS_COMPILING\") (dynamic-call")
+ (("\\(dynamic-link.*" all)
+ (string-append all ")\n"))
+ (("#,(%sizeof|%offsetof)" _ prefix)
+ prefix)))))
(add-after 'install 'mode-guile-objects
(lambda* (#:key outputs #:allow-other-keys)
;; .go files are installed to "lib/guile/X.Y/cache".