[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: openSuSE Tumbleweed build failure
From: |
David Kastrup |
Subject: |
Re: openSuSE Tumbleweed build failure |
Date: |
Mon, 24 Jul 2017 08:03:50 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) |
Knut Petersen <address@hidden> writes:
> Hi everybody!
>
> openSuSE tumbleweed (that means e.g. texlive 2017 and gcc 7.1.1) with
> current guile 1.8 built from git and dblatex 0.3.10 builds lilypond
> master without problems.
>
> The same system builds a lilypond 2.18.2 binary but fails during make
> doc with lilypond segfaulting:
[...]
> Any idea?
Same as with Fedora et al.
Cherry-pick
commit 93f3d637efbc038b837cf64fae0872e873e4f039
Author: David Kastrup <address@hidden>
Date: Fri Sep 2 23:11:53 2016 +0200
Issue 4965: Create and use Grob::parent_relative
This function checks for the existence of a Grob parent before
calculating a coordinate relative to it. This should hopefully
clean up the most relevant problems caused by issue 4814
and the original GCC 6 optimization causing it.
and
commit b0dce76daf27721ba157cd2ac5d7662d4c8d75f8
Author: Guido Aulisi <address@hidden>
Date: Fri Jul 22 15:26:29 2016 +0200
Issue 4814: grob.cc segfaults with gcc6
From the release notes of GCC 6:
Optimizations remove null pointer checks for this
When optimizing, GCC now assumes the this pointer can never be null,
which is guaranteed by the language rules. Invalid programs which
assume it is OK to invoke a member function through a null
pointer (possibly relying on checks like this != NULL) may crash or
otherwise fail at run time if null pointer checks are optimized
away. With the -Wnull-dereference option the compiler tries to warn
when it detects such invalid code.
If the program cannot be fixed to remove the undefined behavior then
the option -fno-delete-null-pointer-checks can be used to disable
this optimization. That option also disables other optimizations
involving pointers, not only those involving this.
As a consequence, we cannot call a member function on a prospective null
pointer (which actually is a bad idea for a number of other reasons,
like when anything tries accessing the vtable) and then try sorting out
the condition in the routine itself.
This problem was first observed with Fedora 24. The Ubuntu GCC6
prerelease does not show this problem; presumably the respective
optimization has been disabled in the Ubuntu/Debian packaging because of
affecting other programs.
Commit-message-by: David Kastrup <address@hidden>
Signed-off-by: David Kastrup <address@hidden>
--
David Kastrup