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: David Kastrup
Subject: Re: Need help with guile 1.88 or using guile 2.2 with lilypond-2.20
Date: Mon, 08 Jun 2020 15:12:43 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Jonas Hahnfeld via Discussions on LilyPond development
<lilypond-devel@gnu.org> writes:

> 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
>
> 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.)

It's easy enough to write a recursive call that cannot be tail-call
optimised.  It may be old code, but it was trouble waiting to happen.

-- 
David Kastrup



reply via email to

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