On 2008-09-10 08:47+0200 Arjen Markus wrote:

> Hi Alan, Andrew,
>
> what may be hidden because of all the #ifdefs is that for the 
> Windows/MSVC/(I|C)VF
> case we do use the PLDLLEXPIMP macro, so the visibility issue _is_ taken care 
> of.

The C++ case is pretty simple, but I cannot figure it out.  Here is what I
get for that case.

[EMAIL PROTECTED]> grep -i dll bindings/c++/*
bindings/c++/CMakeLists.txt:      PROPERTIES COMPILE_FLAGS "-DMAKINGPLDLL" )
bindings/c++/CMakeLists.txt~:      PROPERTIES COMPILE_FLAGS "-DMAKINGPLDLL" )
bindings/c++/plstream.h:class PLDLLIMPEXP Coord_Xformer {
bindings/c++/plstream.h:class PLDLLIMPEXP cxx_pltr2 : public Coord_Xformer {
bindings/c++/plstream.h:class PLDLLIMPEXP plstream {

Are only 3 instances of PLDLLIMPEXP needed in plstream.h?  The C++ examples
use much more of our C++ API than that.  Also, notice that libplplotd uses
some DLL symbols and also makes others.  That is handled by PROPERTIES
COMPILE_FLAGS "-DMAKINGPLDLL -DUSINGCSADLL -DUSINGNNDLL". Similarly,
shouldn't libplplotcxxd be using C symbols from libplplotd and also making
C++ symbols available? There is no difference between what attributes are
assigned for GCC for the import and export cases, but that is not true of
proprietary Windows compilers so I would think you would have to continue
the distinction between USING<LIBNAME>DLL and MAKING<LIBNAME>DLL that you
started with libplplotd in order for your logic to work correctly for
libplplotcxxd visibility.

Once we can figure out exactly what is going on with libplplotcxx
visibility, then we should take a similar careful look at the much more
complex visibility question for all of our pure C and pure Fortran language
libraries that support f77 and f95.

Also, once we are satisfied with our visibility implementation we should
document it in special README files for each library, i.e.,
README.CSA_VISIBILITY, README.NN_VISIBILITY, README.PL_VISIBILITY, etc., our
docbook documentation, and the wiki.

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); PLplot scientific plotting software
package (plplot.org); 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
__________________________

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to