Rust (and librsvg, IceCat, etc.) fails to build on i686-linux

OpenSubmitted by Mark H Weaver.
Details
6 participants
  • Danny Milosavljevic
  • Ludovic Courtès
  • Mark H Weaver
  • Mathieu Othacehe
  • Ricardo Wurmus
  • scottworley
Owner
unassigned
Severity
important
M
M
Mark H Weaver wrote on 1 May 2019 05:43
librsvg broken on i686-linux
(address . bug-guix@gnu.org)
871s1ion48.fsf@netris.org
Hydra failed to build librsvg on i686-linux, because it depends on Rust
which is still broken on i686-linux in Guix.


Mark
L
L
Ludovic Courtès wrote on 1 May 2019 09:25
control message for bug #35519
(address . control@debbugs.gnu.org)
87sgtyhc0d.fsf@gnu.org
severity 35519 important
D
D
Danny Milosavljevic wrote on 11 May 2019 02:00
Re: bug#35519: librsvg broken on i686-linux
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 35519@debbugs.gnu.org)
20190511020026.4d207749@scratchpost.org
Hi,

On Fri, 10 May 2019 14:53:40 +0200
Ricardo Wurmus <rekado@elephly.net> wrote:

Toggle quote (10 lines)
> > Hydra failed to build librsvg on i686-linux, because it depends on Rust
> > which is still broken on i686-linux in Guix.
>
> Danny opened a bug report with the mrustc upstream:
>
> https://github.com/thepowersgang/mrustc/issues/108
>
> The last message there tells us to try again with current HEAD on
> master.

I tried it now--it *does* work on i686 if I follow the README of mrustc and
build both it and rust 1.19 using the Makefile of mrustc. (I haven't tested
armhf and x86_64 on mrustc master yet)

But when I use our separate package definitions it fails when building libcore
(which is the first library for the target compiler).
Invoke seems to swallow the output, so I have no idea where or why it failed
(grr).

It's easily possible that some rust 1.19 build flags have to be adapted for
the newer mrustc, but I don't know which yet.
(Obviously, mrustc's makefile and/or Cargo.tomls already did the adaption
if any)
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlzWEJoACgkQ5xo1VCww
uqUMGwf/X1wIRYI11bSQv8p6eK4mEQx6n0HBIel3Q+4TyVpPXfUvmXvKV16PTTJz
CK0GOaSlCe+E9V6eEK4UfwCfBIBF3ROr+NY7MW2RYAftvsyrwN3G/6XRNhejTRFu
gEL6er6YQdA7JWAgo5NUWmFh7fOi6QBf0WG+66BlM10r9yiW4PN3unNkumD4ecj5
/5DQKOWLh+Dumwtv5GCM0xU7zgy7lbl2BchoW16GLDV3CGZg/47C2iYOgdg9J/jI
1g5OP7kiOsobE7UkC1Wuei/VmmuH7HSaYM0qMM35VTZ7JY6mOQqEHgX9bQiypiRO
h/2OuuhZdWFtEa99kBUQUJRWwEG4xw==
=8vuF
-----END PGP SIGNATURE-----


M
M
Mark H Weaver wrote on 11 May 2019 10:03
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
878svd1kp3.fsf@netris.org
Hi Danny,

Danny Milosavljevic <dannym@scratchpost.org> writes:

Toggle quote (5 lines)
> But when I use our separate package definitions it fails when building libcore
> (which is the first library for the target compiler).
> Invoke seems to swallow the output, so I have no idea where or why it failed
> (grr).

Hmm. What makes you think that 'invoke' swallowed the output? You
might be right, but 'invoke' is used quite widely by now in Guix,
including to invoke 'make' in gnu-build-system, and I haven't seen
reports of it swallowing output.

I looked at the code. 'invoke' calls 'system*' which calls
'scm_open_process' (in libguile/posix.c) with an empty mode string.

In this case, the child STDOUT becomes (current-output-port) from the
parent if (current-output-port) is a "file port", i.e. a Guile port
backed by a POSIX file descriptor, e.g. a file, socket or pipe. If it's
a Guile port that's not backed by a file descriptor, e.g. a custom port,
soft port, string port, bytevector port, etc, then indeed the child
output will go to /dev/null instead.

(Note that the port returned by 'open-pipe*' when used in OPEN_BOTH mode
is also a soft port and not considered a file port, even though it is
internally backed by two file ports.)

Ditto for STDERR, except that it uses (current-error-port).

So, if 'invoke' seems to be swallowing output, it's probably because it
was called within the dynamic extent of 'with-output-to-port',
'with-error-to-port', 'with-output-to-string', or similar.

Regards,
Mark
R
R
Ricardo Wurmus wrote on 10 May 2019 14:53
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)(address . 35519@debbugs.gnu.org)
87h8a2sc6j.fsf@elephly.net
Hi,

Toggle quote (3 lines)
> Hydra failed to build librsvg on i686-linux, because it depends on Rust
> which is still broken on i686-linux in Guix.

Danny opened a bug report with the mrustc upstream:


The last message there tells us to try again with current HEAD on
master. If this fails I think it’s acceptable to use a binary for the
very first Rust on i686; we would skip the use of mrustc on i686 then.
Not great.

--
Ricardo
D
D
Danny Milosavljevic wrote on 11 May 2019 16:08
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 35519@debbugs.gnu.org)
20190511160859.7b486515@scratchpost.org
Extra info: guix mrustc seems to be compiled with gcc 8 but guix rust-1.19 with gcc 5.5. How did that happen? Doesn't sound like a good idea since one loads compiler plugins compiled using the other into the same process.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlzW13sACgkQ5xo1VCww
uqVkUwf+JO5O5vzY/cqyJBxFyH1v+PocfR6oQNN+6xX7B7sHrrClHbe+DGvv3SbY
yiLT3q1+fk6AZ0IBKEfU/zd2rYrsxCW9Q7+DigRqPAWju6QVAWsmQ4Y7RbcPlfkp
CKAJbr/pCsr+RX3quNTnmx0UjQIjpa2y7usbaXkTEtFGLxsRuNbA44PVU8wxXYZ8
C2qm92/nf6wqacgj0r3FenfXOE/Hr8j1kjpB0RhONPpiONlz/26aEU/KR8Opryms
IJcqRqpMJhkftDDGdGBso2scy3UKXYG69Js2lp9J1IsAzqJDnFCwCuqVkZAck3qF
/bnzpxxoAxls/NFk0Ao89FaJRXxrNw==
=BF7N
-----END PGP SIGNATURE-----


