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 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.