Page 1 of 1

FTBFS polymake: returning instance of abstract class

Posted: 15 Sep 2017, 01:13
by ohnoes

Code: Select all

g++ -c -o ../../perlx-5.24.1-x86_64-linux-thread-multi/CPlusPlus.o -fPIC -Wall -I~/polymake-3.1/include/core-wrappers -I~/polymake-3.1/include/core -I~/polymake-3.1/include/external/permlib -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -std=c++14 -march=native -ftemplate-depth-200 -fno-strict-aliasing -Wno-parentheses -fwrapv -fopenmp -DNDEBUG -DPOLYMAKE_DEBUG=0 -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -I/usr/lib/perl5/5.24.1/x86_64-linux-thread-multi/CORE -D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPerlVersion=5241 -MD ../../perlx-5.24.1-x86_64-linux-thread-multi/CPlusPlus.cc In file included from ~/polymake-3.1/include/core/polymake/internal/type_manip.h:26:0, from ~/polymake-3.1/include/core/polymake/internal/operations_basic_defs.h:20, from ~/polymake-3.1/include/core/polymake/internal/comparators_basic_defs.h:20, from ~/polymake-3.1/include/core/polymake/internal/comparators_ops.h:23, from ~/polymake-3.1/include/core/polymake/Series.h:24, from ~/polymake-3.1/include/core/polymake/internal/sparse.h:20, from ~/polymake-3.1/include/core/polymake/GenericIO.h:20, from ~/polymake-3.1/include/core/polymake/perl/Value.h:20, from ~/polymake-3.1/include/core/polymake/perl/glue.h:66, from RuleGraph.xxs:17: /usr/include/c++/7/limits: In instantiation of 'struct std::numeric_limits<pm::graph::NodeMapBase>': ~/polymake-3.1/include/core/polymake/internal/type_manip.h:839:113: required by substitution of 'template<class T> typename std::enable_if<std::numeric_limits<_Tp>::is_specialized, char (&)[2]>::type pm::object_classifier::_impl::analyzer_f(const T*, pm::object_classifier::_impl::bait*) [with T = pm::graph::NodeMapBase]' ~/polymake-3.1/include/core/polymake/internal/type_manip.h:848:47: required from 'const int pm::object_classifier::kind_of<pm::graph::NodeMapBase, void>::value' ~/polymake-3.1/include/core/polymake/internal/type_manip.h:983:8: required from 'struct pm::spec_object_traits<pm::graph::NodeMapBase>' ~/polymake-3.1/include/core/polymake/internal/type_manip.h:1045:1: required by substitution of 'template<class T2> static typename pm::size_discriminant<(2 - std::is_same<typename T2::persistent_type, void>::value)>::type pm::has_persistent_type_impl<pm::spec_object_traits<pm::graph::NodeMapBase> >::Test<T2>(const T2*, typename T2::persistent_type*) [with T2 = pm::spec_object_traits<pm::graph::NodeMapBase>]' ~/polymake-3.1/include/core/polymake/internal/type_manip.h:341:51: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] ~/polymake-3.1/include/core/polymake/internal/type_manip.h:1045:1: required from 'struct pm::has_persistent_type<pm::spec_object_traits<pm::graph::NodeMapBase> >' ~/polymake-3.1/include/core/polymake/internal/type_manip.h:1080:8: required from 'struct pm::redirect_object_traits<pm::graph::NodeMapBase>' ~/polymake-3.1/include/core/polymake/internal/type_manip.h:1267:8: required from 'struct pm::isomorphic_types<pm::graph::NodeMapBase, int>' ~/polymake-3.1/include/core/polymake/internal/iterators.h:687:86: required from 'struct pm::isomorphic_to_container_of<pm::EmbeddedList<pm::graph::NodeMapBase, &pm::graph::NodeMapBase::ptrs>, int, pm::is_set, true>' ~/polymake-3.1/include/core/polymake/Bitset.h:209:14: required by substitution of 'template<class TContainer, class> pm::Bitset::Bitset(const TContainer&) [with TContainer = pm::EmbeddedList<pm::graph::NodeMapBase, &pm::graph::NodeMapBase::ptrs>; <template-parameter-1-2> = <missing>]' ~/polymake-3.1/include/core/polymake/Graph.h:712:39: required from here /usr/include/c++/7/limits:317:7: error: invalid abstract return type 'pm::graph::NodeMapBase' min() _GLIBCXX_USE_NOEXCEPT { return _Tp(); } ^~~ In file included from ~/polymake-3.1/include/core-wrappers/polymake/Graph.h:20:0, from RuleGraph.xxs:21: ~/polymake-3.1/include/core/polymake/Graph.h:497:8: note: because the following virtual functions are pure within 'pm::graph::NodeMapBase': struct NodeMapBase { ^~~~~~~~~~~ ~/polymake-3.1/include/core/polymake/Graph.h:505:17: note: virtual void pm::graph::NodeMapBase::init() virtual void init()=0; ^~~~ ~/polymake-3.1/include/core/polymake/Graph.h:506:17: note: virtual void pm::graph::NodeMapBase::reset(int) virtual void reset(int n=0)=0; ^~~~~

Code: Select all

Using built-in specs. COLLECT_GCC=g++-7 COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/7/lto-wrapper OFFLOAD_TARGET_NAMES=hsa:nvptx-none Target: x86_64-suse-linux Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,ada,go --enable-offload-targets=hsa,nvptx-none=/usr/nvptx-none, --without-cuda-driver --enable-checking=release --disable-werror --with-gxx-include-dir=/usr/include/c++/7 --enable-ssp --disable-libssp --disable-libvtv --disable-libcc1 --enable-plugin --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --with-slibdir=/lib64 --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --with-gcc-major-version-only --enable-linker-build-id --enable-linux-futex --enable-gnu-indirect-function --program-suffix=-7 --without-system-libunwind --enable-multilib --with-arch-32=x86-64 --with-tune=generic --build=x86_64-suse-linux --host=x86_64-suse-linux Thread model: posix gcc version 7.1.1 20170802 [gcc-7-branch revision 250825] (SUSE Linux)

Re: FTBFS polymake: returning instance of abstract class

Posted: 15 Sep 2017, 23:01
by gawrilow
Yes, it's a known bug which has been fixed in the meanwhile. We were going to produce the next snapshot but this got somehow stuck during the holiday season. Until that's happened, please compile with gcc6 or clang.