Subject: bug#64436: Failure with "package-with-extra-configure-variable" & cross-gcc

From: Michael Ford <[email-masked]>
Date: Mon, 3 Jul 2023 13:43:24 +0100

The following is minimised from a manifest we are using to build a
number of cross-compilers, and related packages.

Using what is currently latest Guix:

"guix (GNU Guix) 669f0eaed6310233295fbd0a077afc9ce054c6ab"

and the following manifest:

(use-modules (guix)
         (guix build-system gnu)
         (gnu packages cross-base))

(define (gcc-with-extra-conf-var gcc)
  (package-with-extra-configure-variable gcc "--enable-gcov" "no"))

(packages->manifest
  (append
    (list
      (gcc-with-extra-conf-var (cross-gcc "x86_64-w64-mingw32"))
      )
    )
  )

I see the following build failure:

guix shell --no-substitutes --container -m test.scm
The following derivations will be built:
  /gnu/store/z0lgdcw0h7v8d6vjvyb63lpivqlfprvg-profile.drv
  /gnu/store/07vg6708dqasnpwy2555ks8m6icrpn8h-gcc-cross-sans-libc-x86_64-w64-mingw32-11.3.0.drv

building /gnu/store/07vg6708dqasnpwy2555ks8m6icrpn8h-gcc-cross-sans-libc-x86_64-w64-mingw32-11.3.0.drv...
|builder for `/gnu/store/07vg6708dqasnpwy2555ks8m6icrpn8h-gcc-cross-sans-libc-x86_64-w64-mingw32-11.3.0.drv'
failed with exit code 1
build of /gnu/store/07vg6708dqasnpwy2555ks8m6icrpn8h-gcc-cross-sans-libc-x86_64-w64-mingw32-11.3.0.drv
failed
View build log at
'/var/log/guix/drvs/07/vg6708dqasnpwy2555ks8m6icrpn8h-gcc-cross-sans-libc-x86_64-w64-mingw32-11.3.0.drv.gz'.
cannot build derivation
`/gnu/store/z0lgdcw0h7v8d6vjvyb63lpivqlfprvg-profile.drv': 1
dependencies couldn't be built
guix shell: error: build of
`/gnu/store/z0lgdcw0h7v8d6vjvyb63lpivqlfprvg-profile.drv' failed

cat /var/log/guix/drvs/07/vg6708dqasnpwy2555ks8m6icrpn8h-gcc-cross-sans-libc-x86_64-w64-mingw32-11.3.0.drv
ice-9/read.scm:126:4: In procedure read-expr*:
/gnu/store/mam4l4yyzks9jxsa60bcd124am81r3f9-gcc-cross-sans-libc-x86_64-w64-mingw32-11.3.0-builder:1:6398:
Unknown # object: "#<"