[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Need help with guile 1.88 or using guile 2.2 with lilypond-2.20
From: |
Anthony Fok |
Subject: |
Re: Need help with guile 1.88 or using guile 2.2 with lilypond-2.20 |
Date: |
Wed, 9 Sep 2020 08:16:51 -0600 |
Hi Dave and Jonas,
On Mon, Jun 8, 2020 at 4:38 AM Jonas Hahnfeld via Discussions on
LilyPond development <lilypond-devel@gnu.org> wrote:
> Am Montag, den 08.06.2020, 10:24 +0200 schrieb Dave Plater:
> > Hi, I maintain Lilypond for openSUSE and also created guile1 for
> > lilypond using guile-1.8.8
> > I have a problem, guile-1.8.8 doesn't build with gcc 10:
> > [...]
> >
> > Causes a:
> > 15388 Segmentation fault |
> > GUILE="/home/abuild/rpmbuild/BUILD/guile-1.8.8/pre-inst-guile"
> > ../scripts/snarf-check-and-output-texi > guile-procedures.texi
> >
> > This is beyond my capabilities, the above command resists gdb --args
> > so I'm unable to see where the segfault happens. Something in gcc10 is
> > exposing a problem in guile-1.8.8
Dave, thank you so much for bringing up this issue in the mailing list.
I have just started to look at this same issue yesterday for Debian:
#966353 - FTBFS: guile segfaults when run to collect docs - Debian
Bug report logs
https://bugs.debian.org/966353
and had no idea where to start except to use gcc-9 instead, until I
came upon this thread. :-)
> Yep, GCC 10 "breaks" the configure check to find the stack direction.
> This makes Guile believe the stack grows up, which is of course plain
> wrong. I was able to workaround this issue by disabling optimizations
> for the configure check, see attached diff.
>
> (For the technically interested: GCC 10 succeeds in rewriting a
> particular tail call into jumps. This avoids stack frames from the
> recursive call which the check relies on. Funnily enough, a comment
> says: "If the code could be inlined, that might cause the test to give
> an incorrect answer." - indeed.)
Jonas, thank you so much! This is most insightful, as otherwise
I wouldn't even know where to start looking!
It turns out the fix was applied to Guile-2.0 in 2011,
and was backported to Guile-1.8 (but not released as tarball)
in 2012. Here is what I will be using for the Debian changelog:
Patch Guile-1.8 to the latest branch_release-1-8 branch
found in Guile git repository on Savannah, see patches 1801 to 1825.
In particular, 1812-Fix-stack-growth-direction-check.patch,
originally written for Autoconf by Paul Eggert for Autoconf
and pulled into Guile-2.0 in 2011, fixed a build error with
-O3 back then, and fixes FTBFS with gcc-10 nowadays,
due to a bug in find_stack_direction() code in configure.in. See
http://lists.gnu.org/archive/html/bug-autoconf/2011-06/msg00035.html
for the whole story. (Closes: #966353)
Relevant commits:
* https://git.savannah.gnu.org/cgit/guile.git/commit/configure.ac?id=62bc107
* https://git.savannah.gnu.org/cgit/guile.git/commit/configure.ac?id=236f901
* https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12
Cheers,
Anthony
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: Need help with guile 1.88 or using guile 2.2 with lilypond-2.20,
Anthony Fok <=