On 2015-07-06 10:43-0700 Alan W. Irwin wrote: > On 2015-07-06 16:11-0000 Arjen Markus wrote: > >> Alas, the error I reported persists, even now that /usr/local plays > no role anymore in the build. See the attached tarball. > > Hi Arjen: > > I was happy to see that the Cygwin itk fix I implemented a while back > actually works for you and that all the /usr/local stuff is no longer > contaminating the result in your report. Your elimination of the > possibility of such contamination will be a big help in finding the > source of the remaining issue you are reporting. > > With regard to that issue, I still think it is some visibility problem > since the code that defines the missing symbol should be part of > the PLplot library for the nondynamic case. So could you check both > the definition and visibility of that missing symbol in the PLplot > library for the nondynamic case using the nm method I suggested > before? i.e., > > # change directory to the nondynamic build tree > cd nondynamic/build_tree/ > > # Check for symbol definition in PLplot library > nm --defined-only <plplot library location> |grep plplotLibDir > > # Check for symbol visibility in PLplot library > nm --defined-only --extern-only <plplot library location> |grep plplotLibDir > > Thanks in advance.
Hi Arjen: I followed up by doing my own comprehensive test on Linux, and I cannot replicate what I anticipate will be your report of visibility issues from the experiments above. For example, for the nondynamic case I get software@raven> nm --defined-only --extern-only src/libplplot.so |grep plplotLibDir 00000000002cdd10 B plplotLibDir i.e., plplotLibDir is both defined and visible in the PLplot library built on the Linux platform for the nondynamic case. However, I then looked further at where plplotLibDir was defined, and I found the following line that does that in bindings/tcl/tclAPI.c extern PLDLLIMPORT char * plplotLibDir; But that is a non-standard use of PLDLLIMPORT. In fact, the only other place I can find it in our code base (other than in include/pldll.h.in) is in software@raven> find . -type f |grep -v .git |xargs grep PLDLLIMPORT |grep -v pldll.h ./bindings/tcl/tclAPI.c:extern PLDLLIMPORT char * plplotLibDir; ./include/plplotP.h:// extern PLStream PLDLLIMPORT *plsc; and in that latter case that commented out code was replaced by extern PLDLLIMPEXP_DATA( PLStream * ) plsc; The net result of this is I am positive that for best visibility results on all platforms extern PLDLLIMPORT char * plplotLibDir; should be replaced by extern PLDLLIMPEXP_TCLTK_DATA( char * ) plplotLibDir; I have done that change (as of commit ae0e9da) and comprehensively tested it on Linux with no visibility issues showing up for those tests. So please try running scripts/comprehensive_test.sh again to see if ae0e9da solves this final noninteractive issue completely for Cygwin (which would be a new high in Cygwin comprehensive testing). 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 __________________________ ------------------------------------------------------------------------------ Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel