On 2008-09-01 00:22+0200 Werner Smekal wrote:

>> Could you send the nm output for libplplotf77cd as well?  That library
>> defines plsetopt7, but it may have the wrong underscoring convention or
>> there may be some import/export of symbols problem.  That library is
>> mentioned in your detailed linking command above.  Is the choice of 
>> library
>> name and syntax of the command correct?
>
> gfortran also allows to change how many underscores are added ( 
> http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/Code-Gen-Options.html#Code-Gen-Options
>  
> ) and in plstubs.h this can also be changed. But some tries didn't help 
> anything and I don't know in which direction I should go, since the names 
> show up in the library as well as in the object file which is linked to the 
> library. Can't find anything useful in the internet so far.

For what it is worth, here are the equivalent results on my (Debian testing)
computer:

[EMAIL PROTECTED]> nm bindings/f77/libplplotf77cd.so |grep plsetopt7
000000000000a1fc T plsetopt7_
[EMAIL PROTECTED]> nm bindings/f77/libplplotf77d.so |grep plsetopt7
                  U plsetopt7_

That is pretty clear.  The symbol that not defined internally by
libplplotf77d is supplied by libplplotf77cd where it is defined.


Here is your equivalent result.

[EMAIL PROTECTED]> grep plsetopt7 *.output
libplplotf77cd.dll.nm.output:100049c3 T _plsetopt7_
libplplotf77d.dll.nm.output:100049c3 T _plsetopt7_
sfstubs.obj.nm.output:         U _plsetopt7_

The "U" for sfstubs.obj seems correct, but I frankly don't understand the
"T" for libplplotf77d since that symbol is not defined internally in that
library.  However, I assume the libplplotf77cd results means that symbol
is really defined there so I don't see why there is a linking issue.

The only possibility I can think of to explain the bad linking error
messages for MinGW is the symbols are not exported correctly for
libplplotf77cd or not imported correctly for libplplotf77c.  So it may be
worthwhile to look carefully at how import/export of symbols is set up
for MinGW.  For example, I notice there is no mention of MinGW in
pldll.h.  I assume

#if defined(WIN32)

works for MinGW, but there is a very special list of compilers to check in
that case, and I am wondering if e.g., __GNUC__ is defined for your
particular version of MinGW.  Perhaps it would be more reliable (or at least
understandable) to have a special stanza for MinGW as in the Cygwin case?

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