Hi Arjen: On 2016-12-08 07:59-0000 Arjen Markus wrote:
> This visibility issue is one of obscurer aspects of today's programming experience. It is akin to the import/export circus in Windows DLLs. Always good for some puzzles. Yes, and I have figured out this particular puzzle. :-) The code generated by automoc was not being compiled with -DUSINGDLL. And that macro is the essential trigger that allows us to specify visibility support infrastructure in include/pldll.h.in and therefore visibility of certain symbols throughout our code. I have fixed that, but that involved a necessary style change (use target properties rather than source code properties to set up -DUSINGDLL) that I liked so much that I changed to that style everywhere in our build system. Then I did a comprehensive test with no constraints (i.e., of all interactive and noninteractive components of PLplot) which revealed other issues. I don't think those issues are related to that style change, but nevertheless I want to get those straightened out and completely tested before committing the style change. So hopefully I will be able to get this committed today, but it might be tomorrow. By the way, on the visibility issue, the Linux gcc developers are firmly in Microsoft's corner on this (or at least the default no exporting of symbols so developers have to specific about exactly which symbols can be exported from a library). The reason is extra unused symbols that are exported for no reason make loading the library more time consuming and increase the chances of nameclashes between the same symbol name being used by two separate libraries. So this is a case where Microsoft got it right, and Linux has been playing catch up with the gcc and g++ -fvisibility=hidden option. Note, that is still just an option though, and if you don't specify it, Linux libraries by default export all symbols which is a bad thing so at some point (unless POSIX forbids it) I think -fvisibility=hidden will become the default for gcc and g++. Which would mean all Linux developers (just like developers on Windows platforms) would have to be aware of library symbol visibility issues from the start (which would probably be a good thing). 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 __________________________ ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today.http://sdm.link/xeonphi _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel