Subject: bug#66866: aarch64 system cross compilation + pinebook pro image broken?

From: Denis 'GNUtoo' Carikli <[email-masked]>
Date: Wed, 1 Nov 2023 02:55:17 +0100

Hi,

With:
> $ guix describe
> Generation 311	nov. 01 2023 00:03:34	(current)
>   guix 938a47c
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: 938a47c86d7bea785f33f42834c5c1f3dfa594b0

And the following minimalist system configuration:
> ;;; Copyright © 2023 Denis 'GNUtoo' Carikli. SPDX-License-Identifier:
> GPL-3.0+ (use-modules (gnu bootloader) 
> 	     (gnu bootloader u-boot)
> 	     (gnu system file-systems)
> 	     (gnu packages linux)
> 	     (guix gexp))
> (operating-system
>   (host-name "g")
>   (bootloader (bootloader-configuration
>               (bootloader u-boot-rockpro64-rk3399-bootloader)
>               (targets '("/dev/mmcblk2"))))
>   (kernel linux-libre-arm64-generic)
>   (file-systems (cons (file-system (mount-point "/")
>                                    (device "/dev/vda1")
>                                    (type "ext4"))
>                        %base-file-systems)))

that I built with:
> guix system build --target=aarch64-linux-gnu noconfig.scm

I end up with:
> [...]
> checking build system type... x86_64-unknown-linux-gnu
> checking host system type... Invalid configuration
> `aarch64-linux-gnu': machine `aarch64' not recognized configure:
> error:
> /gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash
> ./config.sub aarch64-linux-gnu failed error: in phase 'configure':
> uncaught exception: srfi-34 #<condition &invoke-error [program:
> "/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash"
> arguments: ("./configure" "CC_FOR_BUILD=gcc"
> "CONFIG_SHELL=/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash"
> "SHELL=/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash"
> "--prefix=/gnu/store/mn43k8aldd7h9jcx8q5ryij29kdqriz0-gawk-mesboot-3.1.8"
> "--enable-fast-install" "--build=x86_64-unknown-linux-gnu"
> "--host=aarch64-linux-gnu" "ac_cv_func_connect=no") exit-status: 1
> term-signal: #f stop-signal: #f] 1700400> phase `configure' failed
> after 115.3 seconds command
> "/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash"
> "./configure" "CC_FOR_BUILD=gcc"
> "CONFIG_SHELL=/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash"
> "SHELL=/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash"
> "--prefix=/gnu/store/mn43k8aldd7h9jcx8q5ryij29kdqriz0-gawk-mesboot-3.1.8"
> "--enable-fast-install" "--build=x86_64-unknown-linux-gnu"
> "--host=aarch64-linux-gnu" "ac_cv_func_connect=no" failed with status
> 1 builder for
> `/gnu/store/9xwp6pi7ssi9jhhj50dd1apryidcz2hk-gawk-mesboot-3.1.8.drv'
> failed with exit code 1 build of
> /gnu/store/9xwp6pi7ssi9jhhj50dd1apryidcz2hk-gawk-mesboot-3.1.8.drv
> failed View build log at
> '/var/log/guix/drvs/9x/wp6pi7ssi9jhhj50dd1apryidcz2hk-gawk-mesboot-3.1.8.drv.gz'.
> cannot build derivation
> `/gnu/store/jgd1kl2zavkxsvxa875r8lpndq292vgb-glibc-2.35.drv': 1
> dependencies couldn't be built guix system: error: build of
> `/gnu/store/jgd1kl2zavkxsvxa875r8lpndq292vgb-glibc-2.35.drv' failed

I've tried to bisect that with:
$ guix time-machine --commit=<commit> -- \
  system build--target=aarch64-linux-gnu noconfig.scm 
but strangely I failed to find some working commit, so I end up not
being able to bisect.

As I understand the Pinebook pro image is also cross compiled, so
normally that should fail in the same way. But here something is
really strange as well:
- The CI says everything is ok here:
  https://ci.guix.gnu.org/build/2279759/details
- The download image doesn't exist but return '{"error":"Could not find
  the requested build product."}' instead.

That correspond to the commit e6af40d7b46b5c9e397a38c62c885fb42ccd9d26 .

So if I use:
> ;; Adapted from Guix manual, GFDL 1.3 (+?)
> (use-modules (gnu system images pine64))
> (operating-system (inherit pine64-barebones-os))

with:
$ guix time-machine \
  --commit=e6af40d7b46b5c9e397a38c62c885fb42ccd9d26 \
  -- \
  system build --target=aarch64-linux-gnu pine64.scm 

I still end up with:
> checking build system type... x86_64-unknown-linux-gnu
> checking host system type... Invalid configuration
> `aarch64-linux-gnu': machine `aarch64' not recognized configure:
> error:
> /gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash
> ./config.sub aarch64-linux-gnu failed error: in phase 'configure':
> uncaught exception: srfi-34 #<condition &invoke-error [program:
> "/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash"
> arguments: ("./configure" "CC_FOR_BUILD=gcc"
> "CONFIG_SHELL=/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash"
> "SHELL=/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash"
> "--prefix=/gnu/store/mn43k8aldd7h9jcx8q5ryij29kdqriz0-gawk-mesboot-3.1.8"
> "--enable-fast-install" "--build=x86_64-unknown-linux-gnu"
> "--host=aarch64-linux-gnu" "ac_cv_func_connect=no") exit-status: 1
> term-signal: #f stop-signal: #f] 170f400> phase `configure' failed
> after 209.2 seconds command
> "/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash"
> "./configure" "CC_FOR_BUILD=gcc"
> "CONFIG_SHELL=/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash"
> "SHELL=/gnu/store/rb75igdc6daly1mz2ivz7rs8hd85imdz-gash-boot-0.3.0/bin/bash"
> "--prefix=/gnu/store/mn43k8aldd7h9jcx8q5ryij29kdqriz0-gawk-mesboot-3.1.8"
> "--enable-fast-install" "--build=x86_64-unknown-linux-gnu"
> "--host=aarch64-linux-gnu" "ac_cv_func_connect=no" failed with status
> 1 builder for
> `/gnu/store/9xwp6pi7ssi9jhhj50dd1apryidcz2hk-gawk-mesboot-3.1.8.drv'
> failed with exit code 1 build of
> /gnu/store/9xwp6pi7ssi9jhhj50dd1apryidcz2hk-gawk-mesboot-3.1.8.drv
> failed View build log at
> '/var/log/guix/drvs/9x/wp6pi7ssi9jhhj50dd1apryidcz2hk-gawk-mesboot-3.1.8.drv.gz'.
> cannot build derivation
> `/gnu/store/jgd1kl2zavkxsvxa875r8lpndq292vgb-glibc-2.35.drv': 1
> dependencies couldn't be built guix system: error: build of
> `/gnu/store/jgd1kl2zavkxsvxa875r8lpndq292vgb-glibc-2.35.drv' failed

Denis.