polymake-2.14r1-6.fc24 fails to build in F24: g++ -c -o FacetList.o -fPIC -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -I/usr/include/eigen3 -Wno-unused-local-typedefs -I/builddir/build/BUILD/polymake-2.14r1/include/core-wrappers -I/builddir/build/BUILD/polymake-2.14r1/include/core -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -I/usr/include/eigen3 -Wno-unused-local-typedefs -ftemplate-depth-200 -Wall -Wno-strict-aliasing -Wno-parentheses -fwrapv -fopenmp -I/builddir/build/BUILD/polymake-2.14r1/include/core-wrappers -I/builddir/build/BUILD/polymake-2.14r1/include/core -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -I/usr/include/eigen3 -Wno-unused-local-typedefs -ftemplate-depth-200 -Wall -Wno-strict-aliasing -Wno-parentheses -fwrapv -fopenmp -DNDEBUG -DPOLYMAKE_DEBUG=0 -O2 -MD /builddir/build/BUILD/polymake-2.14r1/lib/core/src/FacetList.cc In file included from /builddir/build/BUILD/polymake-2.14r1/include/core-wrappers/polymake/list:20:0, from /builddir/build/BUILD/polymake-2.14r1/include/core/polymake/permutations.h:27, from /builddir/build/BUILD/polymake-2.14r1/include/core/polymake/IncidenceMatrix.h:28, from /builddir/build/BUILD/polymake-2.14r1/include/core-wrappers/polymake/IncidenceMatrix.h:20, from /builddir/build/BUILD/polymake-2.14r1/include/core/polymake/FacetList.h:25, from /builddir/build/BUILD/polymake-2.14r1/include/core-wrappers/polymake/FacetList.h:20, from /builddir/build/BUILD/polymake-2.14r1/lib/core/src/FacetList.cc:21: /builddir/build/BUILD/polymake-2.14r1/include/core/polymake/list: In instantiation of 'static pm::std_list_traits<Value, Alloc>::Node* pm::std_list_traits<Value, Alloc>::to_node(Value*) [with Value = pm::facet_list::facet<true>; Alloc = std::allocator<pm::facet_list::facet<true> >; pm::std_list_traits<Value, Alloc>::Node = std::_List_node<pm::facet_list::facet<true> >]': /builddir/build/BUILD/polymake-2.14r1/include/core/polymake/FacetList.h:940:95: required from here /builddir/build/BUILD/polymake-2.14r1/include/core/polymake/list:52:33: error: '_M_data' is not a member of 'pm::std_list_traits<pm::facet_list::facet<true> >::Node {aka std::_List_node<pm::facet_list::facet<true> >}' return reverse_cast(data, &Node::_M_data); ^~~~~ This seems to be triggered by GCC 6.
It's triggered by code that is completely undefined, nonportable, and should never have seen the light of day. _M_data is a private implementation detail and this code has no business ever using it. That member is only present in C++98 mode, so fails when using -std=c++11, or the implicit -std=gnu++14 in GCC 6.
This bug appears to have been reported against 'rawhide' during the Fedora 24 development cycle. Changing version to '24'. More information and reason for this action is here: https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora24#Rawhide_Rebase