-
-
Notifications
You must be signed in to change notification settings - Fork 661
Description
Due to C++ ABI incompatibilities, problems occur if code built with earlier versions of GCC is linked against code built with newer versions of GCC. This leads for example to patchbot failures mentioned below.
The simplest solution is to make every package depend on the GCC executable. This way, a GCC upgrade will force everything to be rebuilt. This may be overkill, but it's not a big problem in practice since GCC is upgraded rarely (unlikely other Sage packages, it is never automatically rebuilt except if absolutely needed, see for example #24599).
See attachment: crash_zrVXNw.log for a crash log from the arando i686 patchbot with Sage 8.2.beta5 using GCC 7.2.0. It involves brial and C++ strings.
The following doctests fail:
sage -t --warn-long 67.1 src/sage/rings/polynomial/multi_polynomial_sequence.py # Killed due to abort
sage -t --warn-long 67.1 src/sage/rings/polynomial/pbori.pyx # Killed due to abort
sage -t --warn-long 67.1 src/sage/rings/polynomial/multi_polynomial_libsingular.pyx # Killed due to abort
sage -t --warn-long 67.1 src/sage/rings/polynomial/polynomial_ring_constructor.py # Killed due to abort
Component: packages: standard
Author: Jeroen Demeyer
Branch: 70ff832
Reviewer: François Bissey
Issue created by migration from https://trac.sagemath.org/ticket/24703