FTBFS polymake: returning instance of abstract class

Discussions on installation issues go here.

Moderator: Moderators

ohnoes
Posts: 1
Joined: 15 Sep 2017, 01:07

FTBFS polymake: returning instance of abstract class

Postby ohnoes » 15 Sep 2017, 01:13

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)

User avatar
gawrilow
Main Author
Posts: 269
Joined: 25 Dec 2010, 17:40

Re: FTBFS polymake: returning instance of abstract class

Postby gawrilow » 15 Sep 2017, 23:01

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.


Return to “Installing polymake”

Who is online

Users browsing this forum: No registered users and 1 guest

cron