Subject: Building for armv7 fails

From: Sébastien Lerique <[email-masked]>
Date: Thu, 28 Sep 2023 10:19:57 +0200

Dear Guix!

I'm packaging ripgrep in an ARM VM, which needs to build Rust itself,
and fails with the following end of the log file (with the terminal
colours not represented):

--8<---------------cut here---------------start------------->8---
root@vm-remarkable2:~# guix pack -R -S /emacsbin=bin \
                         emacs-no-x fd ripgrep sqlite \
                         htop fish \
                         aspell aspell-dict-en aspell-dict-fr

[...]
ESC[32m(43/173) BUILDING typenum v1.12.0ESC[0m
> /tmp/guix-build-rust-1.54.0.drv-0/mrustc/bin/mrustc rustc-1.54.0-src/vendor/typenum/src/lib.rs -o output/rustc-build/libtypenum-1_12_0.rlib --crate-name typenum --crate-type rlib -C emit-depfile=output/rustc-build/libtypenum-1_12_0.rlib.d --crate-tag 1_12_0 --cfg debug_assertions -O -L output -L output/rustc-build
/tmp/guix-build-rust-1.54.0.drv-0/mrustc/output/rustc-build/build_typenum-1_12_0/consts.rs:2113: error:0:Duplicate definition of name 'U2' in namespace scope (::""::generated::consts) crate::generated::consts::U2/*t:TypeAlias[::""::generated::consts::U2]*/, and crate::generated::consts::U2/*t:TypeAlias[::""::generated::consts::U2]*/
ESC[31mProcess was terminated with signal 6
ESC[0mFAILING COMMAND:  /tmp/guix-build-rust-1.54.0.drv-0/mrustc/bin/mrustc rustc-1.54.0-src/vendor/typenum/src/lib.rs -o output/rustc-build/libtypenum-1_12_0.rlib --crate-name typenum --crate-type rlib -C emit-depfile=output/rustc-build/libtypenum-1_12_0.rlib.d --crate-tag 1_12_0 --cfg debug_assertions -O -L output -L output/rustc-build
BUILD FAILED
make: *** [minicargo.mk:228: output/rustc] Error 1
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("-f" "minicargo.mk" "output/rustc" "RUSTC_TARGET=armv7-unknown-linux-gnueabihf" "RUSTC_VERSION=1.54.0" "MRUSTC_TARGET_VER=1.54" "CFLAGS=-std=gnu11" "OUTDIR_SUF=") exit-status: 2 term-signal: #f stop-signal: #f>
phase `build' failed after 10098.8 seconds
command "make" "-f" "minicargo.mk" "output/rustc" "RUSTC_TARGET=armv7-unknown-linux-gnueabihf" "RUSTC_VERSION=1.54.0" "MRUSTC_TARGET_VER=1.54" "CFLAGS=-std=gnu11" "OUTDIR_SUF=" failed with status 2
--8<---------------cut here---------------end--------------->8---

Here's the current guix version:

--8<---------------cut here---------------start------------->8---
root@vm-remarkable2:~# guix describe
Generation 2	Sep 26 2023 12:59:04	(current)
  guix b2887da
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: b2887da40c6cb9d541a9df67aa726694f64d8943
--8<---------------cut here---------------end--------------->8---

And if more needed:

--8<---------------cut here---------------start------------->8---
root@vm-remarkable2:~# uname -a
Linux vm-remarkable2 6.1.0-12-armmp-lpae #1 SMP Debian 6.1.52-1 (2023-09-07) armv7l GNU/Linux
--8<---------------cut here---------------end--------------->8---

I have no idea what is triggering this, would anybody have hints to
debug?

Thanks for anything!
And best,
Sébastien