guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Rust 1.19 fails to build on i686 on ‘staging’


From: Chris Marusich
Subject: Re: Rust 1.19 fails to build on i686 on ‘staging’
Date: Fri, 15 Feb 2019 01:11:02 -0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)

Hi Danny,

Danny Milosavljevic <address@hidden> writes:

> On Wed, 13 Feb 2019 20:35:51 -0800
> Chris Marusich <address@hidden> wrote:
>
>> I looked in the failed build directory, but I couldn't find a core
>> dump.  When I manually ran the command...
>> 
>> /gnu/store/jxq[...]-mrustc-0.8.0/bin/mrustc
>> src/tools/cargo/src/bin/cargo.rs [...]
>> 
>> ...it actually succeeded.
>
> Does that mean in an i686-linux guix environment?
>
> If so, that's very good to know and it could be a good workaround to keep 
> going!
>
> Did you source the environment-variables, too?

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---

The last command exited with exit code 0.  For your reference, I've
attached the output, also.

The mrustc program is a 32-bit executable, which makes sense since the
build was for an i686-linux system:

--8<---------------cut here---------------start------------->8---
$ file /gnu/store/jxq5p3mx2gavj7hws1drz3pndn87lqrl-mrustc-0.8.0/bin/mrustc
/gnu/store/jxq5p3mx2gavj7hws1drz3pndn87lqrl-mrustc-0.8.0/bin/mrustc: ELF 32-bit 
LSB executable, Intel 80386, version 1 (GNU/Linux), dynamically linked, 
interpreter 
/gnu/store/qk8irm5yp2khq4dj7zcpcaa1g87pfyvw-glibc-2.28/lib/ld-linux.so.2, for 
GNU/Linux 2.6.32, stripped
--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?

-- 
Chris

Attachment: output.gz
Description: Binary data

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]