D
D
Danny Milosavljevic wrote on 11 May 2019 16:16
(name . Mark H Weaver)(address . mhw@netris.org)
20190511161632.5c8e4d60@scratchpost.org
Hi Mark,

On Sat, 11 May 2019 04:03:41 -0400
Mark H Weaver <mhw@netris.org> wrote:

Toggle quote (5 lines)
> Hmm. What makes you think that 'invoke' swallowed the output? You
> might be right, but 'invoke' is used quite widely by now in Guix,
> including to invoke 'make' in gnu-build-system, and I haven't seen
> reports of it swallowing output.

I found out what was up with invoke. The child process didn't output
anything on stdout or stderr, but it died with SIGFPE and I either
was unable to interpret invoke's exception properly, or it didn't say
(probably the former).

It seems that mrustc uses a different gcc version than rust 1.19 which
seems to be a bad idea to me, but not sure whether it's the cause of
the SIGFPE.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAlzW2UAACgkQ5xo1VCww
uqX6xgf/a0DjFDARBmexxw3PaMP74aOt2WuKoiXxFBX88Cz1vk87H6fz01zM0yah
/9053OvAeXLXyVoJ/DcWypMWMrlA33nJ1IbLFb4GZd1naf7pMGsgh/aJuDVojYZP
6jJCV8xMgZ4+Y8EBsluzt2b3TE826SSfQ/L0KqOHynCiKU1apERH8prqyLtEtHd+
pKOLJdgXMUp9f7u7dTLrdpXX2d+8wjtw5pdOqYt8rqsMcAeBj3XB/x8oWA/qyjZN
3v2HB91t6O1aD6PDGr3rYDS6sLHVgNIebT54ERvJtfQr6XAythnkBYgzdSk5Iyr2
3BgT6YgUeZn37BLkQJGCTMD8BxN5aA==
=9wlr
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 18 May 2019 14:05
control message for bug #35519
(address . control@debbugs.gnu.org)
87v9y8ufwy.fsf@gnu.org
retitle 35519 Rust (and librsvg, IceCat, etc.) fails to build on i686-linux
L
L
Ludovic Courtès wrote on 16 Sep 2019 14:24
Re: bug#35519: librsvg broken on i686-linux
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87pnk0bf8v.fsf@gnu.org
Hello Danny and all,

Ricardo Wurmus <rekado@elephly.net> skribis:

Toggle quote (12 lines)
>> Hydra failed to build librsvg on i686-linux, because it depends on Rust
>> which is still broken on i686-linux in Guix.
>
> Danny opened a bug report with the mrustc upstream:
>
> https://github.com/thepowersgang/mrustc/issues/108
>
> The last message there tells us to try again with current HEAD on
> master. If this fails I think it’s acceptable to use a binary for the
> very first Rust on i686; we would skip the use of mrustc on i686 then.
> Not great.

I don’t know if it relates but on current ‘core-updates’ Rust 1.19 fails
to build on i686:

