Bug#835416: imagevis3d: FTBFS: singleton.hpp:131: undefined reference to `boost::serialization::singleton_module::is_locked()'
Control: tags -1 patch Hi Maintainer The attached patch links libboost_serialization, as suggested by Tom Fogal, and fixes the FTBFS with Boost 1.61. I also found the build dependency on libboost-all-dev can be replaced by libboost-serialization-dev, as follows: --- a/debian/control +++ b/debian/contro @@ -9,7 +9,7 @@ debhelper (>= 9), flex, g++ (>= 4:4.6), - libboost-all-dev, + libboost-serialization-dev, libbz2-dev, libglew-dev, libjpeg-dev, Regards Graham boost_serialization.patch Description: application/empty
Bug#835416: imagevis3d: FTBFS: singleton.hpp:131: undefined reference to `boost::serialization::singleton_module::is_locked()'
Hi, thanks for looking into this. On 09/20/2016 02:45 AM, peter green wrote: >> 1. It's failing in the doc/genlua stuff, which is an internal tool meant >> to generate documentation that is currently unfinished. Arguably it >> should be removed from source releases anyway. So a simple fix is for >> debian to just remove this directory from SUBDIRS in TuvokSubdirs.pro. > > I don't see a file called TuvokSubdirs.pro , I guess you mean > Tuvok/Tuvok.pro ? Ahh, this must just be an older version, mea culpa. Yeah, IIRC it would be there. > Anyway I removed doc/genlua from SUBDIRS in Tuvok/Tuvok.pro and tried a > build in raspbian stretch. > > Unfortunately it failed with > > g++ -fopenmp -Wl,-z,relro -o ../Build/ImageVis3D [snip] > ../Tuvok/Build/libTuvok.a(SysTools.o): In function > `SysTools::GetTempDirectory(std::__cxx11::basic_stringstd::char_traits, std::allocator >&)': > ./Tuvok/Basics/SysTools.cpp:1060: warning: the use of `tmpnam' is > dangerous, better use `mkstemp' > ../Build/objects/ImageVis3D_WindowHandling.o: In function > `boost::serialization::singleton::get_mutable_instance()': > /usr/include/boost/serialization/singleton.hpp:131: undefined reference > to `boost::serialization::singleton_module::is_locked()' Yes, this is the same issue that was causing 'genlua' to fail; looks like simply removing that code wasn't a great workaround. Sorry. I dug a bit deeper, by downloading boost 1.61 and verifying that, indeed, the singleton.hpp included there is NOT a header-only library, yet the one included in Tuvok's 3rdParty directory IS a header-only library. Looking closer at the build log, I note that it is missing many of the -I options that upstream has. Notably in this case: -IIO/3rdParty/boost. This in turn causes it to use the system copy of boost, which has changed behavior to require a new link option. I can think of a number of solutions: * build-dep require a similar version of boost on the system. I can confirm 1.58 is fine. Note that the runtime is irrelevant since IV3D restricts itself to header-only parts of boost. * don't hack out the -I flags from upstream so that IV3D uses its internal copy of boost. * edit the .pro files to force this to link against libboost_serialization.so.
Bug#835416: imagevis3d: FTBFS: singleton.hpp:131: undefined reference to `boost::serialization::singleton_module::is_locked()'
1. It's failing in the doc/genlua stuff, which is an internal tool meant to generate documentation that is currently unfinished. Arguably it should be removed from source releases anyway. So a simple fix is for debian to just remove this directory from SUBDIRS in TuvokSubdirs.pro. I don't see a file called TuvokSubdirs.pro , I guess you mean Tuvok/Tuvok.pro ? Anyway I removed doc/genlua from SUBDIRS in Tuvok/Tuvok.pro and tried a build in raspbian stretch. Unfortunately it failed with g++ -fopenmp -Wl,-z,relro -o ../Build/ImageVis3D ../Build/objects/BrowseData.o ../Build/objects/ImageVis3D.o ../Build/objects/ImageVis3D_Capturing.o ../Build/objects/ImageVis3D_Progress.o ../Build/objects/ImageVis3D_1DTransferFunction.o ../Build/objects/ImageVis3D_2DTransferFunction.o ../Build/objects/ImageVis3D_FileHandling.o ../Build/objects/ImageVis3D_WindowHandling.o ../Build/objects/ImageVis3D_DebugWindow.o ../Build/objects/ImageVis3D_Settings.o ../Build/objects/ImageVis3D_Locking.o ../Build/objects/ImageVis3D_Stereo.o ../Build/objects/ImageVis3D_Help.o ../Build/objects/ImageVis3D_I3M.o ../Build/objects/PleaseWait.o ../Build/objects/Welcome.o ../Build/objects/MDIRenderWin.o ../Build/objects/MetadataDlg.o ../Build/objects/AboutDlg.o ../Build/objects/URLDlg.o ../Build/objects/FTPDialog.o ../Build/objects/BugRepDlg.o ../Build/objects/LODDlg.o ../Build/objects/QTransferFunction.o ../Build/objects/Q1DTransferFunction.o ../Build/objects/Q2DTransferFunction.o ../Build/objects/QDataRadioButton.o ../Build/objects/QLightPreview.o ../Build/objects/RenderWindowGL.o ../Build/objects/RenderWindow.o ../Build/objects/BasicSettingsDlg.o ../Build/objects/SettingsDlg.o ../Build/objects/RAWDialog.o ../Build/objects/MIPRotDialog.o ../Build/objects/MergeDlg.o ../Build/objects/CrashDetDlg.o ../Build/objects/ScaleAndBiasDlg.o ../Build/objects/QTOut.o ../Build/objects/QTLabelOut.o ../Build/objects/DialogConverter.o ../Build/objects/main.o ../Build/objects/DebugScriptWindow.o ../Build/objects/moc_SettingsDlg.o ../Build/objects/moc_BasicSettingsDlg.o ../Build/objects/moc_BrowseData.o ../Build/objects/moc_ImageVis3D.o ../Build/objects/moc_PleaseWait.o ../Build/objects/moc_FTPDialog.o ../Build/objects/moc_QTransferFunction.o ../Build/objects/moc_Q1DTransferFunction.o ../Build/objects/moc_Q2DTransferFunction.o ../Build/objects/moc_QLightPreview.o ../Build/objects/moc_RenderWindowGL.o ../Build/objects/moc_RAWDialog.o ../Build/objects/moc_MIPRotDialog.o ../Build/objects/moc_Welcome.o ../Build/objects/moc_MetadataDlg.o ../Build/objects/moc_AboutDlg.o ../Build/objects/moc_URLDlg.o ../Build/objects/moc_BugRepDlg.o ../Build/objects/moc_LODDlg.o ../Build/objects/moc_MergeDlg.o ../Build/objects/moc_CrashDetDlg.o ../Build/objects/moc_ScaleAndBiasDlg.o ../Build/objects/moc_DebugScriptWindow.o ../Build/objects/qrc_ImageVis3D.o-L../Tuvok/Build -L../Tuvok/IO/expressions -L/usr/lib/arm-linux-gnueabihf -L/usr/X11R6/lib -lTuvok -ltuvokexpr -lz -llua5.2 -lGLEW -ltiff -lbz2 -fopenmp -llz4 -lGLU -lQtOpenGL -lQtGui -lQtNetwork -lQtCore -lGL -lpthread ../Tuvok/Build/libTuvok.a(SysTools.o): In function `SysTools::GetTempDirectory(std::__cxx11::basic_string&)': ./Tuvok/Basics/SysTools.cpp:1060: warning: the use of `tmpnam' is dangerous, better use `mkstemp' ../Build/objects/ImageVis3D_WindowHandling.o: In function `boost::serialization::singleton::get_mutable_instance()': /usr/include/boost/serialization/singleton.hpp:131: undefined reference to `boost::serialization::singleton_module::is_locked()' /usr/include/boost/serialization/singleton.hpp:131: undefined reference to `boost::serialization::singleton_module::is_locked()' /usr/include/boost/serialization/singleton.hpp:131: undefined reference to `boost::serialization::singleton_module::is_locked()' /usr/include/boost/serialization/singleton.hpp:131: undefined reference to `boost::serialization::singleton_module::is_locked()' /usr/include/boost/serialization/singleton.hpp:131: undefined reference to `boost::serialization::singleton_module::is_locked()' ../Build/objects/ImageVis3D_WindowHandling.o:/usr/include/boost/serialization/singleton.hpp:131: more undefined references to `boost::serialization::singleton_module::is_locked()' follow collect2: error: ld returned 1 exit status Makefile:233: recipe for target '../Build/ImageVis3D' failed make[2]: *** [../Build/ImageVis3D] Error 1 make[2]: Leaving directory '/imagevis3d-3.1.0/ImageVis3D' Makefile:80: recipe for target 'sub-ImageVis3D-make_default-ordered' failed make[1]: *** [sub-ImageVis3D-make_default-ordered] Error 2 make[1]: Leaving directory '/imagevis3d-3.1.0' dh_auto_build: make -j4 returned exit code 2 debian/rules:5: recipe for target 'build' failed make: *** [build] Error 25 dpkg-buildpackage: error: debian/rules build gave error exit status 2
Bug#835416: imagevis3d: FTBFS: singleton.hpp:131: undefined reference to `boost::serialization::singleton_module::is_locked()'
Hi, I have a couple ideas as to what's going wrong / how to fix this. 1. It's failing in the doc/genlua stuff, which is an internal tool meant to generate documentation that is currently unfinished. Arguably it should be removed from source releases anyway. So a simple fix is for debian to just remove this directory from SUBDIRS in TuvokSubdirs.pro. 2. There is an internal copy of this aspect of boost, but for some reason the system's boost is the one getting picked up. Worse, it seems the system version actually changes behavior of the library, notably from header-only to be an actual library that needs to be linked against. Boost probably has a define that one can set that forces header-only behavior. If someone wants to look into that, I'd be happy to add an appropriate #define upstream. On 08/25/2016 06:01 AM, Chris Lamb wrote: > ar cqs libTuvok.a Build/objects/Appendix.o Build/objects/ArcBall.o [snip] > rm -f Build/libTuvok.a > mv -f libTuvok.a Build/ > make[3]: Leaving directory > '/home/lamby/temp/cdt.20160825134948.1It773RQbs.db.imagevis3d/imagevis3d-3.1.0/Tuvok' > cd doc/genlua/ && make -f Makefile > make[3]: Entering directory > '/home/lamby/temp/cdt.20160825134948.1It773RQbs.db.imagevis3d/imagevis3d-3.1.0/Tuvok/doc/genlua' > g++ -c -fopenmp -DPACKAGE_MANAGER -g -O2 > -fdebug-prefix-map=/home/lamby/temp/cdt.20160825134948.1It773RQbs.db.imagevis3d/imagevis3d-3.1.0=. > -fstack-protector-strong -Wformat -Werror=format-security > -Wno-unknown-pragmas -std=c++0x -fno-strict-aliasing -g -O2 > -fdebug-prefix-map=/home/lamby/temp/cdt.20160825134948.1It773RQbs.db.imagevis3d/imagevis3d-3.1.0=. > -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time > -D_FORTIFY_SOURCE=2 -Wall -W -D_REENTRANT -DQT_OPENGL_LIB -DQT_GUI_LIB > -DQT_CORE_LIB -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE > -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore > -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4 > -I../.. -I/usr/include/lua5.2 -I/usr/X11R6/include -I. -o main.o main.cpp > g++ -m64 -fopenmp -Wl,-z,relro -o bluebook main.o-L../../Build > -L../../IO/expressions -L/usr/lib/x86_64-linux-gnu -L/usr/X11R6/lib64 -lTuvok > -ltuvokexpr -lz -llua5.2 -lGLEW -ltiff -lbz2 -llzma -llz4 -lGLU -lGL > -lQtOpenGL -lQtGui -lQtCore -lGL -lpthread > ../../Build/libTuvok.a(SysTools.o): In function > `SysTools::GetTempDirectory(std::__cxx11::basic_stringstd::char_traits, std::allocator >&)': > ./Tuvok/Basics/SysTools.cpp:1060: warning: the use of `tmpnam' is > dangerous, better use `mkstemp' > ../../Build/libTuvok.a(LinesGeoConverter.o): In function > `boost::serialization::singleton::get_mutable_instance()': > /usr/include/boost/serialization/singleton.hpp:131: undefined reference to > `boost::serialization::singleton_module::is_locked()' > /usr/include/boost/serialization/singleton.hpp:131: undefined reference to > `boost::serialization::singleton_module::is_locked()' > /usr/include/boost/serialization/singleton.hpp:131: undefined reference to > `boost::serialization::singleton_module::is_locked()' > /usr/include/boost/serialization/singleton.hpp:131: undefined reference to > `boost::serialization::singleton_module::is_locked()' > /usr/include/boost/serialization/singleton.hpp:131: undefined reference to > `boost::serialization::singleton_module::is_locked()' > > ../../Build/libTuvok.a(PLYGeoConverter.o):/usr/include/boost/serialization/singleton.hpp:131: > more undefined references to > `boost::serialization::singleton_module::is_locked()' follow > collect2: error: ld returned 1 exit status > Makefile:99: recipe for target 'bluebook' failed > make[3]: *** [bluebook] Error 1 > make[3]: Leaving directory > '/home/lamby/temp/cdt.20160825134948.1It773RQbs.db.imagevis3d/imagevis3d-3.1.0/Tuvok/doc/genlua' > Makefile:111: recipe for target 'sub-doc-genlua-make_default-ordered' failed > make[2]: *** [sub-doc-genlua-make_default-ordered] Error 2 > make[2]: Leaving directory > '/home/lamby/temp/cdt.20160825134948.1It773RQbs.db.imagevis3d/imagevis3d-3.1.0/Tuvok' > Makefile:44: recipe for target 'sub-Tuvok-make_default-ordered' failed > make[1]: *** [sub-Tuvok-make_default-ordered] Error 2 > make[1]: Leaving directory > '/home/lamby/temp/cdt.20160825134948.1It773RQbs.db.imagevis3d/imagevis3d-3.1.0' > dh_auto_build: make -j9 returned exit code 2 > debian/rules:5: recipe for target 'build' failed > make: *** [build] Error 25
Bug#835416: imagevis3d: FTBFS: singleton.hpp:131: undefined reference to `boost::serialization::singleton_module::is_locked()'
Source: imagevis3d Version: 3.1.0-4 Severity: serious Justification: fails to build from source User: reproducible-bui...@lists.alioth.debian.org Usertags: ftbfs X-Debbugs-Cc: reproducible-bui...@lists.alioth.debian.org Dear Maintainer, imagevis3d fails to build from source in unstable/amd64: [..] IO/IOManager.h:272:8: warning: 'template class std::auto_ptr' is deprecated [-Wdeprecated-declarations] std::auto_ptr m_dsFactory; ^~~~ In file included from /usr/include/c++/6/bits/locale_conv.h:41:0, from /usr/include/c++/6/locale:43, from /usr/include/c++/6/iomanip:43, from ./Basics/Vectors.h:73, from IO/AbstrConverter.h:46, from IO/RAWConverter.h:46, from IO/TiffVolumeConverter.h:43, from IO/TiffVolumeConverter.cpp:41: /usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here template class auto_ptr; ^~~~ g++ -c -fopenmp -DPACKAGE_MANAGER -g -O2 -fdebug-prefix-map=/home/lamby/temp/cdt.20160825134948.1It773RQbs.db.imagevis3d/imagevis3d-3.1.0=. -fstack-protector-strong -Wformat -Werror=format-security -std=c++0x -fno-strict-aliasing -fopenmp -g -O2 -fdebug-prefix-map=/home/lamby/temp/cdt.20160825134948.1It773RQbs.db.imagevis3d/imagevis3d-3.1.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -D_REENTRANT -Wall -W -DLZHAM_ANSI_CPLUSPLUS=1 -D_7ZIP_ST=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4 -I. -IIO/3rdParty/lzham -I/usr/include/lzma -IBasics -IIO/exception -I/usr/include/lua5.2 -I/usr/X11R6/include -I. -o Build/objects/TTIFFWriter.o IO/TTIFFWriter/TTIFFWriter.cpp IO/Quantize.h:233:19: warning: 'bool {anonymous}::Fits::inXBits(T) [with T = unsigned char; long unsigned int sz = 4096ul]' defined but not used [-Wunused-function] template<> bool inXBits(uint8_t) { return true; } ^~ IO/Quantize.h:231:19: warning: 'bool {anonymous}::Fits::inXBits(T) [with T = signed char; long unsigned int sz = 4096ul]' defined but not used [-Wunused-function] template<> bool inXBits (int8_t) { return true; } ^ IO/Quantize.h:230:19: warning: 'bool {anonymous}::Fits::inXBits(T) [with T = signed char; long unsigned int sz = 256ul]' defined but not used [-Wunused-function] template<> bool inXBits (int8_t) { return true; } ^~~~ In file included from IO/Quantize.h:41:0, from IO/RAWConverter.cpp:57: ./Basics/ctti.h:138:17: warning: '{anonymous}::signed_type {anonymous}::type_category(signed char)' defined but not used [-Wunused-function] signed_type type_category(signed char){ return signed_type(); } ^ g++ -c -fopenmp -DPACKAGE_MANAGER -g -O2 -fdebug-prefix-map=/home/lamby/temp/cdt.20160825134948.1It773RQbs.db.imagevis3d/imagevis3d-3.1.0=. -fstack-protector-strong -Wformat -Werror=format-security -std=c++0x -fno-strict-aliasing -fopenmp -g -O2 -fdebug-prefix-map=/home/lamby/temp/cdt.20160825134948.1It773RQbs.db.imagevis3d/imagevis3d-3.1.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -D_REENTRANT -Wall -W -DLZHAM_ANSI_CPLUSPLUS=1 -D_7ZIP_ST=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4 -I. -IIO/3rdParty/lzham -I/usr/include/lzma -IBasics -IIO/exception -I/usr/include/lua5.2 -I/usr/X11R6/include -I. -o Build/objects/TuvokJPEG.o IO/TuvokJPEG.cpp g++ -c -fopenmp -DPACKAGE_MANAGER -g -O2 -fdebug-prefix-map=/home/lamby/temp/cdt.20160825134948.1It773RQbs.db.imagevis3d/imagevis3d-3.1.0=. -fstack-protector-strong -Wformat -Werror=format-security -std=c++0x -fno-strict-aliasing -fopenmp -g -O2 -fdebug-prefix-map=/home/lamby/temp/cdt.20160825134948.1It773RQbs.db.imagevis3d/imagevis3d-3.1.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -D_REENTRANT -Wall -W -DLZHAM_ANSI_CPLUSPLUS=1 -D_7ZIP_ST=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4 -I. -IIO/3rdParty/lzham -I/usr/include/lzma -IBasics -IIO/exception