On 2008-09-08 06:44+0200 Arjen Markus wrote:

>> Hi,
>>
>> the email below was somehow never sent, since it stayed in my Drafts
>> folder, so I send it again.
>>
>> Werner
>>
>> Ok,
>>
>> one step forward. The import library libplplotf77cd.dll.a (to which is
>> linked to) doesn't contain any symbols. If I change in plstubs.h
>> STUB_LAU to
>>
>> #define FNAME(x,y)   PLDLLIMPEXP y##_
>> #define FNAME_(x,y)  y##_
>>
>> it's still not possible to link to libplplotf77cd.dll.a (although it
>> contains symbols of the correct name - but it's possible to link
>> directly to libplplotf77cd.dll if I make changes to the files produced
>> by cmake. So it seems that for MinGW 4.x.x the functions are also not
>> exported by default (as with Visual C++) - I thought that this is now
>> possible but not default (there is some visibility flag which can be set).
>>
>> Maybe someone has some additional ideas.
>>
>
> Hi Werner,
>
> once I got it all working, I noticed the same thing: for some
> reason the import library (.dll.a) contains very few symbols.
> I have experimented a bit with STUB_LAU, but that has not solved
> much.
>
> The way forward is to write a small set of source files that
> mimick the set-up of PLplot - by then compiling/linking them
> manually I should be able to determine the correct incantation.
>
> But I come to the same conclusion: this version of GCC hides
> the symbols just like other Windows compilers. I am not sure
> I like that particular complication ;).

Also, please note that I have been working on gcc visibility issues recently
so I may have inadvertently messed up the MinGW version of GCC case.  The
the PLplot trunk version right now, all is well for Linux gcc because I use
the "(default)" case (i.e., everything visible) in plplot.h, but it is
possible that logic is failing somehow for the MinGW/gcc case so you are
not getting the "all symbols visible" result like you are supposed to with
that "(default)" setting.

As a nasty side note, when Andrew or I try "(hidden)" completely inexplicable
results occur for the visibility of symbols in our core library with
Linux/gcc.  The majority of c_* symbols are visible, but some are not for
unknown reasons which messes up everything else, and the list of those
symbols which are invisible varies from my Debian Linux platform to Andrew's
closely related Ubuntu Linux platform.  (Huh??)

In sum, something really strange seems to be going on with gcc visibility on
Linux for the "(hidden)" case with PLDLLIMPEXP being ignored for some of our
symbols but not others in a platform-dependent way. Something different but
also strange may be going on with MinGW/gcc visibility even for the svn
trunk "(default)" case. Thus, Werner and Arjen, as you debug visibility for
the MinGW/gcc case, please keep us closely informed since there may be
implications for Linux/gcc visibility.

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