Opened 3 years ago

Last modified 3 years ago

#25849 new defect

SAGE_CHECK fails checking ppl with gcc 8.

Reported by: gh-ChukwuemezieChristopherAneke Owned by:
Priority: major Milestone: sage-8.4
Component: build Keywords: fedora 28, SAGE_CHECK
Cc: Merged in:
Authors: Reviewers:
Report Upstream: Fixed upstream, but not in a stable release. Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by jdemeyer)

I set SAGE_CHECK="yes" to run tests on the spkgs and I get the error below when I run make -j5.

Section from end of ppl-1.2.p1.log:

In file included from ../../src/Pointset_Powerset_defs.hh:1454,
                 from ../../src/algorithms.hh:28,
                 from ../../src/ppl_include_files.hh:18,
                 from ../../src/ppl_header.hh:38,
                 from ../../tests/ppl_test.hh:27,
                 from equals1.cc:25:
../../src/Pointset_Powerset_templates.hh: In instantiation of 'Parma_Polyhedra_Library::Pointset_Powerset<PSET>::Pointset_Powerset(const Parma_Polyhedra_Library::Pointset_Powerset<QH>&, Parma_Polyhedra_Library::Complexity_Class) [with QH = Parma_Polyhedra_Library::Box<Parma_Polyhedra_Library::Interval<__gmp_expr<__mpq_struct [1], __mpq_struct [1]>, Parma_Polyhedra_Library::Interval_Info_Bitset<unsigned int, Parma_Polyhedra_Library::Test::Rational_Real_Open_Interval_Info_Policy> > >; PSET = Parma_Polyhedra_Library::NNC_Polyhedron]':
../../src/Pointset_Powerset_inlines.hh:262:43:   required from 'bool Parma_Polyhedra_Library::Pointset_Powerset<PSET>::geometrically_equals(const Parma_Polyhedra_Library::Pointset_Powerset<PSET>&) const [with PSET = Parma_Polyhedra_Library::Box<Parma_Polyhedra_Library::Interval<__gmp_expr<__mpq_struct [1], __mpq_struct [1]>, Parma_Polyhedra_Library::Interval_Info_Bitset<unsigned int, Parma_Polyhedra_Library::Test::Rational_Real_Open_Interval_Info_Policy> > >]'
equals1.cc:44:50:   required from here
../../src/Pointset_Powerset_templates.hh:66:29: internal compiler error: in type_dependent_expression_p, at cp/pt.c:25100
          y_end = y.end(); i != y_end; ++i) {
                           ~~^~~~~~~~
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
Preprocessed source stored into /tmp/ccb8H3zx.out file, please attach this to your bugreport.
make[7]: *** [Makefile:1245: equals1.o] Error 1
************************************************************************
Error testing package ppl-1.2.p1
************************************************************************

Attachments (1)

ppl-1.2.p1.log (447.4 KB) - added by Konrad127123 3 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 Changed 3 years ago by gh-ChukwuemezieChristopherAneke

  • Description modified (diff)

comment:2 Changed 3 years ago by jdemeyer

"internal compiler error" typically means a broken compiler or a hardware problem. Is the error reproducible, does it happen again if you try again?

Attach the complete log, not just "section from end". That way we can see which compiler you are using.

comment:3 Changed 3 years ago by jdemeyer

  • Description modified (diff)
  • Summary changed from SAGE_CHECK fails with Python2 build to SAGE_CHECK fails checking ppl

Changed 3 years ago by Konrad127123

comment:4 Changed 3 years ago by Konrad127123

I'm reproducibly getting the same error on a Debian Sid amd64 system (log attached). (I am using the system gcc & ccache if that makes any difference.)

I guess "internal compiler error" means gcc is crashing. Any help on how to go about debugging this so I can file a proper bug report with gcc upstream would be much appreciated.

I get this error when doing make, but so far I've not managed to figure out what precise gcc command is triggering this and what environmental variables are set. Any suggestions on how to figure this out?

comment:5 Changed 3 years ago by Konrad127123

Update: if I put all (345) of the needed header files in the working directory, then I can trigger the error with /usr/bin/g++ -I. equals1.cc where equals1.cc is in path_to_sage/local/var/tmp/sage/build/ppl-1.2.p1/src/tests/Powerset.

comment:6 Changed 3 years ago by Konrad127123

  • Report Upstream changed from N/A to Reported upstream. Developers acknowledge bug.

This is a bug in g++, now reported upstream at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87770 . It affects version 8.2 (and I think every 8.x version before that), but does not affect version 7.x.

comment:7 Changed 3 years ago by Konrad127123

  • Report Upstream changed from Reported upstream. Developers acknowledge bug. to Fixed upstream, but not in a stable release.
  • Summary changed from SAGE_CHECK fails checking ppl to SAGE_CHECK fails checking ppl with gcc 8.

This bug has now been fixed in gcc trunk, so it will not affect gcc 9.0 once that is released.

It's not yet clear to me if the fix will get backported to the gcc-8 branch in time for gcc 8.3, which is likely to be released pretty soon.

comment:8 Changed 3 years ago by Konrad127123

Update: gcc 8.3 has been released, but does not include this bugfix.

Note: See TracTickets for help on using tickets.