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

Reply via email to