Subject: Re: bug#48239: rust-1.19.0 build fails

From: Bone Baboon <[email-masked]>
Date: Thu, 13 May 2021 13:10:03 -0400

Thank you for sharing those debugging instructions.

I have done another pull and now rust is failing to build for a
different reason.

`guix describe` outputs:

```
Generation 24   May 12 2021 18:06:24    (current)
  guix d6aeebb
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: d6aeebb23639258311fdfb9dbf5f903079fde51a
```

Now rust 1.19.0 builds successfully but rust 1.20.0 has failing tests.

The build log is attached.

Mark H Weaver writes:

> Okay.  I think the next step, if you're sufficiently motivated, is to
> try to debug this problem yourself.  I'd be glad to help, but
> unfortunately I can't do it myself, since I'm unable to reproduce this
> problem on my systems.
>
> Here's the basic outline of how to proceed:
>
> (1) First, you'll need the failed build directory in
>     /tmp/guix-build-rust-1.19.0.drv-0.  If you've deleted it, recreate
>     it by running "guix build rust --keep-failed" and waiting for it to
>     fail.  If it has a different name, rename it to have the name above.
>
> (2) Launch a bash shell that you'll use to retry the failed command.  In
>     that shell, first run "env -i $(which bash)" to clear most of the
>     existing environment variable settings, and then "source
>     /tmp/guix-build-rust-1.19.0.drv-0/environment-variables" to load the
>     ones that were in use during the build.
>
> (3) Move to the appropriate directory and try re-running the failed
>     command (found near the end of the failed build log):
>
>     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
>
> If you still get SIGFPE, then try running that command again within GDB
> and see if you can get a backtrace.  Since GDB won't be in your PATH,
> you'll need to launch it via it's absolute file name, which you can get
> from another shell using "guix build gdb".
>
> You'll run "/gnu/store/…-gdb-10.1/bin/gdb output/rustc-build/rustc" and
> then within GDB: "run -C linker=/gnu/store/…-gcc-7.5.0/bin/gcc …" (the
> entire command except for the "output/rustc-build/rustc").
>
> Hopefully the SIGFPE will happen within GDB as well, returning you to
> the GDB prompt.  Then type "bt" to get a backtrace, and show it to us.
> Some fiddling may be required to get a decent backtrace with full source
> information, e.g. by running "dir DIRNAME" within GDB to add a directory
> to the "source path" (where it searches for the source files).
>
> Anyway, if we can figure out where the SIGFPE is happening, perhaps we
> can find the underlying problem, or at least report it to the mrustc
> developers.