Subject: bug#34484: GCL: segfault on invocation on x86_64 and i686

From: Diego Nicola Barbato <[email-masked]>
Date: Mon, 11 Mar 2019 23:50:06 +0100

Diego Nicola Barbato <[email-masked]> writes:

> Hello Guix,
>
> GCL segfaults upon execution on x86_64 and i686.  This is most likely
> the reason why Maxima fails to build on those architectures [0] [1].
>
> This is what I tried:
>
>
> diego@GLaDOS ~$ guix build gcl
> /gnu/store/5zzfw856c1acrmalsdznm1093mkvnwls-gcl-2.6.12-2.d3335e2
> diego@GLaDOS ~$ /gnu/store/5zzfw856c1acrmalsdznm1093mkvnwls-gcl-2.6.12-2.d3335e2/bin/gcl
> Speicherzugriffsfehler
> diego@GLaDOS ~$ guix build -s i686-linux gcl
> /gnu/store/cbw0k4apa6qiqfm7g9j0lzfbzfk6mxj2-gcl-2.6.12-2.d3335e2
> diego@GLaDOS ~$ /gnu/store/cbw0k4apa6qiqfm7g9j0lzfbzfk6mxj2-gcl-2.6.12-2.d3335e2/bin/gcl
> Speicherzugriffsfehler
>
>
> I also tried building GCL locally to check if this was something
> non-deterministic with the same result:
>
>
> diego@GLaDOS ~$ guix build gcl --check --keep-failed
>
> [...]
>
> phase `compress-documentation' succeeded after 0.1 seconds
> note: keeping build directory `/tmp/guix-build-gcl-2.6.12-2.d3335e2.drv-4'
> guix build: error: derivation `/gnu/store/kljywjw5a3wpcqk67p1isrrgy5yxgp21-gcl-2.6.12-2.d3335e2.drv' may not be deterministic: output `/gnu/store/5zzfw856c1acrmalsdznm1093mkvnwls-gcl-2.6.12-2.d3335e2' differs from ‘/gnu/store/5zzfw856c1acrmalsdznm1093mkvnwls-gcl-2.6.12-2.d3335e2-check’
> diego@GLaDOS ~$ /gnu/store/5zzfw856c1acrmalsdznm1093mkvnwls-gcl-2.6.12-2.d3335e2-check/bin/gcl
> Speicherzugriffsfehler
> diego@GLaDOS ~$ guix build gcl -s i686-linux --check --keep-failed
>
> [...]
>
> phase `compress-documentation' succeeded after 0.1 seconds
> note: keeping build directory `/tmp/guix-build-gcl-2.6.12-2.d3335e2.drv-3'
> guix build: error: derivation `/gnu/store/p7r9c9kqf4gafik0a3q9fl0ry8hks99f-gcl-2.6.12-2.d3335e2.drv' may not be deterministic: output `/gnu/store/cbw0k4apa6qiqfm7g9j0lzfbzfk6mxj2-gcl-2.6.12-2.d3335e2' differs from ‘/gnu/store/cbw0k4apa6qiqfm7g9j0lzfbzfk6mxj2-gcl-2.6.12-2.d3335e2-check’
> diego@GLaDOS ~$ /gnu/store/cbw0k4apa6qiqfm7g9j0lzfbzfk6mxj2-gcl-2.6.12-2.d3335e2-check/bin/gcl
> Speicherzugriffsfehler
>
> GCL works fine on armhf (I did not try it on aarch64).
>
> I run Guix System (commit: 571a01d) on x86_64.
>
> Regards,
>
> Diego
>
>
> [0]: https://berlin.guixsd.org/build/943168 (x86_64)
> [1]: https://berlin.guixsd.org/build/943189 (i686)

Some additional information:

GCL does not segfault if I get the substitute from hydra (where Maxima
builds successfully).  It does segfault (on the aforementioned
architectures) if I get the substitute from berlin (where Maxima fails
to build) and if I build it locally.

Here is what I have tried (I get the same results when passing
‘--system=i686-linux’ to the build commands):

--8<---------------cut here---------------start------------->8---
diego@GLaDOS ~$ guix gc --delete $(guix gc --list-dead |grep gcl-2) 

[...]

diego@GLaDOS ~$ $(guix build --substitute-urls=https://mirror.hydra.gnu.org gcl)/bin/gcl
7.1 MB werden heruntergeladen:
   /gnu/store/5zzfw856c1acrmalsdznm1093mkvnwls-gcl-2.6.12-2.d3335e2
Substituiere /gnu/store/5zzfw856c1acrmalsdznm1093mkvnwls-gcl-2.6.12-2.d3335e2 …
Lade von https://mirror.hydra.gnu.org/guix/nar/gzip/5zzfw856c1acrmalsdznm1093mkvnwls-gcl-2.6.12-2.d3335e2 herunter …
 gcl-2.6.12-2.d3335e2  6.8MiB         2.7MiB/s 00:03 [##################] 100.0%

GCL (GNU Common Lisp)  2.6.12 ANSI    Fri Apr 22 15:51:11 UTC 2016
Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl)
Binary License:  GPL due to GPL'ed components: (READLINE UNEXEC)
Modifications of this banner must retain notice of a compatible license
Dedicated to the memory of W. Schelter

Use (help) to get some basic information on how to use GCL.
Temporary directory for compiler files:
/tmp/

--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
diego@GLaDOS ~$ guix gc --delete $(guix gc --list-dead |grep gcl-2) 

[...]

diego@GLaDOS ~$ $(guix build --substitute-urls=https://berlin.guixsd.org gcl)/bin/gcl
7.1 MB werden heruntergeladen:
   /gnu/store/5zzfw856c1acrmalsdznm1093mkvnwls-gcl-2.6.12-2.d3335e2
Substituiere /gnu/store/5zzfw856c1acrmalsdznm1093mkvnwls-gcl-2.6.12-2.d3335e2 …
Lade von https://berlin.guixsd.org/nar/gzip/5zzfw856c1acrmalsdznm1093mkvnwls-gcl-2.6.12-2.d3335e2 herunter …
 gcl-2.6.12-2.d3335e2  6.7MiB         2.4MiB/s 00:03 [##################] 100.0%

Speicherzugriffsfehler
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
diego@GLaDOS ~$ guix gc --delete $(guix gc --list-dead |grep gcl-2) 

[...]

diego@GLaDOS ~$ guix build --check --keep-failed gcl

[...]

guix build: error: derivation `/gnu/store/k5ygbl35phqr31bbnmkhsay4akw7l9ja-gcl-2.6.12-2.d3335e2.drv' may not be deterministic: output `/gnu/store/5zzfw856c1acrmalsdznm1093mkvnwls-gcl-2.6.12-2.d3335e2' differs from ‘/gnu/store/5zzfw856c1acrmalsdznm1093mkvnwls-gcl-2.6.12-2.d3335e2-check’
diego@GLaDOS ~$ /gnu/store/5zzfw856c1acrmalsdznm1093mkvnwls-gcl-2.6.12-2.d3335e2-check/bin/gcl
Speicherzugriffsfehler
--8<---------------cut here---------------end--------------->8---

I have built GCL locally a couple of times and it always segfaults.

My Guix is currently on commit 0bd1498.

Regards,

Diego