This is a read only copy of the old FEniCS QA forum. Please visit the new QA forum to ask questions

dorsal build of dolfin fails compiling BoostGraphColoring.cpp

0 votes

I am (still) trying to build fenics using dorsal under Scientific Linux 6.4. I got past my slepc
problem by not building slepc (once I have a working build, I'll get back to the issue with slepc), and now get as far as the build of dolfin. This fails with

/home/faculty/arnold/fenics/FEniCS-sl6-1.2.0/src/dolfin-1.2.0/dolfin/graph/BoostGraphColoring.cpp:62: error: ‘edges_are_unsorted_multi_pass’ is not a member of ‘boost’
make[2]: *** [dolfin/CMakeFiles/dolfin.dir/graph/BoostGraphColoring.cpp.o] Error 1

Any ideas or suggestions? A longer excerpt of dolfin-1.2.0/dorsal_build.log is below

[ 59%] Building CXX object dolfin/CMakeFiles/dolfin.dir/graph/GraphOrdering.cpp.o
[ 59%] Building CXX object dolfin/CMakeFiles/dolfin.dir/graph/BoostGraphColoring.cpp.o
In file included from /home/faculty/arnold/fenics/FEniCS-sl6-1.2.0/src/dolfin-1.2.0/dolfin/graph/BoostGraphColoring.cpp:28:
/usr/include/boost/graph/compressed_sparse_row_graph.hpp:51:2: warning: #warning "Using deprecated BGL compressed sparse row graph interface --"
/usr/include/boost/graph/compressed_sparse_row_graph.hpp:52:2: warning: #warning "please see the documentation for the new interface and then"
/usr/include/boost/graph/compressed_sparse_row_graph.hpp:53:2: warning: #warning "#define BOOST_GRAPH_USE_NEW_CSR_INTERFACE before including"
/usr/include/boost/graph/compressed_sparse_row_graph.hpp:54:2: warning: #warning "<boost/graph/compressed_sparse_row_graph.hpp>"
asked Jul 22, 2013 by dnarnold FEniCS User (2,360 points)

I have tried to do the same thing, but my install fails compiling cgal. cgal refuses to use the downloaded boost include files and insists on using the system files, leading to the
"looser throw specifier" error from /usr/include/boost/exception_ptr.hpp:43

Did you do something special to make the boost include files visible to cgal, and possibly others?

1 Answer

+1 vote

You have old boost version <= 1.41. Try tweaking dolfin/graph/BoostGraphColoring.cpp by adding

#define BOOST_GRAPH_USE_NEW_CSR_INTERFACE

before

#include <boost/graph/compressed_sparse_row_graph.hpp>
answered Jul 22, 2013 by Jan Blechta FEniCS Expert (51,420 points)

Thanks Jan. I made this change in dolfin/graph/BoostGraphColoring.cpp and also
dolfin/graph/BoostGraphOrdering.cpp (since the same error arises there). That allowed the build of dolfin to continue a bit further, but then it failed with another boost error:

[ 63%] Building CXX object dolfin/CMakeFiles/dolfin.dir/log/Logger.cpp.o
In file included from /usr/include/boost/thread/future.hpp:12,
                 from /usr/include/boost/thread.hpp:24,
                 from /home/faculty/arnold/fenics/FEniCS-sl6-1.2.0/src/dolfin-1.2.0/dolfin/log/Logger.cpp:32:
/usr/include/boost/exception_ptr.hpp:43: error: looser throw specifier for ‘virtual boost::exception_ptr::~exception_ptr()’
/usr/include/boost/exception/detail/exception_ptr_base.hpp:26: error:   overriding ‘virtual boost::exception_detail::exception_ptr_base::~exception_ptr_base() throw ()’
make[2]: *** [dolfin/CMakeFiles/dolfin.dir/log/Logger.cpp.o] Error 1

Any suggestions?

I found a solution, namely, I added boost as an additional package
to the platform file (I put it first). With this, dorsal completes the build of everything
(except slepc, which, so far I have commented out of the platform file).

...