Toggle snippet (13 lines)
BUILDING curl_sys from curl-sys v0.3.11 with features []
> /gnu/store/2fh0bz69j6gxpgj5nqiqplwmck1dvi47-mrustc-0.8.0/bin/mrustc src/vendor/curl-sys/lib.rs --crate-name curl_sys --crate-type rlib --crate-tag 0_3_11 -g --cfg debug_assertions -O -o output/cargo-build/libcurl_sys-0_3_11.hir -L output/cargo-build -L /gnu/store/44sdci2mizpvd70zyvbfs9ai0maw255z-curl-7.65.3/lib -l curl --extern libz_sys=output/cargo-build/liblibz_sys-1_0_13.hir --extern libc=output/cargo-build/liblibc-0_2_22.hir --extern openssl_sys=output/cargo-build/libopenssl_sys-0_9_12.hir -L output -L /gnu/store/2fh0bz69j6gxpgj5nqiqplwmck1dvi47-mrustc-0.8.0/lib/mrust
BUILDING curl from curl v0.4.6 with features []
> /gnu/store/2fh0bz69j6gxpgj5nqiqplwmck1dvi47-mrustc-0.8.0/bin/mrustc src/vendor/curl/src/lib.rs --crate-name curl --crate-type rlib --crate-tag 0_4_6 -g --cfg debug_assertions -O -o output/cargo-build/libcurl-0_4_6.hir -L output/cargo-build --extern libc=output/cargo-build/liblibc-0_2_22.hir --extern curl_sys=output/cargo-build/libcurl_sys-0_3_11.hir --extern openssl_sys=output/cargo-build/libopenssl_sys-0_9_12.hir --extern openssl_probe=output/cargo-build/libopenssl_probe-0_1_1.hir -L output -L /gnu/store/2fh0bz69j6gxpgj5nqiqplwmck1dvi47-mrustc-0.8.0/lib/mrust
BUILDING crates_io from crates-io v0.9.0 with features []
> /gnu/store/2fh0bz69j6gxpgj5nqiqplwmck1dvi47-mrustc-0.8.0/bin/mrustc src/tools/cargo/src/crates-io/lib.rs --crate-name crates_io --crate-type rlib --crate-tag 0_9_0 -g --cfg debug_assertions -O -o output/cargo-build/libcrates_io-0_9_0.hir -L output/cargo-build --extern curl=output/cargo-build/libcurl-0_4_6.hir --extern error_chain=output/cargo-build/liberror_chain-0_10_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_json=output/cargo-build/libserde_json-1_0_2.hir --extern url=output/cargo-build/liburl-1_4_0.hir -L output -L /gnu/store/2fh0bz69j6gxpgj5nqiqplwmck1dvi47-mrustc-0.8.0/lib/mrust
munmap_chunk(): invalid pointer
src/tools/cargo/src/crates-io/lib.rs:65: BUG:src/expand/proc_macro.cpp:941: Unexpected EOF while reading from child process
BUILD FAILED
command "/gnu/store/2fh0bz69j6gxpgj5nqiqplwmck1dvi47-mrustc-0.8.0/tools/bin/minicargo" "src/tools/cargo" "--vendor-dir" "src/vendor" "--output-dir" "output/cargo-build" "-L" "output/" "-L" "/gnu/store/2fh0bz69j6gxpgj5nqiqplwmck1dvi47-mrustc-0.8.0/lib/mrust" "-j" "1" failed with status 1
builder for `/gnu/store/01mh2n7mif0k49ivj6y3fdq1ssj3d2lq-rust-1.19.0.drv' failed with exit code 1

(From

Does that ring a bell? Any ideas of a fix or workaround we could apply?

It’d be great if we could merge ‘core-updates’ soon. This is
unfortunately not a regression compared to ‘master’, so I don’t think
this is a blocker.

Thoughts?

Ludo’.
D
D
Danny Milosavljevic wrote on 16 Sep 2019 18:11
(name . Ludovic Courtès)(address . ludo@gnu.org)
20190916181141.40fdebe6@scratchpost.org
Hi Ludo,

On Mon, 16 Sep 2019 14:24:48 +0200
Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (2 lines)
> Does that ring a bell?

Yes, I've brought that up upstream and upstream is more than willing to work
on this and debug this problem if there is a system to debug it on.

However, as far as I understand we decided not to give thepowersgang (authors
of mrustc) a login to a Guix machine--therefore, the situation will not improve.

The problem is NOT reproducible in Debian with the same gcc version.

Maybe I'll get my home internet set up next month and put a Guix machine on it,
but right now I only have mobile internet (with very slow upload and behind NAT).
As it is now, I cannot reasonably give someone a Guix machine already setup
to debug this problem.

The problem is 100% reproducible and I estimate would be easy to fix for the
authors--and maybe would fix the similar armhf problems as well.

So if someone could put a Guix machine on the internet and give thepowersgang
access, that would be great. I can't right now.

If that happens, I can instruct thepowersgang how to enter an environment
where this problem can be reproduced and fixed.

Even at the last FOSDEM, Chris Marusich and I saw this problem and fixed
part of it--by now we got upstream attention. (After all this inertia maybe
we lost upstream attention again--we'll see)

Toggle quote (2 lines)
> Any ideas of a fix or workaround we could apply?

No, but thepowersgang might find it very quickly. They guess it might be
some C undefined behavior being used by the mrustc->C translator, or a problem
with the struct layout (although I've checked the latter and it should be
fine).
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl1/tD0ACgkQ5xo1VCww
uqWJ1Af/fMLcbj/bUBkHbVNKpYbrU+46A8Yrnth9IMdnbByGw3FcUCAZt7khyHvJ
U1wGLd4eG9iJxHxjMehWrckUia9d7OMg+WSNhdeHWL9cQ4vg/5TTr4yf63q/i/SC
SD5f4cdWy+N7Eo4tkn3KcVkdQVmnrYfj7PIoiPaZ6aTXw1KlpCgIyEo9Pvc200g0
OTDly2IZkvM3YeJkBQ/QenOwu6TJ39PbGmvtsytfogloN16/ybxT7WHBrmM+MDiJ
fXzPoDub3DuxFqstMslPvUfjdVrgNiZlClpUIo7YJiKNJxLTtVDafLvpq66aPi2x
vPNDvh9P/31kZh1krORE4VGeii5rLw==
=A47n
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 16 Sep 2019 22:48
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
877e682cid.fsf@gnu.org
Hi Danny,

Danny Milosavljevic <dannym@scratchpost.org> skribis:

Toggle quote (6 lines)
> Yes, I've brought that up upstream and upstream is more than willing to work
> on this and debug this problem if there is a system to debug it on.
>
> However, as far as I understand we decided not to give thepowersgang (authors
> of mrustc) a login to a Guix machine--therefore, the situation will not improve.

What about giving them “guix pack mrustc”, or a guix-install.sh + pull
command sequence, or a VM image?

The instructions would be:

1. Download and run https://guix.gnu.org/install.sh. It will
perform the steps described at

2. Write this to a file:

(list (channel
(name 'guix)
(commit
"0b2ea78173f05c417a9002e52e2b36b139074124")))

3. Run ‘guix pull -C that-file.scm -p ~/core-updates’.

4. Run ‘~/core-updates/bin/guix build rust -s i686-linux -K’.
Investigate as per

Perhaps you could propose them to do that, and if that’s too much to
ask, we can meet halfway somehow.

Of course we can also provide guidance on #guix on IRC.

WDYT?

Toggle quote (5 lines)
> No, but thepowersgang might find it very quickly. They guess it might be
> some C undefined behavior being used by the mrustc->C translator, or a problem
> with the struct layout (although I've checked the latter and it should be
> fine).

Would Valgrind or ASan be able to flag the potential issue?

Thanks,
Ludo’.
D
D
Danny Milosavljevic wrote on 18 Mar 2020 21:45
guix master 4de63cf3fc0a831d75cb507456821104f24800c2: rust 1.19.0 build failure on i686-linux
(address . 35519@debbugs.gnu.org)
20200318214538.160d62bd@scratchpost.org
Hi,

so after our mrustc upgrade to 0.9, we get the following when building rust 1.19.0
on guix master 4de63cf3fc0a831d75cb507456821104f24800c2 and i686-linux:

[...]
(75/77) BUILDING git2_curl from git2-curl v0.7.0
Toggle quote (1 lines)
> /gnu/store/0hzdzb07gaplh2x96mg7dpvip92shx43-mrustc-0.9/bin/mrustc src/vendor/git2-curl/src/lib.rs -o output/cargo-build/libgit2_curl-0_7_0.rlib --crate-name git2_curl --crate-type rlib -C emit-depfile=output/cargo-build/libgit2_curl-0_7_0.rlib.d --crate-tag 0_7_0 -g --cfg debug_assertions -O -L output -L /gnu/store/0hzdzb07gaplh2x96mg7dpvip92shx43-mrustc-0.9/lib/mrust -L output/cargo-build --extern curl=output/cargo-build/libcurl-0_4_6.rlib --extern url=output/cargo-build/liburl-1_4_0.rlib --extern log=output/cargo-build/liblog-0_3_7.rlib --extern git2=output/cargo-build/libgit2-0_6_6.rlib
(76/77) BUILDING cargo v0.20.0
Toggle quote (1 lines)
> /gnu/store/0hzdzb07gaplh2x96mg7dpvip92shx43-mrustc-0.9/bin/mrustc src/tools/cargo/src/cargo/lib.rs -o output/cargo-build/libcargo-0_20_0.rlib --crate-name cargo --crate-type rlib -C emit-depfile=output/cargo-build/libcargo-0_20_0.rlib.d --crate-tag 0_20_0 -g --cfg debug_assertions -O -L output -L /gnu/store/0hzdzb07gaplh2x96mg7dpvip92shx43-mrustc-0.9/lib/mrust -L output/cargo-build --extern crates_io=output/cargo-build/libcrates_io-0_9_0.rlib --extern crossbeam=output/cargo-build/libcrossbeam-0_2_10.rlib --extern curl=output/cargo-build/libcurl-0_4_6.rlib --extern docopt=output/cargo-build/libdocopt-0_7_0.rlib --extern env_logger=output/cargo-build/libenv_logger-0_4_2.rlib --extern error_chain=output/cargo-build/liberror_chain-0_10_0.rlib --extern filetime=output/cargo-build/libfiletime-0_1_10.rlib --extern flate2=output/cargo-build/libflate2-0_2_19.rlib --extern fs2=output/cargo-build/libfs2-0_4_1.rlib --extern git2=output/cargo-build/libgit2-0_6_6.rlib --extern git2_curl=output/cargo-build/libgit2_curl-0_7_0.rlib --extern glob=output/cargo-build/libglob-0_2_11.rlib --extern jobserver=output/cargo-build/libjobserver-0_1_6.rlib --extern libc=output/cargo-build/liblibc-0_2_22.rlib --extern libgit2_sys=output/cargo-build/liblibgit2_sys-0_6_12.rlib --extern log=output/cargo-build/liblog-0_3_7.rlib --extern num_cpus=output/cargo-build/libnum_cpus-1_4_0.rlib --extern rustc_serialize=output/cargo-build/librustc_serialize-0_3_24.rlib --extern scoped_tls=output/cargo-build/libscoped_tls-0_1_0.rlib --extern semver=output/cargo-build/libsemver-0_7_0.rlib --extern serde=output/cargo-build/libserde-1_0_6.rlib --extern serde_derive=output/cargo-build/libserde_derive-1_0_6-plugin --extern serde_ignored=output/cargo-build/libserde_ignored-0_0_3.rlib --extern serde_json=output/cargo-build/libserde_json-1_0_2.rlib --extern shell_escape=output/cargo-build/libshell_escape-0_1_3.rlib --extern tar=output/cargo-build/libtar-0_4_13.rlib --extern tempdir=output/cargo-build/libtempdir-0_3_5.rlib --extern term=output/cargo-build/libterm-0_4_5.rlib --extern toml=output/cargo-build/libtoml-0_4_1.rlib --extern url=output/cargo-build/liburl-1_4_0.rlib --extern openssl=output/cargo-build/libopenssl-0_9_12.rlib
BUILDING cargo v0.20.0
Toggle quote (1 lines)
> /gnu/store/0hzdzb07gaplh2x96mg7dpvip92shx43-mrustc-0.9/bin/mrustc src/tools/cargo/src/bin/cargo.rs -o output/cargo-build/cargo --crate-name cargo --crate-type bin -C emit-depfile=output/cargo-build/cargo.d --crate-tag 0_20_0 -g --cfg debug_assertions -O -L output -L /gnu/store/0hzdzb07gaplh2x96mg7dpvip92shx43-mrustc-0.9/lib/mrust -L output/cargo-build --extern cargo=output/cargo-build/libcargo-0_20_0.rlib --extern crates_io=output/cargo-build/libcrates_io-0_9_0.rlib --extern crossbeam=output/cargo-build/libcrossbeam-0_2_10.rlib --extern curl=output/cargo-build/libcurl-0_4_6.rlib --extern docopt=output/cargo-build/libdocopt-0_7_0.rlib --extern env_logger=output/cargo-build/libenv_logger-0_4_2.rlib --extern error_chain=output/cargo-build/liberror_chain-0_10_0.rlib --extern filetime=output/cargo-build/libfiletime-0_1_10.rlib --extern flate2=output/cargo-build/libflate2-0_2_19.rlib --extern fs2=output/cargo-build/libfs2-0_4_1.rlib --extern git2=output/cargo-build/libgit2-0_6_6.rlib --extern git2_curl=output/cargo-build/libgit2_curl-0_7_0.rlib --extern glob=output/cargo-build/libglob-0_2_11.rlib --extern jobserver=output/cargo-build/libjobserver-0_1_6.rlib --extern libc=output/cargo-build/liblibc-0_2_22.rlib --extern libgit2_sys=output/cargo-build/liblibgit2_sys-0_6_12.rlib --extern log=output/cargo-build/liblog-0_3_7.rlib --extern num_cpus=output/cargo-build/libnum_cpus-1_4_0.rlib --extern rustc_serialize=output/cargo-build/librustc_serialize-0_3_24.rlib --extern scoped_tls=output/cargo-build/libscoped_tls-0_1_0.rlib --extern semver=output/cargo-build/libsemver-0_7_0.rlib --extern serde=output/cargo-build/libserde-1_0_6.rlib --extern serde_derive=output/cargo-build/libserde_derive-1_0_6-plugin --extern serde_ignored=output/cargo-build/libserde_ignored-0_0_3.rlib --extern serde_json=output/cargo-build/libserde_json-1_0_2.rlib --extern shell_escape=output/cargo-build/libshell_escape-0_1_3.rlib --extern tar=output/cargo-build/libtar-0_4_13.rlib --extern tempdir=output/cargo-build/libtempdir-0_3_5.rlib --extern term=output/cargo-build/libterm-0_4_5.rlib --extern toml=output/cargo-build/libtoml-0_4_1.rlib --extern url=output/cargo-build/liburl-1_4_0.rlib --extern openssl=output/cargo-build/libopenssl-0_9_12.rlib
"libcore"
command "output/rustc-build/rustc" "-C" "linker=/gnu/store/y7dd2178bbpy7pl09fdn1r9412rc2mm3-gcc-7.4.0/bin/gcc" "-Z" "force-unstable-if-unmarked" "-L" "output/target-libs" "src/libcore/lib.rs" "-o" "output/target-libs/libcore.rlib" failed with signal 8

That's extremely good, but signal 8 is SIGFPE, as before.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl5yiHIACgkQ5xo1VCww
uqW96Af9GQd5EA9/l4SpVDEGBJu98G8jaW/Y32oVFRybdUbTZG1+c1yWzhk+EHs2
eqJ7emCo889d8OPuyXxsY9RvDMf8Onp299H/VsKSWF0IA+8sbsnLuy9JuD+oCx4f
Pzjnus3HNGPeyYsnocPUtHSVNrYvHabX8+eKsbOK5pf1P7qFxKriF21nQyM68r0X
JURKBvDApGkGwCtI6HKq7Rkcl2rtnXsWBb6OS4mTj2GPitmULtlndmaU2yu4JMwO
+0nQBSE6m8Pf+KbLdL/7gMAJwUU8qMP4hN1Qkiq9RiH31On59XOo/CZLgkvqdAgI
T5roRz2Bkww7xKKubMLwbmI6WHOm1g==
=7Pn4
-----END PGP SIGNATURE-----


M
M
Mathieu Othacehe wrote on 18 Dec 2020 16:19
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)(address . 35519@debbugs.gnu.org)
877dpfkuq9.fsf@gnu.org
Hello,

The CI is spending a considerable amount of time trying to build Rust
packages for "i686-linux". As this is currently broken, what do you
think about applying the attached patch?

Thanks,

Mathieu
From 2ed5c6e3f8d77ed7b00995fcf786bf84033b76d9 Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <othacehe@gnu.org>
Date: Fri, 18 Dec 2020 16:15:16 +0100
Subject: [PATCH] gnu: rust: Remove "i686-linux" from supported systems.

* gnu/packages/rust.scm (rust-1.19): Only support "x86_64-linux" architecture.
---
gnu/packages/rust.scm | 1 +
1 file changed, 1 insertion(+)

Toggle diff (14 lines)
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 35a96b5754..91b5d6b6ec 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -452,6 +452,7 @@ test = { path = \"../libtest\" }
             (variable "LIBRARY_PATH")
             (files '("lib" "lib64")))))
 
+    (supported-systems '("x86_64-linux"))
     (synopsis "Compiler for the Rust programming language")
     (description "Rust is a systems programming language that provides memory
 safety and thread safety guarantees.")
-- 
2.29.2
D
D
Danny Milosavljevic wrote on 20 Dec 2020 14:22
(name . Mathieu Othacehe)(address . othacehe@gnu.org)
20201220142043.2049b1d9@scratchpost.org
Hi,

On Fri, 18 Dec 2020 16:19:10 +0100
Mathieu Othacehe <othacehe@gnu.org> wrote:

Toggle quote (4 lines)
> The CI is spending a considerable amount of time trying to build Rust
> packages for "i686-linux". As this is currently broken, what do you
> think about applying the attached patch?

Sure, for the time being.

But seriously, mrustc supports a lot of other architectures (including
defining custom architectures in config), and also can bootstrap Rust
1.29.0 directly. It's better to just update mrustc.

(Marius Bakke already tried to integrate the mrustc update to
core-updates--not sure what the roadblock was. Even if there was a
roadblock, mrustc upstream was committed to 7 days ago--maybe the roadblock
is gone now ?)
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl/fT/gACgkQ5xo1VCww
uqWbYgf+OfFi1lnPMHh7f6SE+QtNgZ3WF0Azm4nSFTPYMCQZ00T1fJa/NHdYoX5J
1s7N0EZiOw3fVG4k2rLoEVl2aHA+tWM3GO2FeiARMxWPS6Xp5j/tlBSx/TfcFB+I
n/VXaZdIMalW7teMHI6LGG6CQn6uWVW7aLkZeQScYSJiTDvs/bVUYC5EF105vrZv
PEuZLTcmXvvStA16+YEmfxycDYwDIh2ph65Qf4IQEKShEUzsZ8luteHQGncbX9UK
+t2diNm45ZeLlbUUO5sjsGW105DVNPO7p/3v1Ob1bpYMRgp5VdkcOKzwsELWocPw
X+86nqTpdhBKlZrWN27KRxgUOlqErQ==
=eUzh
-----END PGP SIGNATURE-----


S
S
scottworley wrote on 19 Oct 2021 23:44
Rust (and librsvg, IceCat, etc.) fails to build on i686-linux
(address . 35519@debbugs.gnu.org)
YW88L4qg2cTEZejk@chkno.net
More debug info:

$ guix build icecat -K
...
command "output/rustc-build/rustc" "-C" "linker=/gnu/store/afpgzln8860m6yfhxy6i8n9rywbp85cy-gcc-7.5.0/bin/gcc" "-Z" "force-unstable-if-unmarked" "-L" "output/target-libs" "src/libcore/lib.rs" "-o" "output/target-libs/libcore.rlib" failed with signal 8
...

$ cd /tmp/guix-build-rust-1.19.0.drv-0
$ source ./environment-variables
$ cd rustc-1.19.0-src/
$ gdb output/rustc-build/rustc
...

(gdb) run "-C" "linker=/gnu/store/afpgzln8860m6yfhxy6i8n9rywbp85cy-gcc-7.5.0/bin/gcc" "-Z" "force-unstable-if-unmarked" "-L" "output/target-libs" "src/libcore/lib.rs" "-o" "output/target-libs/libcore.rlib"
...

Thread 2 "rustc" received signal SIGFPE, Arithmetic exception.
[Switching to Thread 0xb4dd9b40 (LWP 13450)]
0x084f90e0 in ZRQCn4c4core3num7dec2flt5rawfp8RawFloat0g8from_int0g ()

(gdb) bt
#0 0x084f90e0 in ZRQCn4c4core3num7dec2flt5rawfp8RawFloat0g8from_int0g ()
#1 0x087290a2 in ZRG4c4core3num7dec2flt9algorithm9fast_path1gCn (arg2=<optimized out>, arg1=..., arg0=...) at output/rustc-build/librustc_const_eval.rlib.c:87314
#2 ZRG3c4core3num7dec2flt7convert1gCn (arg0=...) at output/rustc-build/librustc_const_eval.rlib.c:22749
#3 ZRG3c4core3num7dec2flt7dec2flt1gCn (arg0=...) at output/rustc-build/librustc_const_eval.rlib.c:23054
#4 ZRG2c16rustc_const_eval4eval11parse_float0g (arg0=..., arg1=...) at output/rustc-build/librustc_const_eval.rlib.c:57510
#5 0x0872988e in ZRG2c16rustc_const_eval4eval12lit_to_const0g (arg0=0xada1c2b0, arg1=..., arg2=<optimized out>) at output/rustc-build/librustc_const_eval.rlib.c:122654
#6 0x08738a19 in ZRG2c16rustc_const_eval4eval23eval_const_expr_partial0g (arg0=<optimized out>, arg1=0xada1c2e0) at output/rustc-build/librustc_const_eval.rlib.c:118512
#7 0x08742aa3 in ZRING2c16rustc_const_eval4eval12ConstContext0g4eval0g (arg0=0xb4dcdd5c, arg1=0xada1c2e0) at output/rustc-build/librustc_const_eval.rlib.c:170789
#8 0x087388c0 in ZRG2c16rustc_const_eval4eval23eval_const_expr_partial0g (arg0=<optimized out>, arg1=<optimized out>) at output/rustc-build/librustc_const_eval.rlib.c:118492
#9 0x08742aa3 in ZRING2c16rustc_const_eval4eval12ConstContext0g4eval0g (arg0=0xb4dcdd5c, arg1=0xb3a2b0dc) at output/rustc-build/librustc_const_eval.rlib.c:170789
#10 0x084ccfb6 in ZRING2c12rustc_passes6consts17CheckCrateVisitor0g16check_const_eval0g ( arg0=0xb4dcec7c, arg1=0xb3a2b0dc) at output/rustc-build/librustc_passes.rlib.c:156327
#11 0x084d6df5 in ZRQNG2c12rustc_passes6consts17CheckCrateVisitor0g3c5rustc3hir10intravisit7Visitor0g17visit_nested_body0g (arg0=<optimized out>, arg1=...) at output/rustc-build/librustc_passes.rlib.c:238632
#12 0x084d7d20 in ZRG3c5rustc3hir10intravisit9walk_item1gNG2c12rustc_passes6consts17CheckCrateVisitor0g (arg0=arg0@entry=0xb4dcec7c, arg1=arg1@entry=0xada1c78c) at output/rustc-build/librustc_passes.rlib.c:94857
#13 0x084d8183 in ZRING2c5rustc3hir5Crate0g20visit_all_item_likes1gNG3c5rustc3hir13itemlikevisit11DeepVisitor1gNG2c12rustc_passes6consts17CheckCrateVisitor0g (arg1=<synthetic pointer>, arg0=0xb4dd2fa4) at output/rustc-build/librustc_passes.rlib.c:154083
#14 ZRG2c12rustc_passes6consts11check_crate0g (arg0=...) at output/rustc-build/librustc_passes.rlib.c:43890
#15 0x08ca2fe6 in ZRG3c5rustc4util6common4time2gT0NG2c12rustc_driver6driverh7closure30phase_3_run_analysis_passes_342gNG2c12rustc_driver6driverh7closure15compile_input_50gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCu (arg2=..., arg1=..., arg0=<optimized out>) at output/rustc-build/librustc_driver.rlib.c:173997
#16 ZRQNG2c12rustc_driver6driverh7closure30phase_3_run_analysis_passes_452gNG2c12rustc_driver6driverh7closure15compile_input_50gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCu2c4core3ops6FnOnce1gT1NG3c5rustc2ty7context6TyCtxt0g9call_once0g (arg0=..., arg1=...) at output/rustc-build/librustc_driver.rlib.c:29946
#17 0x08ca9283 in ZRQNG4c5rustc2ty7context3tlsh7closure7enter_42gNG2c12rustc_driver6driverh7closure30phase_3_run_analysis_passes_452gNG2c12rustc_driver6driverh7closure15compile_input_50gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCuNG2c4core6result6Result2gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCuCu2c4core3ops6FnOnce1gT1BsNG2c4core4cell4Cell1gNG2c4core6option6Option1gT2PsNG4c5rustc2ty7context3tls21ThreadLocalGlobalCtxt0gPsNG4c5rustc2ty7context3tls20ThreadLocalInterners0g9call_once0g (arg1=..., arg0=...) at output/rustc-build/librustc_driver.rlib.c:403596
#18 ZRING3c3std6thread5local8LocalKey1gNG2c4core4cell4Cell1gNG2c4core6option6Option1gT2PsNG4c5rustc2ty7context3tls21ThreadLocalGlobalCtxt0gPsNG4c5rustc2ty7context3tls20ThreadLocalInterners0g4with2gNG4c5rustc2ty7context3tlsh7closure7enter_42gNG2c12rustc_driver6driverh7closure30phase_3_run_analysis_passes_452gNG2c12rustc_driver6driverh7closure15compile_input_50gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCuNG2c4core6result6Result2gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCuCuNG2c4core6result6Result2gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCuCu (arg0=<optimized out>, arg1=...) at output/rustc-build/librustc_driver.rlib.c:47443
#19 ZRG4c5rustc2ty7context3tls5enter2gNG2c12rustc_driver6driverh7closure30phase_3_run_analysis_passes_452gNG2c12rustc_driver6driverh7closure15compile_input_50gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCuNG2c4core6result6Result2gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCuCu (arg2=..., arg1=<optimized out>, arg0=<optimized out>) at output/rustc-build/librustc_driver.rlib.c:30770
#20 ZRQNG4c5rustc2ty7context3tlsh7closure14enter_global_02gNG2c12rustc_driver6driverh7closure30phase_3_run_analysis_passes_452gNG2c12rustc_driver6driverh7closure15compile_input_50gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCuNG2c4core6result6Result2gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCuCu2c4core3ops6FnOnce1gT1BsNG2c4core4cell4Cell1gF2NG1c10syntax_pos4Span0gBuNG2c4core3fmt9Formatter0gNG2c4core6result6Result2gT0NG2c4core3fmt5Error0g9call_once0g (arg1=..., arg0=...) at output/rustc-build/librustc_driver.rlib.c:10543
#21 ZRING3c3std6thread5local8LocalKey1gNG2c4core4cell4Cell1gF2NG1c10syntax_pos4Span0gBuNG2c4core3fmt9Formatter0gNG2c4core6result6Result2gT0NG2c4core3fmt5Error0g4with2gNG4c5rustc2ty7context3tlsh7closure14enter_global_02gNG2c12rustc_driver6driverh7closure30phase_3_run_analysis_passes_452gNG2c12rustc_driver6driverh7closure15compile_input_50gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCuNG2c4core6result6Result2gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCuCuNG2c4core6result6Result2gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCuCu (arg0=<optimized out>, arg1=...) at output/rustc-build/librustc_driver.rlib.c:47677
#22 ZRING3c5rustc2ty7context6TyCtxt0g16create_and_enter2gNG2c12rustc_driver6driverh7closure30phase_3_run_analysis_passes_452gNG2c12rustc_driver6driverh7closure15compile_input_50gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCuNG2c4core6result6Result2gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCuCu (arg12=..., arg11=..., arg10=..., arg9=..., arg8=..., arg7=..., arg6=..., arg5=0xb4dd2a74, arg4=0xb4dd30e4, arg3=..., arg2=..., arg1=..., arg0=<optimized out>) at output/rustc-build/librustc_driver.rlib.c:63467
#23 ZRG2c12rustc_driver6driver27phase_3_run_analysis_passes2gNG2c12rustc_driver6driverh7closure15compile_input_50gNG2c4core6result6Result2gT2NG3c5rustc7session6config15OutputFilenames0gNG1c11rustc_trans16CrateTranslation0gCu (arg0=<optimized out>, arg1=..., arg2=..., arg3=..., arg4=0xb4dd2a74, arg5=0xb4dd30e4, arg6=..., arg7=...) at output/rustc-build/librustc_driver.rlib.c:54665
#24 0x08cac032 in ZRG2c12rustc_driver6driver13compile_input0g (arg0=<optimized out>, arg1=<optimized out>, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>, arg5=..., arg6=<optimized out>) at output/rustc-build/librustc_driver.rlib.c:182830
#25 0x08cad1e0 in ZRG1c12rustc_driver12run_compiler0g (arg0=..., arg1=..., arg2=..., arg3=...) at output/rustc-build/librustc_driver.rlib.c:190804
#26 0x08cad7b1 in ZRING1c12rustc_driverh7closure6main_40g9call_free0g () at output/rustc-build/librustc_driver.rlib.c:266570
#27 0x08cad805 in ZRQNG1c12rustc_driverh7closure5run_51gNG1c12rustc_driverh7closure6main_40g2c4core3ops6FnOnce1gT09call_once0g (arg0=..., arg1=...) at output/rustc-build/librustc_driver.rlib.c:417051
#28 0x08cada1e in ZRQNG1c12rustc_driverh7closure10monitor_231gNG1c12rustc_driverh7closure5run_51gNG1c12rustc_driverh7closure6main_40g2c4core3ops6FnOnce1gT09call_once0g (arg0=..., arg1=...) at output/rustc-build/librustc_driver.rlib.c:416824
#29 0x08cada5c in ZRG3c3std9panickingh0137do_call2gNG2c3std5panic16AssertUnwindSafe1gNG1c12rustc_driverh7closure10monitor_231gNG1c12rustc_driverh7closure5run_51gNG1c12rustc_driverh7closure6main_40gT0 (arg0=0xb4dd92b0 "\020\251V\t\364\222Ý´(\224Ý´\020\251V\t\220\251V\t\300\251V\t\003") at output/rustc-build/librustc_driver.rlib.c:194753
#30 0x084ee7eb in __rust_maybe_catch_panic ()
#31 0x08c45065 in ZRG2c3std9panicking3try2gT0NG2c3std5panic16AssertUnwindSafe1gNG1c12rustc_driverh7closure10monitor_231gNG1c12rustc_driverh7closure5run_51gNG1c12rustc_driverh7closure6main_40g (arg0=...) at output/rustc-build/librustc_driver.rlib.c:194873
#32 ZRQNG1c3stdh7closure5I_1203gNG2c3std6thread7Builder0gNG1c12rustc_driverh7closure10monitor_231gNG1c12rustc_driverh7closure5run_51gNG1c12rustc_driverh7closure6main_40gT02c4core3ops6FnOnce1gT09call_once0g (arg0=..., arg1=...) at output/rustc-build/librustc_driver.rlib.c:3973
#33 ZRQNG1c3stdh7closure5I_1203gNG2c3std6thread7Builder0gNG1c12rustc_driverh7closure10monitor_231gNG1c12rustc_driverh7closure5run_51gNG1c12rustc_driverh7closure6main_40gT02c5alloc5boxed5FnBox1gT08call_box0g (arg0=..., arg1=...) at output/rustc-build/librustc_driver.rlib.c:3912
#34 0x0810cf36 in ZRG3c3std10sys_common6thread12start_thread0g ()
#35 0x0810cf78 in ZRG5c3std3sys3imp6threadh01012thread_start0g ()
#36 0xb7fa2071 in start_thread () from /gnu/store/z4li262il798hbl0l1h1k3a5g7r6bffa-glibc-2.31/lib/libpthread.so.0
#37 0xb7eb1436 in clone () from /gnu/store/z4li262il798hbl0l1h1k3a5g7r6bffa-glibc-2.31/lib/libc.so.6

(gdb) disas ZRQCn4c4core3num7dec2flt5rawfp8RawFloat0g8from_int0g
Dump of assembler code for function ZRQCn4c4core3num7dec2flt5rawfp8RawFloat0g8from_int0g:
0x084f90c0 <+0>: push %ebx
0x084f90c1 <+1>: call 0x806a440 <__x86.get_pc_thunk.bx>
0x084f90c6 <+6>: add $0x1005f3a,%ebx
0x084f90cc <+12>: sub $0x28,%esp
0x084f90cf <+15>: mov 0x34(%esp),%edx
0x084f90d3 <+19>: mov 0x30(%esp),%eax
0x084f90d7 <+23>: mov %edx,0x4(%esp)
0x084f90db <+27>: mov %eax,(%esp)
0x084f90de <+30>: test %edx,%edx
=> 0x084f90e0 <+32>: fildll (%esp)
0x084f90e3 <+35>: jns 0x84f90eb <ZRQCn4c4core3num7dec2flt5rawfp8RawFloat0g8from_int0g+43>
0x084f90e5 <+37>: fadds -0x5277d8(%ebx)
0x084f90eb <+43>: fstps 0xc(%esp)
0x084f90ef <+47>: mov %eax,0x14(%esp)
0x084f90f3 <+51>: xor %eax,%eax
0x084f90f5 <+53>: mov %edx,0x18(%esp)
0x084f90f9 <+57>: mov %ax,0x1c(%esp)
0x084f90fe <+62>: sub $0x4,%esp
0x084f9101 <+65>: flds 0x10(%esp)
0x084f9105 <+69>: fstps 0x4(%esp)
0x084f9109 <+73>: pushl 0x20(%esp)
0x084f910d <+77>: pushl 0x20(%esp)
0x084f9111 <+81>: pushl 0x20(%esp)
0x084f9115 <+85>: call 0x84f8f30 <ZRG4c4core3num7dec2flt5rawfp11fp_to_float1gCn>
0x084f911a <+90>: add $0x10,%esp
0x084f911d <+93>: flds (%esp)
0x084f9120 <+96>: fucomi %st(1),%st
0x084f9122 <+98>: fstp %st(1)
0x084f9124 <+100>: jp 0x84f912d <ZRQCn4c4core3num7dec2flt5rawfp8RawFloat0g8from_int0g+109>
0x084f9126 <+102>: jne 0x84f9131 <ZRQCn4c4core3num7dec2flt5rawfp8RawFloat0g8from_int0g+113>
0x084f9128 <+104>: add $0x28,%esp
0x084f912b <+107>: pop %ebx
0x084f912c <+108>: ret
0x084f912d <+109>: fstp %st(0)
0x084f912f <+111>: jmp 0x84f9133 <ZRQCn4c4core3num7dec2flt5rawfp8RawFloat0g8from_int0g+115>
0x084f9131 <+113>: fstp %st(0)
0x084f9133 <+115>: sub $0xc,%esp
0x084f9136 <+118>: pushl -0x1c1c(%ebx)
0x084f913c <+124>: call 0x84eebf0 <ZRG2c4core9panicking5panic0g>
0x084f9141 <+129>: call 0x80539a0 <_Unwind_Resume@plt>
End of assembler dump.

(gdb) x $pc
0x84f90e0 <ZRQCn4c4core3num7dec2flt5rawfp8RawFloat0g8from_int0g+32>: 0x79242cdf

(gdb) x $esp
0xb4dcab20: 0x00000001

(gdb) i all-registers
eax 0x1 1
ecx 0x0 0
edx 0x0 0
ebx 0x94ff000 156233728
esp 0xb4dcab20 0xb4dcab20
ebp 0xb4dcb4c0 0xb4dcb4c0
esi 0x0 0
edi 0x0 0
eip 0x84f90e0 0x84f90e0 <ZRQCn4c4core3num7dec2flt5rawfp8RawFloat0g8from_int0g+32>
eflags 0x10246 [ PF ZF IF RF ]
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
st0 0 (raw 0x00000000000000000000)
st1 0 (raw 0x00000000000000000000)
st2 0 (raw 0x00000000000000000000)
st3 0 (raw 0x00000000000000000000)
st4 0 (raw 0x00000000000000000000)
st5 0 (raw 0x00000000000000000000)
st6 0 (raw 0x00000000000000000000)
st7 -nan(0xc000000000000000) (raw 0xffffc000000000000000)
fctrl 0x40 64
fstat 0x8083 32899
ftag 0xffff 65535
fiseg 0x73 115
fioff 0x8cea074 147759220
foseg 0x7b 123
fooff 0xb4dcc8b0 -1260599120
fop 0x15c 348
xmm0 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x0}
xmm1 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x1, 0x0, 0x0, 0x0, 0x4, 0x0 <repeats 11 times>}, v8_int16 = {0x1, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x1, 0x4, 0x0, 0x0}, v2_int64 = {0x400000001, 0x0}, uint128 = 0x400000001}
xmm2 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x4, 0x0 <repeats 15 times>}, v8_int16 = {0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x4, 0x0, 0x0, 0x0}, v2_int64 = {0x4, 0x0}, uint128 = 0x4}
xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0xe3, 0x2, 0x0, 0x0, 0x68, 0xa3, 0xf8, 0xb1, 0x1, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x2e3, 0x0, 0xa368, 0xb1f8, 0x1, 0x0}, v4_int32 = {0x0, 0x2e3, 0xb1f8a368, 0x1}, v2_int64 = {0x2e300000000, 0x1b1f8a368}, uint128 = 0x1b1f8a368000002e300000000}
xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe8, 0x1a, 0xdd, 0xb4, 0x0, 0xf0, 0x4f, 0x9}, v8_int16 = {0x1, 0x0, 0x0, 0x0, 0x1ae8, 0xb4dd, 0xf000, 0x94f}, v4_int32 = {0x1, 0x0, 0xb4dd1ae8, 0x94ff000}, v2_int64 = {0x1, 0x94ff000b4dd1ae8}, uint128 = 0x94ff000b4dd1ae80000000000000001}
xmm5 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0xf0, 0x4f, 0x9, 0x50, 0x1e, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf0, 0x4f, 0x9}, v8_int16 = {0xf000, 0x94f, 0x1e50, 0x4, 0x0, 0x0, 0xf003, 0x94f}, v4_int32 = {0x94ff000, 0x41e50, 0x0, 0x94ff003}, v2_int64 = {0x41e50094ff000, 0x94ff00300000000}, uint128 = 0x94ff0030000000000041e50094ff000}
xmm6 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x51, 0x1e, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x4f, 0x9, 0x40, 0x1e, 0x4, 0x0}, v8_int16 = {0x1e51, 0x4, 0x0, 0x0, 0xf000, 0x94f, 0x1e40, 0x4}, v4_int32 = {0x41e51, 0x0, 0x94ff000, 0x41e40}, v2_int64 = {0x41e51, 0x41e40094ff000}, uint128 = 0x41e40094ff0000000000000041e51}
xmm7 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x4f, 0x9, 0x41, 0x1e, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0xf000, 0x94f, 0x1e41, 0x4, 0x0, 0x0}, v4_int32 = {0x0, 0x94ff000, 0x41e41, 0x0}, v2_int64 = {0x94ff00000000000, 0x41e41}, uint128 = 0x41e41094ff00000000000}
mxcsr 0x1f80 [ IM DM ZM OM UM PM ]
mm0 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm1 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm2 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm3 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm4 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm5 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm6 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm7 {uint64 = 0xc000000000000000, v2_int32 = {0x0, 0xc0000000}, v4_int16 = {0x0, 0x0, 0x0, 0xc000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0}}


I can provide access to a machine on which this reproduces.
?