V3 build failure on clean Debian wheezy 7.1 amd64 installation (boost 1.49)

Bug #1221555 reported by Andrew McDonnell
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OQGRAPH
Fix Committed
Undecided
Unassigned

Bug Description

Based on previous bugs, I suspect could be boost version rather than wheezy which is the problem

Built as:

apt-get install autoconf build-essential bison cmake libtool bzr git gitg libncurses5-dev libboost-dev libboost-graph-dev libjudy-dev
CONFIGURE="-DWITH_EXTRA_CHARSETS=complex -DWITH_PLUGIN_ARIA=1-DWITH_READLINE=1 -DWITH_SSL=bundled -DWITH_MAX=1 -DWITH_EMBEDDED_SERVER=1"
cmake .. $CONFIGURE

[ 15%] Building CXX object storage/oqgraph/CMakeFiles/oqgraph.dir/graphcore.cc.o
In file included from /usr/include/boost/graph/detail/adjacency_list.hpp:31:0,
                 from /usr/include/boost/graph/adjacency_list.hpp:337,
                 from /usr/include/boost/graph/directed_graph.hpp:11,
                 from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/oqgraph_shim.h:33,
                 from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/graphcore-graph.h:28,
                 from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/graphcore.cc:29:
/usr/include/boost/graph/graph_concepts.hpp: In instantiation of ‘boost::concepts::IncidenceGraph<G>::~IncidenceGraph() [with G = oqgraph3::graph]’:
/usr/include/boost/graph/graph_concepts.hpp:74:1: required from ‘static void boost::concepts::requirement<boost::concepts::failed************ Model::************>::failed() [with Model = boost::concepts::IncidenceGraphConcept<oqgraph3::graph>]’
/usr/include/boost/graph/breadth_first_search.hpp:63:1: required from ‘void boost::breadth_first_visit(const IncidenceGraph&, typename boost::graph_traits<Graph>::vertex_descriptor, Buffer&, BFSVisitor, ColorMap) [with IncidenceGraph = oqgraph3::graph; Buffer = boost::queue<long long unsigned int>; BFSVisitor = boost::bfs_visitor<std::pair<boost::predecessor_recorder<boost::associative_property_map<boost::unordered::unordered_map<long long unsigned int, long long unsigned int> >, boost::on_tree_edge>, open_query::oqgraph_goal<false, boost::on_discover_vertex, boost::associative_property_map<boost::unordered::unordered_map<long long unsigned int, long long unsigned int> > > > >; ColorMap = boost::two_bit_judy_map<oqgraph3::vertex_index_property_map>; typename boost::graph_traits<Graph>::vertex_descriptor = long long unsigned int]’
/home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/graphcore.cc:796:67: required from here
/usr/include/boost/graph/graph_concepts.hpp:92:13: error: ‘out_edges’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
In file included from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/graphcore.cc:39:0:
/usr/include/boost/graph/reverse_graph.hpp:234:1: note: ‘template<class BidirectionalGraph, class GRef> std::pair<typename boost::reverse_graph<BidirectionalGraph>::out_edge_iterator, typename boost::reverse_graph<BidirectionalGraph>::out_edge_iterator> boost::out_edges(typename boost::graph_traits<Graph>::vertex_descriptor, const boost::reverse_graph<BidirectionalGraph, GraphRef>&)’ declared here, later in the translation unit
In file included from /usr/include/boost/graph/detail/adjacency_list.hpp:31:0,
                 from /usr/include/boost/graph/adjacency_list.hpp:337,
                 from /usr/include/boost/graph/directed_graph.hpp:11,
                 from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/oqgraph_shim.h:33,
                 from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/graphcore-graph.h:28,
                 from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/graphcore.cc:29:
/usr/include/boost/graph/graph_concepts.hpp:93:13: error: ‘out_degree’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
In file included from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/graphcore.cc:39:0:
/usr/include/boost/graph/reverse_graph.hpp:256:1: note: ‘template<class BidirectionalGraph, class GRef> typename boost::graph_traits<Graph>::degree_size_type boost::out_degree(typename boost::graph_traits<Graph>::vertex_descriptor, const boost::reverse_graph<BidirectionalGraph, GraphRef>&)’ declared here, later in the translation unit
In file included from /usr/include/boost/graph/detail/adjacency_list.hpp:31:0,
                 from /usr/include/boost/graph/adjacency_list.hpp:337,
                 from /usr/include/boost/graph/directed_graph.hpp:11,
                 from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/oqgraph_shim.h:33,
                 from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/graphcore-graph.h:28,
                 from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/graphcore.cc:29:
/usr/include/boost/graph/graph_concepts.hpp:95:13: error: ‘source’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
In file included from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/graphcore.cc:39:0:
/usr/include/boost/graph/reverse_graph.hpp:315:1: note: ‘template<class Edge, class BidirectionalGraph, class GRef> typename boost::graph_traits<BidirectionalGraph>::vertex_descriptor boost::source(const boost::detail::reverse_graph_edge_descriptor<Edge>&, const boost::reverse_graph<BidirectionalGraph, GRef>&)’ declared here, later in the translation unit
In file included from /usr/include/boost/graph/detail/adjacency_list.hpp:31:0,
                 from /usr/include/boost/graph/adjacency_list.hpp:337,
                 from /usr/include/boost/graph/directed_graph.hpp:11,
                 from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/oqgraph_shim.h:33,
                 from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/graphcore-graph.h:28,
                 from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/graphcore.cc:29:
/usr/include/boost/graph/graph_concepts.hpp:96:13: error: ‘target’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
In file included from /home/andrew/maria/bz/repo/10.0-oqgraph3-varchar/storage/oqgraph/graphcore.cc:39:0:
/usr/include/boost/graph/reverse_graph.hpp:322:1: note: ‘template<class Edge, class BidirectionalGraph, class GRef> typename boost::graph_traits<BidirectionalGraph>::vertex_descriptor boost::target(const boost::detail::reverse_graph_edge_descriptor<Edge>&, const boost::reverse_graph<BidirectionalGraph, GRef>&)’ declared here, later in the translation unit
make[2]: *** [storage/oqgraph/CMakeFiles/oqgraph.dir/graphcore.cc.o] Error 1
make[1]: *** [storage/oqgraph/CMakeFiles/oqgraph.dir/all] Error 2

Revision history for this message
Andrew McDonnell (andymc73) wrote :

$ g++ --version
Debian 4.7.2-5

Revision history for this message
Andrew McDonnell (andymc73) wrote :

This applies specifically to boost 1.49 as packaged by debian

Boost 1.54 builds fine

Revision history for this message
Andrew McDonnell (andymc73) wrote :

Scratch that last comment :-(

Rebuilt from scratch again with boost_1_54_0 and this time it failed on same place

It must be a g++ version problem

Revision history for this message
Andrew McDonnell (andymc73) wrote :

-fpermissive turns these into warnings. So obviously boost or (more likely) us are doing something slightly non-standard that g++ 4.7 picks up.

I am still trying to get my head around these concept things.
But what it might be, is out_edges() which is declared in oqgraph_shim.h actually needs to be declared earlier, somewhere (at a guess)

It may be worth refactoring the h files at some point

Revision history for this message
Andrew McDonnell (andymc73) wrote :

Interim fix is to add -fpermissive into CMakeLists.txt

Changed in oqgraph:
status: New → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.