Subject: bug#57303: powerpc64le: rust build failure is bottleneck for many packages

From: Marcel van der Boom <[email-masked]>
Date: Fri, 19 Aug 2022 20:56:10 +0200

I use a Talos II machine as my daily driver and slowly migrating 
as many packages to GUIX along the way. The kernel I am running 
comes fromm https://archlinuxpower.org/

For many packages, rust is getting to be the bottleneck as a 
dependency that does not build.

>From what I can see there's a whole chain of rust dependencies 
going back to [email-masked] which then ultimately fails with:

--8<---------------cut here---------------start------------->8---
(16/112) BUILDING bitflags v1.1.0
> /tmp/guix-build-rust-1.39.0.drv-0/mrustc/bin/mrustc 
> rustc-1.39.0-src/vendor/bitflags/src/lib.rs -o 
> output/rustc-build/libbitflags-1_1_0.rlib --crate-name bitflags 
> --crate-type rlib -C 
> emit-depfile=output/rustc-build/libbitflags-1_1_0.rlib.d 
> --crate-tag 1_1_0 -g --cfg debug_assertions -O -L output -L 
> output/rustc-build --cfg bitflags_const_fn
(17/112) BUILDING cc v1.0.35
> /tmp/guix-build-rust-1.39.0.drv-0/mrustc/bin/mrustc 
> rustc-1.39.0-src/vendor/cc/src/lib.rs -o 
> output/rustc-build/libcc-1_0_35.rlib --crate-name cc 
> --crate-type rlib -C 
> emit-depfile=output/rustc-build/libcc-1_0_35.rlib.d --crate-tag 
> 1_0_35 -g --cfg debug_assertions -O -L output -L 
> output/rustc-build
> /tmp/guix-build-rust-1.39.0.drv-0/mrustc/bin/mrustc 
> rustc-1.39.0-src/src/librustc_llvm/build.rs --crate-name build 
> --crate-type bin -o output/rustc-build/build_rustc_llvm_run -L 
> output/rustc-build -g -L output --extern 
> build_helper=output/rustc-build/libbuild_helper-0_1_0.rlib 
> --extern cc=output/rustc-build/libcc-1_0_35.rlib --edition 2018
> /tmp/guix-build-rust-1.39.0.drv-0/mrustc/output/rustc-build/build_rustc_llvm_run
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`', 
 rustc-1.39.0-src/vendor/hashbrown/src/raw/mod.rs:1086:59
Process was terminated with signal 6
--8<---------------cut here---------------end--------------->8---

The line in =mod.rs= points to an assertion in some sort of table 
iterator. Way over my head.

I know rust runs on powerpc64le because I have a binary version 
1.62 installed through https://archlinuxpower.org/

Is anyone familiar with this working on rust on powerpc64 for the 
powerpc64le-linux system?