gnu: coreutils: Fix cross-compilation.

Previously cross-compiling coreutils would fail with:

  aarch64-linux-gnu-gcc   -Os -g0 -Wl,--as-needed -static -pthread -o src/uptime src/uptime.o src/libver.a lib/libcoreutils.a  lib/libcoreutils.a
  /gnu/store/hk8615wmmzk28k5z06g69jm6vbhc8lgk-glibc-cross-aarch64-linux-gnu-2.26.105-g0890d5379c-static/lib/libc.a(mktime.o): In function `__mktime_internal':
  /tmp/guix-build-glibc-cross-aarch64-linux-gnu-2.26.105-g0890d5379c.drv-0/glibc-2.26-105-g0890d5379c/time/mktime.c:353: multiple definition of `__mktime_internal'
  lib/libcoreutils.a(mktime.o):mktime.c:(.text+0x214): first defined here
  collect2: error: ld returned 1 exit status

* gnu/packages/base.scm (coreutils)[arguments]: Add #:configure-flags
when cross-compiling.
This commit is contained in:
Ludovic Courtès 2017-12-29 13:15:42 +01:00
parent fcc1e6760d
commit f3c294a2ab
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -339,7 +339,13 @@ (define-public coreutils
(("/bin/sh") (which "sh")))
(substitute* (find-files "tests" "\\.sh$")
(("#!/bin/sh") (which "sh")))
#t)))))
#t)))
;; Work around a cross-compilation bug whereby libcoreutils.a would
;; provide '__mktime_internal', which conflicts with the one in libc.a.
,@(if (%current-target-system)
`(#:configure-flags '("gl_cv_func_working_mktime=yes"))
'())))
(synopsis "Core GNU utilities (file, text, shell)")
(description
"GNU Coreutils includes all of the basic command-line tools that are