lilypond-devel
[Top][All Lists]
Advanced

[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



reply via email to

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