libraries; Fortran / -lf2c / Slackware woes

Paul Gilbert pgilbert@bank-banque-canada.ca
Wed, 20 May 1998 10:10:48 -0400


Jim

I don't think your libf2c problems are related to your installation, Slackware,
or even to Linux. I have the same trouble in RedHat and in Solaris. I think the
problem is whether it is the responsibility of a dynamically loaded .so to
knowing where libraries are, or if R.binary should know that. In my rather crude
and uninformed experimentation I could not discover a way to make my .so know
and pass along that information, so I have concluded that it must be R.binary's
responsibility.

I posted a question on this some time ago, to which Ross acknowledged there is a
problem and suggested I contact Kurt. In the end I didn't do that because I
discovered that some rather trivial changes to my fortran resulted in calls to
pow_di rather than pow_ii and this fixed my problem.

I hope that the problem has been fixed in 0.62, but I wouldn't be too sure of
that, since, as far as I know, you and I are the only ones who have been having
this difficulty. I suspect it will become more of an issue as more fortran is
ported.

Below is a copy of the exchange from my previous posting.

Paul Gilbert
________
> Paul Gilbert <pgilbert@bank-banque-canada.ca> writes:
>
> > I have a problem with my dynamically loaded code in R not finding
> > pow_ii, which for some time I thought was because library f2c is
> > not on my Sparcstation.  > > However, I have now been experiencing
> > the same problem in Linux, with all the  proper libraries in place.
> >
> > My incomplete understanding of elf and shared libraries does not
> > help, but when compiling a complete program I usually muddle through.
> > However, in the case of dynamically loading code into R, I am not
> > sure whether it is my dse.so or R which should have the knowledge
> > of where to find /usr/lib/libf2c.so*. I haven't  had much success
> > trying to configure so that that information is in dse.so. None
> > of the usual things seem to help, so I suspect R itself needs to
> > be able to find the library. If someone can explain this I would
> > very much appreciate it.

DB> One thing you can do is to check the R.binary file with "nm -g" to find
DB> out what symbols are defined in it.  On my machine R.binary includes
DB> pow_dd and pow_di but not pow_ii.

This is a general problem we need a solution to.  Recently, Kurt Hornik
has changed the configuration procedures so that fortran is located and
used to load R.  I thought this would fix this kind of problem.
(Any references to fortran things like pow_ii should be removed from the
C sources).

I'd suggest that you get in touch with Kurt directly:
        Kurt.Hornik@ci.tuwien.ac.at
to sort this out.

        Ross

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._