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: Jonas Hahnfeld
Subject: Re: Need help with guile 1.88 or using guile 2.2 with lilypond-2.20
Date: Mon, 08 Jun 2020 14:53:41 +0200
User-agent: Evolution 3.36.3

Am Montag, den 08.06.2020, 13:53 +0200 schrieb Dave Plater:
> On 6/8/20, Jonas Hahnfeld <hahnjo@hahnjo.de> 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
> > 
> > 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.)
> > 
> > Cheers
> > Jonas
> > 
> 
> Thanks, I didn't use the patch because CFLAGS are modified by the
> %configure macro, just used CFLAGS=`echo %optflags | tr 02 00` on the
> build service build and it works like a charm.

This means you'll build all of Guile without optimizations which is
very likely not what you want. My patch instead modifies CFLAGS only
for the duration of that particular check. Flags passed by %configure
will still make it during build.

Jonas

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

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