Building for armv7 fails

  • Open
  • quality assurance status badge
Details
2 participants
  • Maxim Cournoyer
  • Sébastien Lerique
Owner
unassigned
Submitted by
Sébastien Lerique
Severity
normal
S
S
Sébastien Lerique wrote on 28 Sep 2023 10:19
(address . bug-guix@gnu.org)
87a5t64s0r.fsf@eauchat.org
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):

Toggle snippet (19 lines)
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

Here's the current guix version:

Toggle snippet (8 lines)
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

And if more needed:

Toggle snippet (5 lines)
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


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

Thanks for anything!
And best,
Sébastien
S
S
Sébastien Lerique wrote on 28 Sep 2023 10:36
Re: bug#66249: Acknowledgement (Building for armv7 fails)
(address . 66249@debbugs.gnu.org)
875y3u4rn3.fsf@eauchat.org
Actually the command is:
Toggle snippet (7 lines)
root@vm-remarkable2:~# guix pack -R -S /emacsbin=bin \
emacs-no-x fd ripgrep sqlite \
htop fish \
aspell aspell-dict-en aspell-dict-fr
[... fails ...]

Then the log cited in my previous message is
`/var/log/guix/drvs/sc/r2cc0imq25c45r8amvjsa4wbbxwhwc-rust-1.54.0.drv.gz`

Best,
S.
S
S
Sébastien Lerique wrote on 28 Sep 2023 13:14
(address . 66249@debbugs.gnu.org)
871qei4kfr.fsf@eauchat.org
retitle 66249 Building rust-1.54 fails on armv7
M
M
Maxim Cournoyer wrote on 4 Oct 2023 04:14
Re: bug#66249: Building for armv7 fails
(name . Sébastien Lerique)(address . sl@eauchat.org)(address . 66249@debbugs.gnu.org)
87lecj5e20.fsf_-_@gmail.com
Hello,

Sébastien Lerique <sl@eauchat.org> writes:

Toggle quote (2 lines)
> retitle 66249 Building rust-1.54 fails on armv7

As you've found out, this is something that has to do with building rust
on that architecture, more precisely building 'mrustc', which is used in
Guix to boostrap rust. The upstream issue would be this one I think:
requiring more memory than 32 bit can address but the author mentioned a
2 GiB or something limit, I'm not sure what that is attributable to.

If you want to solve this I'd recommend you get in touch with the mrustc
author! There is a #mrustc channel on Libera.chat IRC, as far as I
recall.

--
Thanks,
Maxim
?