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.
This commit is contained in:
Tobias Geerinckx-Rice 2021-04-28 20:33:44 +02:00
parent f3b2d6681c
commit 1059d1570b
No known key found for this signature in database
GPG key ID: 0DB0FF884F556D79

View file

@ -315,7 +315,7 @@ (define-public ustr
(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 @@ (define-public ustr
"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