On 2021-12-16, phodina via wrote: > I checked the build server and there were no substitutes [1] for rust-1.39.0 for the Aarch64 system. This is unfortunately a known issue; there isn't a good bootstrap path for rust on aarch64... and an increasingly number of things are depending on rust, which makes it a more obvious problem now. > When building natively (Pinebook Pro) there is this problem: > > $ uname -a > Linux valhalla 5.14.9-gnu #1 SMP PREEMPT 1 aarch64 GNU/Linux > ~/guix$ guix build rust -K > ... >> /tmp/guix-build-rust-1.39.0.drv-0/mrustc/bin/mrustc rustc-1.39.0-src/src/libcore/lib.rs -o output/libcore.rlib --crate-name core --crate-type rlib -C emit-depfile=output/libcore.rlib.d --crate-tag 0_0_0 -g --cfg debug_assertions -O -L output --edition 2018 > rustc-1.39.0-src/src/libcore/slice/mod.rs:67: warn:0:Unexpected attribute allow_internal_unstable on associated item > rustc-1.39.0-src/src/libcore/str/mod.rs:2173: warn:0:Unexpected attribute allow_internal_unstable on associated item > In file included from output/libcore.rlib.c:7: > output/libcore.rlib.c: In function ‘ZRQG2ch4core50_0_03ffi10VaListImpl0g2cb05clone5Clone0gb30g’: > output/libcore.rlib.c:219717:10: warning: passing argument 1 of ‘__builtin_va_copy’ from incompatible pointer type [-Wincompatible-pointer-types] > 219717 | va_copy(var3, arg0); > | ^~~~ > | | > | struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g ** > output/libcore.rlib.c:219717:10: note: expected ‘__va_list *’ but argument is of type ‘struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g **’ > output/libcore.rlib.c:219717:16: error: incompatible type for argument 2 of ‘__builtin_va_copy’ > 219717 | va_copy(var3, arg0); > | ^~~~ > | | > | struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g * > output/libcore.rlib.c:219717:16: note: expected ‘__va_list’ but argument is of type ‘struct s_ZRG2ch4core50_0_03ffi10VaListImpl0g *’ > C Compiler failed to execute - error code 256 > Process exited with non-zero exit status 1 > BUILD FAILED > make: *** [minicargo.mk:82: output/libstd.rlib] Error 1 > error: in phase 'build': uncaught exception: > %exception #<&invoke-error program: "make" arguments: ("-f" "minicargo.mk" "output/rustc" "-j6" "RUSTC_TARGET=aarch64-unknown-linux-gnu" "RUSTC_VERSION=1.39.0" "MRUSTC_TARGET_VER=1.39" "OUTDIR_SUF=") exit-status: 2 term-signal: #f stop-signal: #f> > phase `build' failed after 1006.4 seconds > command "make" "-f" "minicargo.mk" "output/rustc" "-j6" "RUSTC_TARGET=aarch64-unknown-linux-gnu" "RUSTC_VERSION=1.39.0" "MRUSTC_TARGET_VER=1.39" "OUTDIR_SUF=" failed with status 2 > > Not sure if this PR [2] would help as I don't know how to apply the patch to the package definition for rust-1.39. ... > [2] https://github.com/rust-lang/rust/pull/49878 Looks somewhat plausible... You could try pulling out the patches and adding them in gnu/packages/patches/rust-1.39-XXX.patch, and then adding into the search-patches definition in gnu/packages/rust.scm for rust-1.39. Though, they may require backwards or forwards-porting those patches; not sure if those patches were applied before or after 1.39. live well, vagrant