Subject: [bug#56872] [PATCH v2] gnu: mu: Update to 1.8.7.

From: Maxime Devos <[email-masked]>
Date: Tue, 2 Aug 2022 21:53:15 +0200

On 02-08-2022 21:14, ( wrote:
> On Tue Aug 2, 2022 at 8:03 PM BST, muradm wrote:
>> I don't have any environment to see if working when
>> actually cross-compiling.
> You can cross-compile to any architecture you want if you add
> `qemu-binfmt-service-type` to your system config and specify
> the architectures you want. Then you just need to do something
> like:
>
> ʃ guix build --system=aarch64-linux mu
> ʃ guix build --system=riscv64-linux mu
>
> Also, on x86-64, you can cross-compile to x86-32 without any
> emulation:
>
> ʃ guix build --system=i686-linux mu
>
>      -- (

This is 'QEMU transparent emulation' -- from Guix' perspective, this is 
not cross-compilation (see: transparent), but rather it is as-if you 
were compiling natively on a aarch64 or riscv64 instead of 
cross-compiling from a <insert your CPU type> to aarch64 or riscv64.

Instead, try:

$ guix build --target=aarch64-linux-gnu mu
$ guix build --target=aarch64-linux-gnu mu

, which exercises Guix' cross-compilation codepaths.

--system: system to run the compilation process on (possibly emulated)

--target: system to cross-compile _to_/system on which the _result_ of 
compilation will be run.

Also, you don't need a aarch64 or riscv64 to check the references (try 
"guix graph --type=references $(./pre-inst-env guix build mu 
--target=..." or "guix gc --references $(./pre-inst-env guix build mu 
--target=...)") and check that the 'mu' doesn't point to coreutils).

Greetings,
Maxime.