Hi Andrew:

In my reading about visibility for C and C++ for gcc on Linux, I can find
no reference to _import_ visibility in the gcc info pages, the Ulich Drepper
reference, or in
http://developer.apple.com/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html

Thus, I now believe

#define FXIMPORT __attribute__ ((visibility("default")))

in one of the examples in http://gcc.gnu.org/wiki/Visibility was just a bit
of sloppiness and GCC on Linux should not bother to specify visibility
attributes for _imported_ symbols (which I assume or just ignored).
Previously, I followed that example by using, e.g.,

#define PLDLLIMPORT __attribute__ ((visibility("default")))

in include/pldll.h and also used a similar #define for imported symbols
in csadll.h and nndll.h.

I locally changed those import #defines to nothing, e.g.,

#define PLDLLIMPORT

After a bug fix to bindings/tcl/CMakeLists.txt, I continued to get the same
perfect build results as before and the same almost perfect (outside of
psttf and cairo) ctest results as before for the case of

export CC='gcc -fvisibility=hidden'
export CXX='g++ -fvisibility=hidden'
export FC='gfortran -fvisibility=hidden'

Therefore I committed these changes (revision 8773).

I am pretty sure of my ground here, but I also realize we are subject to
uncertain documentation of these relatively new Linux GCC visibility
features so such commits as I have just done are in the nature of an
experiment.  Thus, if you don't get as good results as before for revison
8773 or if your independent google research seems to indicate we should do
something about _imported_ symbol visibility for GCC on Linux, then we will
need to revert this change or try something different.

Arjen and Werner, libplplottcltkd is another library where I think you
should be more careful about the import/export distinction.  The logic
currently just makes the exported symbols required by the Tcl/Tk
applications visible. This works fine for GCC on Linux because import
visibility appears not to be an issue for that platform, but ignoring import
visibility is probably a bad idea for Windows.

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