Guile: fix {set,long}jmp-related crashes on Windows
Patch Guile until upstream fix is available.
For details, see the new patch file
0010-Fix-setjmp-longjmp-related-crashes-on-Windows.patch
Fixes #6430 (closed) Fixes #6737 (closed)
Merge request reports
Activity
added Windows label
assigned to @michaelkaeppler
added Patchnew label
Upstream bug report: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=73167
added Patchreview label and removed Patchnew label
- Resolved by Jonas Hahnfeld
But on Linux
longjmp
does no stack unwinding either, no?https://blog.reverberate.org/2013/05/deep-wizardry-stack-unwinding.html
What concerns your question: I don't know, I would have to work through it. In any case it would be a way more invasive fix, I assume.
- Resolved by Michael Käppler
This is just a keyword-triggered response, I have not taken a look at the actual code. In Lisp/Scheme implementations,
setjmp
/longjmp
may actually be used as a hook into stack winding, namely for deconstructing a stack and setting it back up in the context of continuations. This kind of abuse of those primitives in order to route around having to code assembly for stack-related operations does not really have an equivalent in C++. I don't think that LilyPond makes significant use of continuations (if at all) particularly for winding purposes (taking up a stored continuation not just going upstack) but I don't know how Guile itself behaves in that respect.
added Patchcountdown label and removed Patchreview label
added Patchpush label and removed Patchcountdown label
added 27 commits
-
ad9b8d60...ca29747e - 26 commits from branch
master
- b4f51394 - Guile: fix {set,long}jmp-related crashes on Windows
-
ad9b8d60...ca29747e - 26 commits from branch
enabled an automatic merge when all merge checks for b4f51394 pass
removed Patchpush label
I didn't test this before merging, but this requires the installation of
automake
because it touchesMakefile.am
and therefore doesn't work in the minimal installation given by Ansible. I'm working around this for 2.25.20, but do we need that modification in the patch? I guess it's mostly formake dist
of Guile itself, right?changed milestone to %2.25.20
mentioned in merge request !2567 (merged)