gnu: u-boot: Fix target/system comparison in 'make-u-boot-package'.

Until now, running, say:

  guix build -e '(@@ (gnu packages bootloaders) u-boot-a20-olinuxino-micro)' \
    -s armhf-linux

on an x86_64-linux machine wouldn't have the desired effect
because (%current-system) would return "x86_64-linux" when 'same-arch?'
was evaluated.  This fixes that.

* gnu/packages/bootloaders.scm (make-u-boot-package)[same-arch?]: Turn
into a thunk so that (%current-system) is evaluated in the right
context, and adjust callers.  Use 'string=?' instead of 'string-prefix?'.
This commit is contained in:
Ludovic Courtès 2019-07-17 15:23:04 +02:00
parent f5854abc88
commit 6bfcb72926
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 5 additions and 6 deletions

View File

@ -524,17 +524,16 @@ board-independent tools.")))
(define-public (make-u-boot-package board triplet)
"Returns a u-boot package for BOARD cross-compiled for TRIPLET."
(let ((same-arch? (if (string-prefix? (%current-system)
(gnu-triplet->nix-system triplet))
`#t
`#f)))
(let ((same-arch? (lambda ()
(string=? (%current-system)
(gnu-triplet->nix-system triplet)))))
(package
(inherit u-boot)
(name (string-append "u-boot-"
(string-replace-substring (string-downcase board)
"_" "-")))
(native-inputs
`(,@(if (not same-arch?)
`(,@(if (not (same-arch?))
`(("cross-gcc" ,(cross-gcc triplet #:xgcc gcc-7))
("cross-binutils" ,(cross-binutils triplet)))
`(("gcc-7" ,gcc-7)))
@ -547,7 +546,7 @@ board-independent tools.")))
#:test-target "test"
#:make-flags
(list "HOSTCC=gcc"
,@(if (not same-arch?)
,@(if (not (same-arch?))
`((string-append "CROSS_COMPILE=" ,triplet "-"))
'()))
#:phases