On 2015-04-18 22:56+0100 Andrew Ross wrote: > > Alan, > > I've finally got time to rerun my comnprehensive tests with Ubuntu 14.10 > and try to debug the niggle issues I encountered with the static build > > (My only change from last time is that I've had to build cmake from source > to get a new enough version - I'm using 3.2.2) [...] > 2) The code in src/CMakeFiles to find the stdc++ library doesn't work for > me. The comments suggest that g++ returns a semicolon delimited list of > paths, which is just like a cmake list so no manipulation is needed. At > least on my system it is actually colon separated. Replacing the colons > with semicolons fixes the problem and ensures the correct linkage options > for pkg-config, and hence the traditional examples build. I've not > commited this fix, since it might upset other people. In particularly on > windows the colon may be used for drive letters? Can others check > what g++ returns to check that a simple replacement of colons with > semicolons wouldn't break anything? Try g++ --verbose --version and look > at what LIBRARY_PATH is set to.
The problem is that libplplot is a mixed C and C++ library for the nondynamic or static case (because of including C++ drivers code in the library for those cases). Therefore, for the traditional build system for the installed examples, when gcc is used to link a C example a specific link to libstdc++.so has to be provided. The code in src/CMakeLists.txt to find that library is really ugly, works only for g++ and no other C++ compiler, and depends on g++ internals which apparently have now changed. And colon separation when there are drive letters is a real pain to deal with. So I plan to abandon that code completely and simply solve the problem in a general way for the static and nondyamic cases by using the CXX compiler (which automatically links in libstdc++.so) for building the C examples using the traditional build system. Implementation to follow.... > 3) I also get the following errors > > /usr/bin/ld: > /home/andrew/software/plplot/comprehensive_test_disposeable/static/install_tree/lib/libplplot.a(wxwidgets_comms.cpp.o): > undefined reference to symbol 'shm_unlink@@GLIBC_2.2.5' > /lib/x86_64-linux-gnu/librt.so.1: error adding symbols: DSO missing from > command line > collect2: error: ld returned 1 exit status > Makefile:103: recipe for target 'x00c' failed > make[1]: *** [x00c] Error 1 > > which I think are probably due to librt not being linked explicitly? Alan > - I'm not quite sure where this needs fixing. Can you reproduce this on > Debian? I cannot reproduce that issue (my comprehensive tests sailed through without issues for Debian stable). There was an attempt to fix the rt issues prior to the 5.11.0 release, but it sounds like we missed something that matters on at least Ubuntu. Here is where to look in our current source code for such fixes. software@raven> find . -type f |grep -v .git |grep -v ChangeLog |xargs grep RT_LIB ./drivers/CMakeLists.txt: ${RT_LIB} ./src/CMakeLists.txt: list(APPEND libplplot_LINK_LIBRARIES ${RT_LIB}) ./cmake/modules/wxwidgets.cmake: # So only define RT_LIB for the Unix but not Mac case. ./cmake/modules/wxwidgets.cmake: find_library(RT_LIB rt) ./cmake/modules/wxwidgets.cmake: if(RT_LIB) ./cmake/modules/wxwidgets.cmake: message(STATUS "RT_LIB = ${RT_LIB}") ./cmake/modules/wxwidgets.cmake: else(RT_LIB) ./cmake/modules/wxwidgets.cmake: set(RT_LIB) ./cmake/modules/wxwidgets.cmake: endif(RT_LIB) ./cmake/modules/wxwidgets.cmake: set(RT_LIB) ./utils/CMakeLists.txt: target_link_libraries(wxPLViewer plplotwxwidgets plplotcxx ${wxwidgets_LINK_FLAGS} ${MATH_LIB} ${RT_LIB}) If that message result from cmake shows you are finding the rt library on Ubuntu without issues, then for the static case the code in src/CMakeListx.txt is what you should look at to see why that rt library is not being included properly when building libplplot (which contains the wxwidgets code which refers to rt symbols). Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ ------------------------------------------------------------------------------ BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel