Hi Chris, On Fri, 15 Feb 2019 01:11:02 -0800 Chris Marusich wrote: > Here's more info about what I did. On my x86_64-linux Guix System > machine, where the build failed, I ran the following commands: > > --8<---------------cut here---------------start------------->8--- > cd /tmp/guix-build-rust-1.19.0.drv-0 > . environment-variables > cd rustc-1.19.0-src/ > /gnu/store/jxq5p3mx2gavj7hws1drz3pndn87lqrl-mrustc-0.8.0/bin/mrustc src/tools/cargo/src/bin/cargo.rs --crate-name cargo --crate-type bin --crate-tag 0_20_0 -g --cfg debug_assertions -O -o output/cargo-build/cargo -L output/cargo-build --extern cargo=output/cargo-build/libcargo-0_20_0.hir --extern crates_io=output/cargo-build/libcrates_io-0_9_0.hir --extern crossbeam=output/cargo-build/libcrossbeam-0_2_10.hir --extern curl=output/cargo-build/libcurl-0_4_6.hir --extern docopt=output/cargo-build/libdocopt-0_7_0.hir --extern env_logger=output/cargo-build/libenv_logger-0_4_2.hir --extern error_chain=output/cargo-build/liberror_chain-0_10_0.hir --extern filetime=output/cargo-build/libfiletime-0_1_10.hir --extern flate2=output/cargo-build/libflate2-0_2_19.hir --extern fs2=output/cargo-build/libfs2-0_4_1.hir --extern git2=output/cargo-build/libgit2-0_6_6.hir --extern git2_curl=output/cargo-build/libgit2_curl-0_7_0.hir --extern glob=output/cargo-build/libglob-0_2_11.hir --extern jobserver=output/cargo-build/libjobserver-0_1_6.hir --extern libc=output/cargo-build/liblibc-0_2_22.hir --extern libgit2_sys=output/cargo-build/liblibgit2_sys-0_6_12.hir --extern log=output/cargo-build/liblog-0_3_7.hir --extern num_cpus=output/cargo-build/libnum_cpus-1_4_0.hir --extern rustc_serialize=output/cargo-build/librustc_serialize-0_3_24.hir --extern scoped_tls=output/cargo-build/libscoped_tls-0_1_0.hir --extern semver=output/cargo-build/libsemver-0_7_0.hir --extern serde=output/cargo-build/libserde-1_0_6.hir --extern serde_derive=output/cargo-build/libserde_derive-1_0_6.hir --extern serde_ignored=output/cargo-build/libserde_ignored-0_0_3.hir --extern serde_json=output/cargo-build/libserde_json-1_0_2.hir --extern shell_escape=output/cargo-build/libshell_escape-0_1_3.hir --extern tar=output/cargo-build/libtar-0_4_13.hir --extern tempdir=output/cargo-build/libtempdir-0_3_5.hir --extern term=output/cargo-build/libterm-0_4_5.hir --extern toml=output/cargo-build/libtoml-0_4_1.hir --extern url=output/cargo-build/liburl-1_4_0.hir --extern openssl=output/cargo-build/libopenssl-0_9_12.hir -L output -L /gnu/store/jxq5p3mx2gavj7hws1drz3pndn87lqrl-mrustc-0.8.0/lib/mrust > --8<---------------cut here---------------end--------------->8--- > Do I need to do something special to attempt to run this mrustc program > in "i686-linux" mode? For example, I see that the guix-daemon sets the > Linux kernel's personality to 32 bits by invoking > personality(PER_LINUX32) in nix/libstore/build.cc. Maybe mrustc won't > fail unless we do that first? Oh, that might be related. I didn't think of that. Can you try the following (if you didn't already)? $ guix environment --pure -s i686-linux rust@1.19.0 [env]$ cd /tmp/guix-build-rust-1.19.0.drv-0 [env]$ . environment-variables [env]$ cd rustc-1.19.0-src/ [env]$ /gnu/store/jxq5p3mx2gavj7hws1drz3pndn87lqrl-mrustc-0.8.0/bin/mrustc src/tools/cargo/src/bin/cargo.rs --crate-name cargo --crate-type bin --crate-tag 0_20_0 -g --cfg debug_assertions -O -o output/cargo-build/cargo -L output/cargo-build --extern cargo=output/cargo-build/libcargo-0_20_0.hir --extern crates_io=output/cargo-build/libcrates_io-0_9_0.hir --extern crossbeam=output/cargo-build/libcrossbeam-0_2_10.hir --extern curl=output/cargo-build/libcurl-0_4_6.hir --extern docopt=output/cargo-build/libdocopt-0_7_0.hir --extern env_logger=output/cargo-build/libenv_logger-0_4_2.hir --extern error_chain=output/cargo-build/liberror_chain-0_10_0.hir --extern filetime=output/cargo-build/libfiletime-0_1_10.hir --extern flate2=output/cargo-build/libflate2-0_2_19.hir --extern fs2=output/cargo-build/libfs2-0_4_1.hir --extern git2=output/cargo-build/libgit2-0_6_6.hir --extern git2_curl=output/cargo-build/libgit2_curl-0_7_0.hir --extern glob=output/cargo-build/libglob-0_2_11.hir --extern jobserver=output/cargo-build/libjobserver-0_1_6.hir --extern libc=output/cargo-build/liblibc-0_2_22.hir --extern libgit2_sys=output/cargo-build/liblibgit2_sys-0_6_12.hir --extern log=output/cargo-build/liblog-0_3_7.hir --extern num_cpus=output/cargo-build/libnum_cpus-1_4_0.hir --extern rustc_serialize=output/cargo-build/librustc_serialize-0_3_24.hir --extern scoped_tls=output/cargo-build/libscoped_tls-0_1_0.hir --extern semver=output/cargo-build/libsemver-0_7_0.hir --extern serde=output/cargo-build/libserde-1_0_6.hir --extern serde_derive=output/cargo-build/libserde_derive-1_0_6.hir --extern serde_ignored=output/cargo-build/libserde_ignored-0_0_3.hir --extern serde_json=output/cargo-build/libserde_json-1_0_2.hir --extern shell_escape=output/cargo-build/libshell_escape-0_1_3.hir --extern tar=output/cargo-build/libtar-0_4_13.hir --extern tempdir=output/cargo-build/libtempdir-0_3_5.hir --extern term=output/cargo-build/libterm-0_4_5.hir --extern toml=output/cargo-build/libtoml-0_4_1.hir --extern url=output/cargo-build/liburl-1_4_0.hir --extern openssl=output/cargo-build/libopenssl-0_9_12.hir -L output -L /gnu/store/jxq5p3mx2gavj7hws1drz3pndn87lqrl-mrustc-0.8.0/lib/mrust (i.e. the things you did before, just inside a i686-linux guix environment. That only provides minimal--almost no--isolation from the host, so it should allow us to test whether the personality is the only possible culprit)