abyss icon indicating copy to clipboard operation
abyss copied to clipboard

Abyss 2.03 compile error -- deleted function

Open eroberson opened this issue 6 years ago • 7 comments

The v2.0.3 version of AbySS failing due to a "deleted function".

GCC Suite: 7.2.0 Boost: 1.66.0 OpenMPI: 3.0.0 Sparsehash: 2.0.3

Configure command:

./configure --prefix=/home/eli --with-boost=/home/eli/src/boost_1_66_0/stage/lib FC=/usr/local/bin/gfortran CFLAGS="-m64 -O3 -mtune=core2" CXXFLAGS="-m64 -O3 -mtune=core2" FCFLAGS="-m64 -O3 -mtune=core2"

Error:

Making all in Layout
make[2]: Entering directory `/home/eli/src/abyss-2.0.3/Layout'
g++ -DHAVE_CONFIG_H -I. -I..  -I.. -I../Common -I/home/eli/src/abyss-2.0.3 -isystem/home/eli/src/boost_1_66_0/stage/lib -isystem/home/eli/src/boost_1_66_0/stage/lib/include     -isystem/home/eli/src/abyss-2.0.3/boost_1_56_0 -Wall -Wextra -m64 -O3 -mtune=core2 -MT abyss_layout-layout.o -MD -MP -MF .deps/abyss_layout-layout.Tpo -c -o abyss_layout-layout.o `test -f 'layout.cc' || echo './'`layout.cc
In file included from ../Graph/Assemble.h:6:0,
                 from layout.cc:5:
../Graph/DepthFirstSearch.h: In instantiation of ‘void depthFirstSearch(const Graph&, Visitor, ColorMap, bool) [with Graph = ContigGraph<DirectedGraph<Length, Distance> >; Visitor = AssembleVisitor<std::back_insert_iterator<std::vector<std::vector<ContigNode> > > >; ColorMap = boost::vector_property_map<boost::default_color_type, ContigIndexMap>]’:
../Graph/Assemble.h:64:18:   required from ‘void assembleDFS(const Graph&, OutIt, bool) [with Graph = ContigGraph<DirectedGraph<Length, Distance> >; OutIt = std::back_insert_iterator<std::vector<std::vector<ContigNode> > >]’
layout.cc:277:46:   required from here
../Graph/DepthFirstSearch.h:39:41: error: use of deleted function ‘boost::vector_property_map<boost::default_color_type, ContigIndexMap>::vector_property_map(const boost::vector_property_map<boost::default_color_type, ContigIndexMap>&)’
    boost::detail::depth_first_visit_impl(g, u, vis, color,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
      boost::detail::nontruth2());
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/property_map/property_map.hpp:844:0,
                 from /usr/include/boost/graph/properties.hpp:19,
                 from ../Graph/Properties.h:6,
                 from ../Common/ContigNode.h:6,
                 from ../Common/ContigPath.h:4,
                 from layout.cc:2:
/usr/include/boost/property_map/vector_property_map.hpp:19:11: note: ‘boost::vector_property_map<boost::default_color_type, ContigIndexMap>::vector_property_map(const boost::vector_property_map<boost::default_color_type, ContigIndexMap>&)’ is implicitly deleted because the default definition would be ill-formed:
     class vector_property_map
           ^~~~~~~~~~~~~~~~~~~
/usr/include/boost/property_map/vector_property_map.hpp:19:11: error: use of deleted function ‘boost::shared_ptr<std::vector<boost::default_color_type, std::allocator<boost::default_color_type> > >::shared_ptr(const boost::shared_ptr<std::vector<boost::default_color_type, std::allocator<boost::default_color_type> > >&)’
In file included from /usr/include/boost/shared_ptr.hpp:17:0,
                 from /usr/include/boost/property_map/vector_property_map.hpp:14,
                 from /usr/include/boost/property_map/property_map.hpp:844,
                 from /usr/include/boost/graph/properties.hpp:19,
                 from ../Graph/Properties.h:6,
                 from ../Common/ContigNode.h:6,
                 from ../Common/ContigPath.h:4,
                 from layout.cc:2:
/usr/include/boost/smart_ptr/shared_ptr.hpp:168:25: note: ‘boost::shared_ptr<std::vector<boost::default_color_type, std::allocator<boost::default_color_type> > >::shared_ptr(const boost::shared_ptr<std::vector<boost::default_color_type, std::allocator<boost::default_color_type> > >&)’ is implicitly declared as deleted because ‘boost::shared_ptr<std::vector<boost::default_color_type, std::allocator<boost::default_color_type> > >’ declares a move constructor or move assignment operator
 template<class T> class shared_ptr
                         ^~~~~~~~~~
In file included from ../Graph/DepthFirstSearch.h:5:0,
                 from ../Graph/Assemble.h:6,
                 from layout.cc:5:
/usr/include/boost/graph/depth_first_search.hpp:77:10: note:   initializing argument 4 of ‘void boost::detail::depth_first_visit_impl(const IncidenceGraph&, typename boost::graph_traits<Graph>::vertex_descriptor, DFSVisitor&, ColorMap, TerminatorFunc) [with IncidenceGraph = ContigGraph<DirectedGraph<Length, Distance> >; DFSVisitor = AssembleVisitor<std::back_insert_iterator<std::vector<std::vector<ContigNode> > > >; ColorMap = boost::vector_property_map<boost::default_color_type, ContigIndexMap>; TerminatorFunc = boost::detail::nontruth2; typename boost::graph_traits<Graph>::vertex_descriptor = ContigNode]’
     void depth_first_visit_impl
          ^~~~~~~~~~~~~~~~~~~~~~
In file included from ../Graph/Assemble.h:6:0,
                 from layout.cc:5:
../Graph/DepthFirstSearch.h:53:41: error: use of deleted function ‘boost::vector_property_map<boost::default_color_type, ContigIndexMap>::vector_property_map(const boost::vector_property_map<boost::default_color_type, ContigIndexMap>&)’
    boost::detail::depth_first_visit_impl(g, u, vis, color,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
      boost::detail::nontruth2());
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../Graph/DepthFirstSearch.h:5:0,
                 from ../Graph/Assemble.h:6,
                 from layout.cc:5:
/usr/include/boost/graph/depth_first_search.hpp:77:10: note:   initializing argument 4 of ‘void boost::detail::depth_first_visit_impl(const IncidenceGraph&, typename boost::graph_traits<Graph>::vertex_descriptor, DFSVisitor&, ColorMap, TerminatorFunc) [with IncidenceGraph = ContigGraph<DirectedGraph<Length, Distance> >; DFSVisitor = AssembleVisitor<std::back_insert_iterator<std::vector<std::vector<ContigNode> > > >; ColorMap = boost::vector_property_map<boost::default_color_type, ContigIndexMap>; TerminatorFunc = boost::detail::nontruth2; typename boost::graph_traits<Graph>::vertex_descriptor = ContigNode]’
     void depth_first_visit_impl
          ^~~~~~~~~~~~~~~~~~~~~~
In file included from ../Graph/Assemble.h:6:0,
                 from layout.cc:5:
../Graph/DepthFirstSearch.h:67:41: error: use of deleted function ‘boost::vector_property_map<boost::default_color_type, ContigIndexMap>::vector_property_map(const boost::vector_property_map<boost::default_color_type, ContigIndexMap>&)’
    boost::detail::depth_first_visit_impl(g, u, vis, color,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
      boost::detail::nontruth2());
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../Graph/DepthFirstSearch.h:5:0,
                 from ../Graph/Assemble.h:6,
                 from layout.cc:5:
/usr/include/boost/graph/depth_first_search.hpp:77:10: note:   initializing argument 4 of ‘void boost::detail::depth_first_visit_impl(const IncidenceGraph&, typename boost::graph_traits<Graph>::vertex_descriptor, DFSVisitor&, ColorMap, TerminatorFunc) [with IncidenceGraph = ContigGraph<DirectedGraph<Length, Distance> >; DFSVisitor = AssembleVisitor<std::back_insert_iterator<std::vector<std::vector<ContigNode> > > >; ColorMap = boost::vector_property_map<boost::default_color_type, ContigIndexMap>; TerminatorFunc = boost::detail::nontruth2; typename boost::graph_traits<Graph>::vertex_descriptor = ContigNode]’
     void depth_first_visit_impl
          ^~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [abyss_layout-layout.o] Error 1
make[2]: Leaving directory `/home/eli/src/abyss-2.0.3/Layout'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/eli/src/abyss-2.0.3'
make: *** [all] Error 2```

eroberson avatar Mar 20 '18 20:03 eroberson

@eroberson Thanks for reporting this and thanks also for providing your exact GCC version and Boost version up front.

I'm not sure how I will fix this at the moment, but if you are looking for a quick workaround I'm guessing that using an using an older version of Boost will do the trick. IIRC I have tested with Boost 1.62 and maybe Boost 1.64.

benvvalk avatar Mar 20 '18 21:03 benvvalk

Happy to help!

I haven't retried with Boost 1.66.0. Going back over everything carefully it looks like when I invoked the 1.66.0 configure command I was pointing at the linker directory. I need to retry it to make sure that wasn't the only error.

Either way, I can confirm it compiled with 1.62.0:

./configure --prefix=/home/eli \
--with-boost=/home/eli/src/boost_1_62_0 \
FC=/usr/local/bin/gfortran \
CFLAGS="-m64 -O3 -mtune=core2" \
CXXFLAGS="-m64 -O3 -mtune=core2" \
FCFLAGS="-m64 -O3 -mtune=core2"

eroberson avatar Mar 21 '18 02:03 eroberson

@eroberson Thanks, good to know!

benvvalk avatar Mar 21 '18 14:03 benvvalk

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

stale[bot] avatar Apr 11 '18 15:04 stale[bot]

still want to fix this

benvvalk avatar Apr 11 '18 16:04 benvvalk

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

stale[bot] avatar May 02 '18 17:05 stale[bot]

still needs to be fixed

benvvalk avatar May 02 '18 17:05 benvvalk