gnu: commencement: Ensure 'gnu-make-final' refers to the native 'pkg-config'.
authorLudovic Courtès <ludo@gnu.org>
Thu, 7 Nov 2019 09:22:24 +0000 (10:22 +0100)
committerLudovic Courtès <ludo@gnu.org>
Thu, 7 Nov 2019 17:39:55 +0000 (18:39 +0100)
Fixes <https://bugs.gnu.org/38093>.

When running:

  guix build --target=arm-linux-gnueabihf -e '(@ (gnu packages base) coreutils)'

the '%current-target-system' parameter is set by the time the top-level
of (gnu packages commencement) is evaluated.  Consequently, we need to
ensure that the 'pkg-config' macro evaluates in a context where
'%current-target-system' is unset.

* gnu/packages/commencement.scm (gnu-make-final): Refer to '%pkg-config'
instead of 'pkg-config'.
* tests/guix-build.sh: Add test.

gnu/packages/commencement.scm
tests/guix-build.sh

index b022a0d..6a382c7 100644 (file)
@@ -2402,7 +2402,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
   ;; PKG-CONFIG.
   ;; TODO: Fix that on the next rebuild cycle.
   (let ((pkg-config (package
-                      (inherit pkg-config)
+                      (inherit %pkg-config)       ;the native pkg-config
                       (inputs `(("guile" ,guile-final)
                                 ,@(%boot5-inputs)))
                       (arguments
index 37666ff..52feda9 100644 (file)
@@ -226,6 +226,10 @@ rmdir "$result"
 # Cross building.
 guix build coreutils --target=mips64el-linux-gnu --dry-run --no-substitutes
 
+# Likewise, but with '-e' (see <https://bugs.gnu.org/38093>).
+guix build --target=arm-linux-gnueabihf --dry-run \
+     -e '(@ (gnu packages base) coreutils)'
+
 # Replacements.
 drv1=`guix build guix --with-input=guile@2.0=guile@2.2 -d`
 drv2=`guix build guix -d`