[R] Dynamic loading problem.
Kurt Hornik
Kurt.Hornik at ci.tuwien.ac.at
Sat Sep 15 10:55:49 CEST 2001
>>>>> Prof Brian Ripley writes:
> On Fri, 14 Sep 2001, Rolf Turner wrote:
>> I'm having a dynamic loading problem that seems to be
>> caused by exponentiation (the ** operator in Fortran/ratfor).
>>
>> This can be illustrated by the following toy example:
>>
>> ===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===
>> % cat foo.r
>> subroutine foo(x,n)
>> x = x**n
>> return
>> end
>>
>> % f77 -c foo.r
>> /tmp/ratfor.06661.0.f:
>> foo:
>> % R CMD SHLIB -o foo.so foo.o
>> gcc -G -o foo.so foo.o -L/usr/local/lib
>> % R -q
>>
>> > dyn.load("foo.so")
>> Error in dyn.load(x, as.logical(local), as.logical(now)) :
>> unable to load shared library "/home1/faculty/rolf/Traal/Temp/foo.so":
>> ld.so.1: /usr/local/lib/R/bin/R.bin: fatal: relocation error: file /home1/faculty/rolf/Traal/Temp/foo.so: symbol __pow_ri: referenced symbol not found
>> > q()
>> ===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===+===
>>
>> I presume/hope that by handing SHLIB some other flags or by
>> specifying some environment variable or other, or by ..., I should
>> be able to get dyn.load() to find ``__pow_ri''.
>>
>> The same problem does NOT arise when I use Splus3.4 SHLIB and
>> dyn.load.shared() in Splus3.4, so ``__pow_ri'' must be around
>> somewhere.
>>
>> Can anyone tell me (in simple, prescriptive, explicit terms) what
>> I need to do to alleviate this problem?
>>
>> I'm running R-1.3.1 on a Sun Sparc Ultra-5, under SunOS 5.7/Solaris 2.7.
> Use Fortran! Seriously, on my Ultra1
> auk% R CMD SHLIB foo.f
> f77 -PIC -O -c foo.f -o foo.o
> foo.f:
> foo:
> gcc -G -o foo.so foo.o -L/usr/local/lib -R/opt/SUNWspro/lib
> -L/opt/SUNWspro/lib -L/opt/SUNWspro/WS6U1/lib -L/usr/ccs/lib -L/usr/lib
> -lF77 -lM77 -lsunmath -lm -lcx
> shows what's up, and with
> dummy.f (empty)
> auk% R CMD SHLIB foo.o dummy.f
> f77 -PIC -O -c dummy.f -o dummy.o
> dummy.f:
> gcc -G -o foo.so foo.o dummy.o -L/usr/local/lib -R/opt/SUNWspro/lib
> -L/opt/SUNWspro/lib -L/opt/SUNWspro/WS6U1/lib -L/usr/ccs/lib -L/usr/lib
> -lF77 -lM77 -lsunmath -lm -lcx
> fixes it.
> S-PLUS comes (usually) with support for ratfor: R does not.
This could be added, but I am not sure if it is worth it.
-k
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help 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-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list