Summary: | build failed against boost-1.48 [patch] | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | nucleo <nucleo> |
Component: | Portability-Compilation | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | afiestas, anaselli, andi.clemens, arthur, balcaen.john, benjamin.girault, blagozlatev, caulier.gilles, christopher.tanner, jewillco, kevin.kofler, marcel.wiesweg, myriam, rdieter, ronald, scarpino, veaceslav.munteanu90 |
Priority: | NOR | ||
Version: | 2.3.0 | ||
Target Milestone: | --- | ||
Platform: | Unlisted Binaries | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 2.6.0 | |
Sentry Crash Report: | |||
Bug Depends on: | |||
Bug Blocks: | 267777 | ||
Attachments: |
Digikam 2.3.0 build log
Patch for reverse_graph_edge_descriptor related build error Also in Macports version. Build fix for boost 1.48 adapted patch to work with old boost version My proposed patch (not tested) Attempted fix to my patch |
Description
nucleo
2011-11-28 17:25:47 UTC
Created attachment 66158 [details]
Digikam 2.3.0 build log
See more details in build log.
Boost templates produce the worst to read error messages gcc can offer. With a closer look, most noise is centered around a single line: 1394: return vertexLessThan( boost::target(a.toEdge(), g), boost::target(b.toEdge(), g)); in the context of a reverse_graph. Another error in property_map gives, thankfully, this explanation: no known conversion for argument 1 from 'const boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >' to 'const key_type& {aka const boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int>&}' In the changelog for boost Graph 1.48, I see "Changed edge_descriptor type for reverse_graph to a new data type to avoid ambiguities with the edge_descriptor of the underlying graph. " So I assume this is the cause: source incompatible changes in the new release. I wasn't able to reproduce the bug and I didn't find any duplicates of the bug. Full build log is here: http://koji.fedoraproject.org/koji/getfile?taskID=3531978&name=build.log Versions of libs used for this build are here: http://koji.fedoraproject.org/koji/getfile?taskID=3531978&name=root.log between this and https://bugreports.qt.nokia.com/browse/QTBUG-22829 boost-1.48 is surely "fun". :( The same problem with 2.4.1. Seel build log http://koji.fedoraproject.org/koji/getfile?taskID=3566086&name=build.log Created attachment 66425 [details] Patch for reverse_graph_edge_descriptor related build error Maybe this thread will be useful: this thread http://lists.fedoraproject.org/pipermail/devel/2011-December/160145.html http://lists.fedoraproject.org/pipermail/devel/2011-December/160266.html From: Petr Machata Reply-To: Development discussions related to Fedora Orion Poplawski writes: > I'm seeing the following boost related build error building paraview > in rawhide. Do any boost gurus know what the issue might be the > issue? Hi there, please do not hesitate to file bugs for such regressions. I only noticed this message today. The problem here is in a tree_edge(e,g) event point of boost's breadth_first_search. In reverse graph, this used to be called so that "e" was directly the edge type of the edge in graph (vtkEdgeType in this case). Now it's called with a value of wrapper type boost::detail::reverse_graph_edge_descriptor<vtkEdgeType>. This wrapper type has a public member underlying_desc which is the original edge. Of course, with forward graph, this wrapping doesn't take place, so we can't just plainly access e.underlying_desc.Id, we must wrap the access itself. The hack that I'm attaching should take care of it. The build is progressing now, I'm not sure if I'll hit something more. I'll open an upstream bug for this. Thanks, PM Marcel, Do you see the comment #7 from Nicolas about VTK patched for a similar problem ?Perhaps we can do something like this in digiKam implementation ? Gilles Caulier Any idea how to compile the code? Or only to downgrade liboost? (On my arch packge mangaer don't have downgrade option) Nicolas, I would to hack this problem but under Mageia, i still using an old Boost version. How to deal with it without to break system ? Gilles If you would like to have a version that works for both forward and reverse graphs, look at remove_reverse_edge_descriptor in <boost/graph/copy.hpp> in the Boost trunk. Please don't refer to that code since it's internal, but you can copy it as a start for your fix; the code there should work for both old and new versions of Boost if you put an #ifdef around the partial specialization for reverse_graph_edge_descriptor. Looking at the first Boost-related error in the build log, it appears that you are taking the reverse_graph's edge descriptor and converting it to the original graph's edge descriptor, then using that to access a property in the reverse_graph. The easiest solution might just be to define a reverse_edge_t (graph_traits<reverse_graph<...> >::edge_descriptor) and be careful not to assign those to edge_ts, or, alternatively, to use edge_ts to access properties only in the original graph. I looked through the file that is triggering the error, and in particular the depth_first_search_sorted function; would it be possible to change the outEdges variable there to be a QList<graph_traits<IncidenceGraph>::edge_descriptor> rather than using a wrapper class? You will need to change the code to call toList rather than toEdgeList. I think that would fix the problem relatively easily for all Boost versions. Jeremiah, If you can provide a patch, we can test in local computers with different versions of Boost. Gilles Caulier I probably don't know enough of the QT APIs to write a patch, but it should be possible to follow what is in comment 13 to make the necessary modifications. I think the goal to patch current implementation is more relevant of boost API than Qt4... Gilles Caulier I don't have the tools to build Digikam, so I could write a patch but not easily test it. The calls being removed and changed are those inside your Digikam code, not anything in Boost (or that calls Boost directly). (In reply to comment #17) > I don't have the tools to build Digikam, so I could write a patch but not > easily test it. The calls being removed and changed are those inside your > Digikam code, not anything in Boost (or that calls Boost directly). I can test any patch you can provide, I'm having this build fail right now and I have all the environment ready. Created attachment 67164 [details] Also in Macports version. Hello. This also appears in macports. I just ran into this issue and here is a link to a bug report by someone else. https://trac.macports.org/ticket/32524 Macports uses: boost @1.48.0, Revision 3 (devel) digikam @2.1.1, Revision 1 (kde, kde4) Only the end of the log file is attached. (In reply to comment #18) > (In reply to comment #17) > > I don't have the tools to build Digikam, so I could write a patch but not > > easily test it. The calls being removed and changed are those inside your > > Digikam code, not anything in Boost (or that calls Boost directly). > > I can test any patch you can provide, I'm having this build fail right now and > I have all the environment ready. I can also test any patch. I have an X86_64 environment. Marcel, Please, see my comment #8. Gilles Caulier Created attachment 67460 [details]
Build fix for boost 1.48
This patch fixes the build under boost 1.48.
I believe it should still work under older versions of boost. Can someone check, please?
Alex, Thanks a lots for your patch. Tomorow, i will take a look if all compile fine with previous version of boost (1.46) Some other people can check if patch compile AND work fine. Typically code relevant is used to manage image versioning in image editor. Look bug 267777 for details. Gilles Caulier digikam-2.5.0 build failed against boost-1.47 after I applied patch digikam-boost-1.48.diff. See build log here http://nucleo.fedorapeople.org/digikam-boost-1.47.log Unfortunately I am not able to test build against boost-1.48 because of recently added gcc-4.7.0 to Fedora Rawhide (See bug 290642 ) I confirm patch in Comment #22 builds, but Marcel should tell if it's also right imo :) Compiles and runs here also. How does one check that the patch is working? After fixing gcc-4.7.0 related issues digikam-2.5.0 build completed against boost-1.48. But this patch broke build against boost-1.47. To Nucleo, #27 I just tested under Mageia 1 with Boost 1.46, and all compile fine. I cannot test with boost 1.47. To Chris, #26, To check if versioning work fine, we have test unit program in digiKam core. Compile it with whole application to check if it work. To enable tests, add "-DKDE4_BUILD_TESTS=on" option to cmake command line to configure compilation. Results are something like this : [gilles@localhost core (master)]$ patch -p1 < digikam-boost-1.48.diff patching file libs/database/imagehistory/imagehistorygraph_boost.h [gilles@localhost core (master)]$ [gilles@localhost core (master)]$ pwd /mnt/data/Devel/GIT/2.x/build/core [gilles@localhost core (master)]$ make [ 0%] Built target digikam-gitversion [ 0%] Built target digikamcore_automoc [ 0%] Built target kexiv2_automoc [ 1%] Built target kexiv2 [ 1%] Built target kipi_automoc [ 3%] Built target kipi [ 3%] Built target kdcraw_automoc [ 3%] Built target libraw_automoc [ 5%] Built target libraw [ 5%] Built target kdcraw [ 5%] Built target kface_automoc [ 7%] Built target kface [ 7%] Built target kgeomap_automoc [ 9%] Built target kgeomap [ 45%] Built target digikamcore [ 45%] Built target testlensfuniface_automoc [ 45%] Built target testlensfuniface [ 45%] Built target digikamdatabase_automoc Scanning dependencies of target digikamdatabase [ 45%] Building CXX object core/digikam/CMakeFiles/digikamdatabase.dir/__/libs/database/imagehistory/imagehistorygraph.cpp.o [ 45%] Building CXX object core/digikam/CMakeFiles/digikamdatabase.dir/__/libs/database/imagehistory/imagehistorygraphmodel.cpp.o Linking CXX shared library ../../lib/libdigikamdatabase.so [ 54%] Built target digikamdatabase [ 54%] Built target advancedrename_automoc [ 58%] Built target advancedrename [ 58%] Built target cameragui_automoc [ 62%] Built target cameragui [ 62%] Built target queuemanager_automoc [ 67%] Built target queuemanager [ 67%] Built target digikam_automoc Linking CXX executable digikam [ 86%] Built target digikam [ 86%] Built target digikamnepomukservice_automoc Linking CXX shared module ../../lib/digikamnepomukservice.so [ 88%] Built target digikamnepomukservice [ 88%] Built target kio_digikamalbums_automoc Linking CXX shared module ../../lib/kio_digikamalbums.so [ 90%] Built target kio_digikamalbums [ 90%] Built target kio_digikamdates_automoc Linking CXX shared module ../../lib/kio_digikamdates.so [ 90%] Built target kio_digikamdates [ 90%] Built target kio_digikammapimages_automoc Linking CXX shared module ../../lib/kio_digikammapimages.so [ 90%] Built target kio_digikammapimages [ 90%] Built target kio_digikamsearch_automoc Linking CXX shared module ../../lib/kio_digikamsearch.so [ 90%] Built target kio_digikamsearch [ 90%] Built target kio_digikamtags_automoc Linking CXX shared module ../../lib/kio_digikamtags.so [ 90%] Built target kio_digikamtags [ 90%] Built target showfoto_automoc [ 90%] Built target showfoto [ 90%] Built target digikamimageplugin_color_automoc [ 92%] Built target digikamimageplugin_color [ 92%] Built target digikamimageplugin_decorate_automoc [ 92%] Built target digikamimageplugin_decorate [ 92%] Built target digikamimageplugin_enhance_automoc [ 94%] Built target digikamimageplugin_enhance [ 94%] Built target digikamimageplugin_fxfilters_automoc [ 96%] Built target digikamimageplugin_fxfilters [ 96%] Built target digikamimageplugin_transform_automoc [ 96%] Built target digikamimageplugin_transform [ 96%] Built target digikamdatabaseserver_automoc Linking CXX executable digikamdatabaseserver [ 96%] Built target digikamdatabaseserver [ 96%] Built target advancedrenametest_automoc Linking CXX executable advancedrenametest [ 96%] Built target advancedrenametest [ 96%] Built target cameranamehelpertest_automoc Linking CXX executable cameranamehelpertest [ 96%] Built target cameranamehelpertest [ 96%] Built target dimagefilteractiontest_automoc [ 96%] Built target dimagefilteractiontest [ 96%] Built target dimagehistorygraphtest_automoc Scanning dependencies of target dimagehistorygraphtest [ 96%] Building CXX object core/tests/CMakeFiles/dimagehistorygraphtest.dir/dimagehistorygraphtest.cpp.o Linking CXX executable dimagehistorygraphtest [ 96%] Built target dimagehistorygraphtest [ 96%] Built target dimagehistorytest_automoc [ 96%] Built target dimagehistorytest [ 96%] Built target filesaveoptionsboxtest_automoc [ 96%] Built target filesaveoptionsboxtest [ 96%] Built target freerotationtest_automoc [ 96%] Built target freerotationtest [ 96%] Built target loadpgfdata_automoc [ 96%] Built target loadpgfdata [ 96%] Built target pgfscaled_automoc [ 96%] Built target pgfscaled [ 96%] Built target qtpgftest_automoc [ 96%] Built target qtpgftest [ 96%] Built target searchtextbartest_automoc [ 98%] Built target searchtextbartest [ 98%] Built target statesavingobjecttest_automoc [100%] Built target statesavingobjecttest [100%] Built target uifilevalidatortest_automoc Linking CXX executable uifilevalidatortest [100%] Built target uifilevalidatortest The most important part is dimagehistorygraphtest program which unit test about versioning. It must compile fine on your computer with new boost 1.48 version. Gilles Caulier To nucleo Comment #27 since it builds with 1.46 i suspect the problem is in a line of the patch that report boost version, did you try to remove the "="? #if BOOST_VERSION > 104700 Edge(const boost::detail::reverse_graph_edge_descriptor<edge_t>& e) : e(e.underlying_desc), null(false) {} #endif I'm not sure but maybe boost::detail::reverse_graph_edge_descriptor is not in 1.47. btw, i'm testing a ugly patch that add all the changes for BOOST_VERSION > 104700 maybe you can try that one also (i will upload it as soon as i tested it). Created attachment 67481 [details]
adapted patch to work with old boost version
this patch should work with old boost version also, even if i suspect the solution
is just to remove the "=" in the BOOST_VERSION check
(In reply to comment #30) > Created an attachment (id=67481) [details] > adapted patch to work with old boost version > > this patch should work with old boost version also, even if i suspect the > solution > is just to remove the "=" in the BOOST_VERSION check Now builds successful with both boost 1.47 and 1.48. To Nucleo, And test program compile file with 1.47 and 1.48 as i explain in #28 ? Gilles Caulier I haven't had a chance to try this, but I think you should be able to get away with just the last hunk from the patch if you use toList rather than toEdgeList (and thus avoid any of the edge conversion stuff). Created attachment 67482 [details]
My proposed patch (not tested)
This is my proposed patch, which I'm not able to test. Please see if it works (it might need some minor tweaks).
A couple of other issues in that file -- the "stack" variable and "VertexInfo" type do not appear to be used anywhere, and the call to "boost::target" should be just "target" if you want the code to work on user-defined graphs. My patch does not fix either of these issues. Someone can check if patch from Jeremiah #67482 compile fine and if unit tests are passed using Boost 1.47 and 1.48 ? Thanks in advance Gilles Caulier Build against boost 1.48 completed with "-DKDE4_BUILD_TESTS=on" and patch from Comment #30. patch (as it is) from Comment #34 does not build with boost 1.48 (In reply to comment #38) > patch (as it is) from Comment #34 does not build with boost 1.48 Could I please get the error message from that failure? Sure: [ 88%] [ 89%] Building CXX object core/digikam/CMakeFiles/digikamdatabase.dir/__/libs/database/imagehistory/imagehistorygraph.cpp.o Building CXX object core/digikam/CMakeFiles/digikamdatabase.dir/__/libs/database/imagehistory/imagehistorygraphmodel.cpp.o In file included from /usr/include/QtCore/qlist.h:47:0, from /usr/include/QtCore/qvariant.h:47, from /usr/include/QtCore/qabstractitemmodel.h:45, from /usr/include/QtCore/QAbstractItemModel:1, from /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/build/core/digikam/../../../core/libs/database/imagehistory/imagehistorygraphmodel.h:29, from /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/build/core/digikam/imagehistorygraphmodel.moc:10, from /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraphmodel.cpp:24: /usr/include/QtCore/qalgorithms.h: In function ‘void QAlgorithmsPrivate::qSortHelper(RandomAccessIterator, RandomAccessIterator, const T&, LessThan) [with RandomAccessIterator = QList<boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> > >::iterator, T = boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >, LessThan = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >]’: /usr/include/QtCore/qalgorithms.h:187:9: instantiated from ‘void qSort(RandomAccessIterator, RandomAccessIterator, LessThan) [with RandomAccessIterator = QList<boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> > >::iterator, LessThan = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1415:13: instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depth_first_search_sorted(const IncidenceGraph&, Digikam::Graph<VertexProperties, EdgeProperties>::Vertex, DFSVisitor&, ColorMap, LessThan) [with IncidenceGraph = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, DFSVisitor = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::DepthFirstSearchVisitor, ColorMap = boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type> >, boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, long unsigned int>, boost::default_color_type, boost::default_color_type&>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1310:21: instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depthFirstSearchSorted(const GraphType&, const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, bool, LessThan) [with GraphType = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:994:9: instantiated from ‘QList<Digikam::Graph<VertexProperties, EdgeProperties>::Vertex> Digikam::Graph<VertexProperties, EdgeProperties>::verticesDepthFirstSorted(const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, LessThan) const [with LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraphmodel.cpp:333:121: instantiated from here /usr/include/QtCore/qalgorithms.h:351:5: error: no match for call to ‘(Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >) (boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&, boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&)’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1385:15: note: candidate is: /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: bool Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<GraphType, VertexLessThan>::operator()(const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&, const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&) [with GraphType = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, VertexLessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties] /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: no known conversion for argument 1 from ‘boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >’ to ‘const Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::Edge&’ /usr/include/QtCore/qalgorithms.h:187:9: instantiated from ‘void qSort(RandomAccessIterator, RandomAccessIterator, LessThan) [with RandomAccessIterator = QList<boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> > >::iterator, LessThan = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1415:13: instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depth_first_search_sorted(const IncidenceGraph&, Digikam::Graph<VertexProperties, EdgeProperties>::Vertex, DFSVisitor&, ColorMap, LessThan) [with IncidenceGraph = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, DFSVisitor = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::DepthFirstSearchVisitor, ColorMap = boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type> >, boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, long unsigned int>, boost::default_color_type, boost::default_color_type&>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1310:21: instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depthFirstSearchSorted(const GraphType&, const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, bool, LessThan) [with GraphType = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:994:9: instantiated from ‘QList<Digikam::Graph<VertexProperties, EdgeProperties>::Vertex> Digikam::Graph<VertexProperties, EdgeProperties>::verticesDepthFirstSorted(const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, LessThan) const [with LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraphmodel.cpp:333:121: instantiated from here /usr/include/QtCore/qalgorithms.h:356:5: error: no match for call to ‘(Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >) (boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&, boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&)’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1385:15: note: candidate is: /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: bool Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<GraphType, VertexLessThan>::operator()(const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&, const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&) [with GraphType = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, VertexLessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties] /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: no known conversion for argument 1 from ‘boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >’ to ‘const Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::Edge&’ /usr/include/QtCore/qalgorithms.h:358:5: error: no match for call to ‘(Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >) (boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&, boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&)’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1385:15: note: candidate is: /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: bool Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<GraphType, VertexLessThan>::operator()(const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&, const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&) [with GraphType = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, VertexLessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties] /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: no known conversion for argument 1 from ‘boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >’ to ‘const Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::Edge&’ /usr/include/QtCore/qalgorithms.h:187:9: instantiated from ‘void qSort(RandomAccessIterator, RandomAccessIterator, LessThan) [with RandomAccessIterator = QList<boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> > >::iterator, LessThan = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1415:13: instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depth_first_search_sorted(const IncidenceGraph&, Digikam::Graph<VertexProperties, EdgeProperties>::Vertex, DFSVisitor&, ColorMap, LessThan) [with IncidenceGraph = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, DFSVisitor = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::DepthFirstSearchVisitor, ColorMap = boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type> >, boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, long unsigned int>, boost::default_color_type, boost::default_color_type&>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1310:21: instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depthFirstSearchSorted(const GraphType&, const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, bool, LessThan) [with GraphType = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:994:9: instantiated from ‘QList<Digikam::Graph<VertexProperties, EdgeProperties>::Vertex> Digikam::Graph<VertexProperties, EdgeProperties>::verticesDepthFirstSorted(const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, LessThan) const [with LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraphmodel.cpp:333:121: instantiated from here /usr/include/QtCore/qalgorithms.h:366:9: error: no match for call to ‘(Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >) (boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&, boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&)’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1385:15: note: candidate is: /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: bool Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<GraphType, VertexLessThan>::operator()(const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&, const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&) [with GraphType = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, VertexLessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties] /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: no known conversion for argument 1 from ‘boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >’ to ‘const Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::Edge&’ /usr/include/QtCore/qalgorithms.h:187:9: instantiated from ‘void qSort(RandomAccessIterator, RandomAccessIterator, LessThan) [with RandomAccessIterator = QList<boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> > >::iterator, LessThan = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1415:13: instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depth_first_search_sorted(const IncidenceGraph&, Digikam::Graph<VertexProperties, EdgeProperties>::Vertex, DFSVisitor&, ColorMap, LessThan) [with IncidenceGraph = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, DFSVisitor = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::DepthFirstSearchVisitor, ColorMap = boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type> >, boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, long unsigned int>, boost::default_color_type, boost::default_color_type&>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1310:21: instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depthFirstSearchSorted(const GraphType&, const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, bool, LessThan) [with GraphType = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:994:9: instantiated from ‘QList<Digikam::Graph<VertexProperties, EdgeProperties>::Vertex> Digikam::Graph<VertexProperties, EdgeProperties>::verticesDepthFirstSorted(const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, LessThan) const [with LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraphmodel.cpp:333:121: instantiated from here /usr/include/QtCore/qalgorithms.h:369:9: error: no match for call to ‘(Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >) (boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&, boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&)’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1385:15: note: candidate is: /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: bool Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<GraphType, VertexLessThan>::operator()(const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&, const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&) [with GraphType = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, VertexLessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties] /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: no known conversion for argument 1 from ‘boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >’ to ‘const Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::Edge&’ /usr/include/QtCore/qalgorithms.h:187:9: instantiated from ‘void qSort(RandomAccessIterator, RandomAccessIterator, LessThan) [with RandomAccessIterator = QList<boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> > >::iterator, LessThan = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1415:13: instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depth_first_search_sorted(const IncidenceGraph&, Digikam::Graph<VertexProperties, EdgeProperties>::Vertex, DFSVisitor&, ColorMap, LessThan) [with IncidenceGraph = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, DFSVisitor = Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::DepthFirstSearchVisitor, ColorMap = boost::iterator_property_map<__gnu_cxx::__normal_iterator<boost::default_color_type*, std::vector<boost::default_color_type> >, boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, long unsigned int>, boost::default_color_type, boost::default_color_type&>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1310:21: instantiated from ‘void Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::depthFirstSearchSorted(const GraphType&, const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, bool, LessThan) [with GraphType = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:994:9: instantiated from ‘QList<Digikam::Graph<VertexProperties, EdgeProperties>::Vertex> Digikam::Graph<VertexProperties, EdgeProperties>::verticesDepthFirstSorted(const Digikam::Graph<VertexProperties, EdgeProperties>::Vertex&, LessThan) const [with LessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties]’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraphmodel.cpp:333:121: instantiated from here /usr/include/QtCore/qalgorithms.h:381:5: error: no match for call to ‘(Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)> >) (boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&, boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >&)’ /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1385:15: note: candidate is: /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: bool Digikam::Graph<VertexProperties, EdgeProperties>::GraphSearch::lessThanMapEdgeToTarget<GraphType, VertexLessThan>::operator()(const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&, const Digikam::Graph<VertexProperties, EdgeProperties>::Edge&) [with GraphType = boost::reverse_graph<boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>, const boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, int, boost::property<vertex_properties_t, Digikam::HistoryVertexProperties, boost::no_property> >, boost::property<edge_properties_t, Digikam::HistoryEdgeProperties, boost::no_property>, boost::no_property, boost::listS>&>, VertexLessThan = Digikam::LessThanOnVertexImageInfo<bool (*)(const Digikam::ImageInfo&, const Digikam::ImageInfo&)>, VertexProperties = Digikam::HistoryVertexProperties, EdgeProperties = Digikam::HistoryEdgeProperties] /home/anaselli/mageia/digikam/BUILD/digikam-2.5.0/core/libs/database/imagehistory/imagehistorygraph_boost.h:1392:18: note: no known conversion for argument 1 from ‘boost::detail::reverse_graph_edge_descriptor<boost::detail::edge_desc_impl<boost::bidirectional_tag, long unsigned int> >’ to ‘const Digikam::Graph<Digikam::HistoryVertexProperties, Digikam::HistoryEdgeProperties>::Edge&’ make[2]: *** [core/digikam/CMakeFiles/digikamdatabase.dir/__/libs/database/imagehistory/imagehistorygraphmodel.cpp.o] Errore 1 make[2]: *** Attesa dei processi non terminati.... make[1]: *** [core/digikam/CMakeFiles/digikamdatabase.dir/all] Errore 2 make: *** [all] Errore 2 Created attachment 67483 [details]
Attempted fix to my patch
Build successful with patch from Comment #22 with removed "=" both with boost 1.48 and 1.47 and with "-DKDE4_BUILD_TESTS=on". and patch at comment #41 builds using boost 1.48, nucleo can you test it using 1.47? Digiks build fine with patch from Comment #41 both for boost 1.47 and 1.48 and with "-DKDE4_BUILD_TESTS=on". Ok now Gilles we need to wait Marcel comment to push this patch. I tested also patch from comment #41 and it compile fine too with Boost 1.46. Gilles Caulier Marcel, Compiling digiKam core + unit test is not enough... I run test unit programm as well, and only 1 pass is fine per 3 pass of tests. This is true for all patches applied on my computer using Boost 1.46. This is also true with no patch and current implementation from git/master. Conclusion : there is something wrong in test unit code for all implementation of digiKam graph boost interface. Can you reproduce it ? Gilles Caulier Jeremiah's patch changes type definitions and no semantics, so I would not expect regressions and would accept the patch to be committed and thank Jeremiah and all that helped with this mess. Gilles: it really seems the unit tests are broken Git commit d18ea6da2d3e2359f4113e83c3fd40c18a29ddab by Gilles Caulier. Committed on 06/01/2012 at 11:23. Pushed by cgilles into branch 'master'. Apply patch #67483 from Jeremiah Willcock to compile fine digiKam boost graph interface with libboost 1.48 Related: bug 267777 M +10 -8 libs/database/imagehistory/imagehistorygraph_boost.h http://commits.kde.org/digikam/d18ea6da2d3e2359f4113e83c3fd40c18a29ddab Somebody in this room can check if bug 267777 can be closed now, using boost 1.47 and 1.48 ? Following my comment https://bugs.kde.org/show_bug.cgi?id=267777#c11 i cannot reproduce the dysfunction in image editor with patch applied and boost 1.46. Thanks in advance Gilles Caulier I don't know why, but it still fails for Kubuntu 11.10 and libboost 1.46.1 I've compiled and installed latest boost 1.48 from official site and still fails with error: Linking CXX executable raw2dng ../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const': /usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)' ../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<QString&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::unused_type const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<QString&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::unused_type const&) const': /usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)' ../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Project&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Project&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const': /usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)' ../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Stitcher&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Stitcher&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const': /usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)' ../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Image&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Image&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const': /usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)' ../../../lib/liblibpanorama.a(ptoparser.cpp.o):/usr/include/boost/function/function_template.hpp:757: more undefined references to `boost::throw_exception(std::exception const&)' follow collect2: ld returned 1 exit status make[2]: *** [lib/kipiplugin_panorama.so] Error 1 make[1]: *** [extra/kipi-plugins/panorama/CMakeFiles/kipiplugin_panorama.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 57%] Building CXX object core/digikam/CMakeFiles/digikamcore.dir/__/libs/dimg/filters/bcg/bcgfilter.cpp.o ../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const': /usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)' ../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<QString&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::unused_type const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<QString&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::unused_type const&) const': /usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)' ../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Project&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Project&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const': /usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)' ../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Stitcher&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Stitcher&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const': /usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)' ../../../lib/liblibpanorama.a(ptoparser.cpp.o): In function `boost::function4<bool, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Image&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&>::operator()(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::spirit::context<boost::fusion::cons<KIPIPanoramaPlugin::PTOType::Image&, boost::fusion::nil>, boost::fusion::vector0<void> >&, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::blank, boost::spirit::char_encoding::ascii> > const&) const': /usr/include/boost/function/function_template.hpp:757: undefined reference to `boost::throw_exception(std::exception const&)' ../../../lib/liblibpanorama.a(ptoparser.cpp.o):/usr/include/boost/function/function_template.hpp:757: more undefined references to `boost::throw_exception(std::exception const&)' follow collect2: ld returned 1 exit status make[2]: *** [extra/kipi-plugins/panorama/panoramagui] Error 1 make[1]: *** [extra/kipi-plugins/panorama/CMakeFiles/panoramagui.dir/all] Error 2 but i can't reproduce it on my Archlinux with 1.48... (In reply to comment #51) > I don't know why, but it still fails for Kubuntu 11.10 and libboost 1.46.1 > > I've compiled and installed latest boost 1.48 from official site and still > fails with error: > > [CMake output] > > but i can't reproduce it on my Archlinux with 1.48... This is another error that I introduced (not by purpose) yesterday. I pushed a patch in the git that may solve your compilation error (I suspect that BOOST_NO_EXCEPTIONS is set on ubuntu and not set on arch). how to disable BOOST_NO_EXCEPTION ? Because I can't compile even with boost 1.47 :( It's ok to throw exceptions? That is not so(In reply to comment #53) > how to disable BOOST_NO_EXCEPTION ? > > Because I can't compile even with boost 1.47 :( This is not something the user should worry about. Have tried with the most recent code (commit 9af480dc981ede33dcd43273c20f939cd4390944)? I fixed a compilation error for Boost 1.44 that was very similar to your error. > It's ok to throw exceptions? Don't worry about that, no exception should be thrown (at least in my code), otherwise that would mean there is a bug (meaning that it is not the expected behavior). After your previous post i git pulled all. But it still fails on my laptop with boost 1.47 Now I compile digikam un my desktop with boost 1.48 and i'll tell you the result. Both desktop and laptop have the same virtual machine with kubuntu. Now it compiles just fine on my both machines, with boost 1.47 and 1.48. I'll do a extra clean build.. just in case.. But i want to ask.. whats with this crazy memory usage when building some boost components? It almost goes to 600mb for each thread, that means it goes over 2 giga when I compile with 4 threads... That's the drawback of C++ templates. Because those are made to be used with different types, no library cannot be compiled, thus the whole code is compiled each time a piece of code uses the template with a different type. If the code is pretty large it leads to a rather big memory usage and compile time. I tried to keep it to a minimum, but it is still quite big. |