summary refs log tree commit diff
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2021-04-28 20:33:44 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2021-04-28 20:48:22 +0200
commit1059d1570b7078e6a83e067577b42ed24ee25b55 (patch)
treee9a11efe8503330f636a577ba04defe4c71e112e
parentf3b2d6681c0cbd361dcd5af05f156f15cb2c277b (diff)
downloadguix-1059d1570b7078e6a83e067577b42ed24ee25b55.tar.gz
gnu: ustr: Cross-compile.
Also fix <http://issues.guix.gnu.org/48084>.

* gnu/packages/text-utils.scm (ustr)[arguments]: Use CC-FOR-TARGET.
Add a new 'fix-cross-compilation phase.
-rw-r--r--gnu/packages/textutils.scm14
1 files changed, 13 insertions, 1 deletions
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index e7968c3185..b04abbd13c 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -315,7 +315,7 @@ input bits thoroughly but are not suitable for cryptography.")
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
-       (list "CC=gcc"
+       (list (string-append "CC=" ,(cc-for-target))
              "HIDE="
              ;; Override "/sbin/ldconfig" with "echo" because we don't need
              ;; "ldconfig".
@@ -324,6 +324,18 @@ input bits thoroughly but are not suitable for cryptography.")
              "all-shared")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'fix-cross-compilation
+           ;; The Makefile contains more insults than cross-compilation support.
+           ;; It poorly reinvents autotools by compiling C programmes with $CC,
+           ;; then tries to run them during the build.  Hard-code the results.
+           (lambda _
+             (substitute* "Makefile"
+               (("\\./autoconf_64b")
+                ,(if (target-64bit? (or (%current-target-system)
+                                        (%current-system)))
+                     "echo 1"
+                     "echo 0"))
+               (("\\./autoconf_vsnprintf") "echo 1"))))
          (add-after 'unpack 'disable-check-for-stdint
            (lambda _
              ;; Of course we have stdint.h, just not in /usr/include