I have a linux distro where the plug-in fails to build, it can not find the boost system library, I think, because it claims the needed symbols out of that library are not found.
Initially I was suspecting the cause that (when looking into the makeflie) :
libNassiShneiderman_la_LIBADD = ../../../sdk/libcodeblocks.la $(WX_LIBS) $(BOOST_SYSTEM_LIB)
that $(BOOST_SYSTEM_LIB) was empty/not defined and assuming it was not on succeeding builds.
Next I checked another linux distro where it does build, too my surprise there also $(BOOST_SYSTEM_LIB) was empty/not defined.
Anyone else having similar problems ?
this is the build error:
make[4]: Entering directory '/home/ldco/Codeblocks/trunk/src/plugins/contrib/NassiShneiderman'
/bin/sh ../../../../libtool --tag=CXX --mode=link g++ -O2 -ffast-math -Winvalid-pch -fPIC -fexceptions -module -shared -version-info 0:1:0 -no-undefined -avoid-version -L/usr/lib64 -Wl,--no-undefined -o libNassiShneiderman.la -rpath /usr/local/lib64/codeblocks/plugins bricks.lo cbEditorPanel.lo commands.lo CParser.lo DataObject.lo FileContent.lo GraphBricks.lo GraphFabric.lo HooverDrawlet.lo InsertBrickTask.lo logger.lo NassiDiagramWindow.lo NassiDropTarget.lo NassiEditorPanel.lo NassiFileContent.lo NassiPlugin.lo NassiView.lo parseactions.lo PasteTask.lo RedHatchDrawlet.lo RedLineDrawlet.lo Task.lo TextCtrl.lo TextCtrlTask.lo TextGraph.lo ../../../sdk/libcodeblocks.la -L/usr/lib64 -pthread -lwx_gtk2u_aui-3.0 -lwx_gtk2u_propgrid-3.0 -lwx_gtk2u_richtext-3.0 -lwx_gtk2u_xrc-3.0 -lwx_gtk2u_html-3.0 -lwx_gtk2u_qa-3.0 -lwx_gtk2u_adv-3.0 -lwx_gtk2u_core-3.0 -lwx_baseu_xml-3.0 -lwx_baseu_net-3.0 -lwx_baseu-3.0 /usr/lib64/libboost_system.so.1.65.1 -lpthread -ldl
libtool: link: g++ -fPIC -DPIC -shared -nostdlib /usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-suse-linux/7/crtbeginS.o .libs/bricks.o .libs/cbEditorPanel.o .libs/commands.o .libs/CParser.o .libs/DataObject.o .libs/FileContent.o .libs/GraphBricks.o .libs/GraphFabric.o .libs/HooverDrawlet.o .libs/InsertBrickTask.o .libs/logger.o .libs/NassiDiagramWindow.o .libs/NassiDropTarget.o .libs/NassiEditorPanel.o .libs/NassiFileContent.o .libs/NassiPlugin.o .libs/NassiView.o .libs/parseactions.o .libs/PasteTask.o .libs/RedHatchDrawlet.o .libs/RedLineDrawlet.o .libs/Task.o .libs/TextCtrl.o .libs/TextCtrlTask.o .libs/TextGraph.o -Wl,-rpath -Wl,/home/ldco/Codeblocks/trunk/src/sdk/.libs -L/usr/lib64 ../../../sdk/.libs/libcodeblocks.so -lglib-2.0 -lwx_gtk2u_aui-3.0 -lwx_gtk2u_propgrid-3.0 -lwx_gtk2u_richtext-3.0 -lwx_gtk2u_xrc-3.0 -lwx_gtk2u_html-3.0 -lwx_gtk2u_qa-3.0 -lwx_gtk2u_adv-3.0 -lwx_gtk2u_core-3.0 -lwx_baseu_xml-3.0 -lwx_baseu_net-3.0 -lwx_baseu-3.0 -lpthread -ldl -L/usr/lib64/gcc/x86_64-suse-linux/7 -L/usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/lib -L/usr/lib64/gcc/x86_64-suse-linux/7/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib64/gcc/x86_64-suse-linux/7/crtfastmath.o /usr/lib64/gcc/x86_64-suse-linux/7/crtendS.o /usr/lib64/gcc/x86_64-suse-linux/7/../../../../lib64/crtn.o -O2 -Wl,--no-undefined -pthread -pthread -Wl,-soname -Wl,libNassiShneiderman.so -o .libs/libNassiShneiderman.so
.libs/CParser.o: In function `boost::system::error_category::std_category::equivalent(std::error_code const&, int) const':
CParser.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei[_ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei]+0x34): undefined reference to `boost::system::generic_category()'
CParser.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei[_ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei]+0xb1): undefined reference to `boost::system::generic_category()'
CParser.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei[_ZNK5boost6system14error_category12std_category10equivalentERKSt10error_codei]+0xf1): undefined reference to `boost::system::generic_category()'
.libs/CParser.o: In function `boost::system::error_category::std_category::equivalent(int, std::error_condition const&) const':
CParser.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition[_ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition]+0x2f): undefined reference to `boost::system::generic_category()'
CParser.cpp:(.text._ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition[_ZNK5boost6system14error_category12std_category10equivalentEiRKSt15error_condition]+0xc1): undefined reference to `boost::system::generic_category()'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:616: libNassiShneiderman.la] Error 1
As far as I could see no sign of boost system library in the link command (and neither on my working linux boxes)
boost: .165
ax_boost_vase.m4 : yes
Though that one is not mentioned when running bootstrap
Using 'svn --xml info' to get the revision
Found revision: '11222' '2017-10-31 07:56:18'
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
configure.ac:24: installing './compile'
configure.ac:20: installing './missing'
src/base/tinyxml/Makefile.am: installing './depcomp'
Note that this file is doing stuff and will set BOOST_CPPFLAGS and BOOST_LDFLAGS, it does however do nothing with/for BOOST_SYSTEM_LIB.
During configure we can see passing by : checking for boostlib >= 1.20.0... yes
Modified configure.ac, bootstrap and configure:
CFLAGS: -O2 -ffast-math -fPIC -std=c90
CXXFLAGS: -O2 -ffast-math -Winvalid-pch -fPIC -fexceptions
CPPFLAGS: -DCB_AUTOCONF -DCB_PRECOMP -DPIC -I$(top_srcdir)/src/include/tinyxml -DTIXML_USE_STL=YES
LDFLAGS: -Wl,--no-undefined
CXX: g++
CC: gcc
BOOST_CPPFLAGS: -I/usr/include
BOOST_LDFLAGS: -L/usr/lib64
BOOST_SYSTEM_LIB:
Why confirms my finding this BOOST_SYSTEM_LIB is nowhere set, i think no build script whatsoever even tries to tinf out what it should be.
So I tend the conclude the build scripts have always been incorrect, and we were just lukcy that untill boost 1.65 it seems we did not need to linnk with that library.