On 2021-04-18, Grant Wilson II wrote: > If I interpret the source correctly, "firmware" is being provided to the > package as a native input. > When I attempt the build without cross compiling then it does succeed... > `guix build -e "(@ (gnu packages bootloaders) u-boot-pinebook-pro-rk3399)"` > > However that does defeat the purpose. > > Why would the "firmware" native input not be available when targeting > aarch64-linux-gnu? That seems to be the problem, yes... It is failing in the set-environment phase... (define-public u-boot-pinebook-pro-rk3399 ... (add-after 'unpack 'set-environment (lambda* (#:key inputs #:allow-other-keys) (setenv "BL31" (string-append (assoc-ref inputs "firmware") "/bl31.elf")) #t)) Works: guix build arm-trusted-firmware-rk3399 guix build u-boot-pinebook-pro-rk3399 guix build --target=aarch64-linux arm-trusted-firmware-rk3399 Fails: guix build --target=aarch64-linux u-boot-pinebook-pro-rk3399 So the firmware (arm-trusted-firmware-rk3399) exists, but for some reason isn't available while cross-building. It appears to be present in the both the cross-built and "regular" firmware package: $ guix build --target=aarch64-linux arm-trusted-firmware-rk3399 /gnu/store/v3nkj3hiihllwp9kn65ih7xi2bjbp58v-arm-trusted-firmware-rk3399-2.4 $ guix build arm-trusted-firmware-rk3399 /gnu/store/jpm4hfqh08s9ns3pd5h3r798z7pdbp0m-arm-trusted-firmware-rk3399-2.4 $ ls /gnu/store/v3nkj3hiihllwp9kn65ih7xi2bjbp58v-arm-trusted-firmware-rk3399-2.4 /gnu/store/jpm4hfqh08s9ns3pd5h3r798z7pdbp0m-arm-trusted-firmware-rk3399-2.4 /gnu/store/jpm4hfqh08s9ns3pd5h3r798z7pdbp0m-arm-trusted-firmware-rk3399-2.4: bl31.elf rk3399m0.bin rk3399m0.elf rk3399m0pmu.bin rk3399m0pmu.elf share /gnu/store/v3nkj3hiihllwp9kn65ih7xi2bjbp58v-arm-trusted-firmware-rk3399-2.4: bl31.elf rk3399m0.bin rk3399m0.elf rk3399m0pmu.bin rk3399m0pmu.elf share So... I'm not very familiar with how --target=ARCH cross-building works in guix, but that somehow appears to trigger the issue... live well, vagrant