[R] unresolved symbols in dynamically linked code

Kurt Hornik
Mon, 17 Apr 2000 17:37:48 -0000

>>>>> Woodrow Setzer writes:

> I'm probably misunderstanding something in "Writing R
Extensions"
> version 1.0.0.  In the chapter on the R API, section 4.7, it is stated
> that the functions listed in R_ext/Linpack.h are available to users'
> Fortran code.  I am developing a developing a library of ode solvers,
> based on lsoda and ddassl, and which in turn call some routines from
> linpack and double precision blas.  I originally developed the library
> including those routines, and got a functional shared library.  When I
> removed the routines listed in Linpack.h, dyn.load gave the error:

> ...../call_lsoda.so: undefined symbol dgbfa_

> Have I misunderstood the documentation, or do I need to do something
> special to resolve these symbols?  I am using R SHLIB to do the make,
> and am working on a Redhat Linux 6.1 machine.  When I set the option
> "verbose" to TRUE, I get the warning, "Explicit local
dynamic loading
> not supported on this platform.  Using default."

Hmm.  I get (r-devel)

hornik at lp12:~/src/R$ find . -type f | xargs grep -i dgbfa
./src/include/R_ext/Linpack.h:extern int F77_SYMBOL(dgbfa)(double*, int*, int*,
int*, int*, int*, int*);
./src/library/splines/R/splineClasses.R:##  z <-  .Fortran("dgbfa",

so it looks as if dgbfa was not contained in the R sources ...

Hence it should also not be in Linpack.h.

Comments?

-k