summary refs log tree commit diff
path: root/gnu/packages/bootloaders.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-07-17 15:23:04 +0200
committerLudovic Courtès <ludo@gnu.org>2019-07-17 15:36:04 +0200
commit6bfcb729268e0d20c6ae78224aef0eaad2ee2e74 (patch)
tree56f223208f4ebdae2821703eaeecd4dcbc46c5d5 /gnu/packages/bootloaders.scm
parentf5854abc881ea279c0496234037621e145831e6c (diff)
downloadguix-6bfcb729268e0d20c6ae78224aef0eaad2ee2e74.tar.gz
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?'.
Diffstat (limited to 'gnu/packages/bootloaders.scm')
-rw-r--r--gnu/packages/bootloaders.scm11
1 files changed, 5 insertions, 6 deletions
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index dda258a52e..41a2de9706 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -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