On Thu, 9 Sep 2004, Vicky Landsman wrote:> Following the recommendation of Prof. Ripley, I have created the Makevars > file with the line: > PKG_LIBS="-L/usr/lib/libm -lm -L/usr/local/lib/libgsl -lgsl -L/usr/local/lib > /libgslcblas -lgslcblas" > in the working directory.No, that's not what I recommended. -L/path/to/libgsl would probably be -L/usr/local/lib if libgsl is in /usr/local/lib. And why do you want -lm? Please consult your unstated OS's documentation for ld.> Now I have the code file Example3.c which computes the Bessel function value > (the example is taken from the GSL reference book). > I am running: > R CMD SHLIB Example3.cPleae show us exactly what you get here.> and all looks good. > The dyn.load("Example3.so") fails with the following error message: > > Error in dyn.load(x, as.logical(local), as.logical(now)) : > unable to load shared library > "/fs/users1/guest/msvika/PhD/R_04/Example3.so": > ld.so.1: /usr/local/sbin/R-1.9/R-1.9.1/bin/R.bin: fatal: relocation error: > file /fs/users1/guest/msvika/PhD/R_04/Example3.so: symbol gsl_sf_bessel_J0: > referenced symbol not foundTry ldd /fs/users1/guest/msvika/PhD/R_04/Example3.so and get a local expert to interpret it for you. You will need anything you had in -L in PKG_LIBS in your library run path as well. You may need e.g. export LD_LIBRARY_PATH=:${LD_LIBRARY_PATH}:/usr/local/lib and please check with a local expert about this.> What is wrong? > Much thanks, Vicky. > > ----- Original Message ----- > From: "Vicky Landsman" <msvika at mscc.huji.ac.il> > To: "r-help" <r-help at stat.math.ethz.ch> > Sent: Thursday, September 09, 2004 6:18 PM > Subject: Re: [R] Adding GSL library path to SHLIB > > > > Dear Prof. Ripley, > > We read the archive thread > > http://maths.newcastle.edu.au/~rking/R/help/02b/0547.html > > Thank you for your help, we will try to create the Makevars file. > > Vicky. > > > > > > > > ----- Original Message ----- > > From: "Prof Brian Ripley" <ripley at stats.ox.ac.uk> > > To: "Vicky Landsman" <msvika at mscc.huji.ac.il> > > Cc: "r-help" <r-help at stat.math.ethz.ch>; <leonid at cc.huji.ac.il> > > Sent: Thursday, September 09, 2004 3:17 PM > > Subject: Re: [R] Adding GSL library path to SHLIB > > > > > > > On Thu, 9 Sep 2004, Vicky Landsman wrote: > > > > > > > Dear R-list people, > > > > > > > I asked a similar question a few hours before. I will try to be more > > > > specific. We like to add the GSL library to the file SHLIB in order > to > > > > make it possible to run the C code using GSL functions from R. We > read > > > > > > Read where? It's incorrect information and only used for Fortran > linking. > > > > > > > that the path to the libgsl.a should be added to the line > shlib_libadd=' > > > > ' in the file SHLIB but it does not work on our system. Dyn.load fails > > > > with error "referenced symbol <symbolname> not found". What is wrong? > > > > We will much appreciate any help on this. > > > > > > > > We are using R-1.9.1 on Unix. > > > > > > You should have a file called Makevars in the directory from which > > > you are doing the building, defining PKG_LIBS, maybe > > > > > > PKG_LIBS="-L/path/to/libgsl -lgsl" > > > > > > in the same way as you would for a package: see `Writing R Extensions'. > > > I don't think that is documented anywere, though. > > > > > > -- > > > Brian D. Ripley, ripley at stats.ox.ac.uk > > > Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ > > > University of Oxford, Tel: +44 1865 272861 (self) > > > 1 South Parks Road, +44 1865 272866 (PA) > > > Oxford OX1 3TG, UK Fax: +44 1865 272595 > > > > > > > > > > ______________________________________________ > > R-help at stat.math.ethz.ch mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > > > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > >-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
Following the recommendation of Prof. Ripley, I have created the Makevars file with the line: PKG_LIBS="-L/usr/lib/libm -lm -L/usr/local/lib/libgsl -lgsl -L/usr/local/lib /libgslcblas -lgslcblas" in the working directory. Now I have the code file Example3.c which computes the Bessel function value (the example is taken from the GSL reference book). I am running: R CMD SHLIB Example3.c and all looks good. The dyn.load("Example3.so") fails with the following error message: Error in dyn.load(x, as.logical(local), as.logical(now)) : unable to load shared library "/fs/users1/guest/msvika/PhD/R_04/Example3.so": ld.so.1: /usr/local/sbin/R-1.9/R-1.9.1/bin/R.bin: fatal: relocation error: file /fs/users1/guest/msvika/PhD/R_04/Example3.so: symbol gsl_sf_bessel_J0: referenced symbol not found What is wrong? Much thanks, Vicky. ----- Original Message ----- From: "Vicky Landsman" <msvika at mscc.huji.ac.il> To: "r-help" <r-help at stat.math.ethz.ch> Sent: Thursday, September 09, 2004 6:18 PM Subject: Re: [R] Adding GSL library path to SHLIB> Dear Prof. Ripley, > We read the archive thread > http://maths.newcastle.edu.au/~rking/R/help/02b/0547.html > Thank you for your help, we will try to create the Makevars file. > Vicky. > > > > ----- Original Message ----- > From: "Prof Brian Ripley" <ripley at stats.ox.ac.uk> > To: "Vicky Landsman" <msvika at mscc.huji.ac.il> > Cc: "r-help" <r-help at stat.math.ethz.ch>; <leonid at cc.huji.ac.il> > Sent: Thursday, September 09, 2004 3:17 PM > Subject: Re: [R] Adding GSL library path to SHLIB > > > > On Thu, 9 Sep 2004, Vicky Landsman wrote: > > > > > Dear R-list people, > > > > > I asked a similar question a few hours before. I will try to be more > > > specific. We like to add the GSL library to the file SHLIB in orderto> > > make it possible to run the C code using GSL functions from R. Weread> > > > Read where? It's incorrect information and only used for Fortranlinking.> > > > > that the path to the libgsl.a should be added to the lineshlib_libadd='> > > ' in the file SHLIB but it does not work on our system. Dyn.load fails > > > with error "referenced symbol <symbolname> not found". What is wrong? > > > We will much appreciate any help on this. > > > > > > We are using R-1.9.1 on Unix. > > > > You should have a file called Makevars in the directory from which > > you are doing the building, defining PKG_LIBS, maybe > > > > PKG_LIBS="-L/path/to/libgsl -lgsl" > > > > in the same way as you would for a package: see `Writing R Extensions'. > > I don't think that is documented anywere, though. > > > > -- > > Brian D. Ripley, ripley at stats.ox.ac.uk > > Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ > > University of Oxford, Tel: +44 1865 272861 (self) > > 1 South Parks Road, +44 1865 272866 (PA) > > Oxford OX1 3TG, UK Fax: +44 1865 272595 > > > > > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide!http://www.R-project.org/posting-guide.html>
On Thu, 9 Sep 2004, Vicky Landsman wrote:> Following the recommendation of Prof. Ripley, I have created the Makevars > file with the line: > PKG_LIBS="-L/usr/lib/libm -lm -L/usr/local/lib/libgsl -lgsl -L/usr/local/lib > /libgslcblas -lgslcblas" > in the working directory.That should probably look like this instead: PKG_LIBS="-L/usr/local/lib -lgsl -lgslcblas -lm" The math library (-lm) should not be necessary here but I left it in case it's needed by your [unspecified] OS for some reason.> Now I have the code file Example3.c which computes the Bessel function value > (the example is taken from the GSL reference book). > I am running: > R CMD SHLIB Example3.c > and all looks good.Shared library linkage often allows symbols to remain undefined until runtime by design. As such, there would be no error message.> The dyn.load("Example3.so") fails with the following error message: > > Error in dyn.load(x, as.logical(local), as.logical(now)) : > unable to load shared library > "/fs/users1/guest/msvika/PhD/R_04/Example3.so": > ld.so.1: /usr/local/sbin/R-1.9/R-1.9.1/bin/R.bin: fatal: relocation error: > file /fs/users1/guest/msvika/PhD/R_04/Example3.so: symbol gsl_sf_bessel_J0: > referenced symbol not foundYou may need the following environment variable set prior to running R. It would be best added to your .profile. $ export LD_LIBRARY_PATH=$HOME/lib:/usr/local/lib:/usr/dt/lib:/usr/lib And why in the world is your R installation located in a directory for system binaries? Perhaps it would be better located as '/usr/local/R-1.9.1' or '/opt/R-1.9.1' instead. ---------------------------------------------------------- SIGSIG -- signature too long (core dumped)
As Prof. Ripley said, twice already: seek local expert help. If you don't know who that is, start with the person that setup your user account on that machine. Such system-specific problem is much easier to resolve that way, instead of having others on the list guessing. Andy> From: Vicky Landsman > > Dear Prof. Ripley, > The GSL reference book explains that lm should be added as > well (as far as I > understand, and this is what I saw when I run the file in C > in a standard > way). No matter, with lm and without, I get the same picture. > Here is what I get after R CMD SHLIB Example3.c > > make: Warning: File `Makevars' has modification time 3.4e+03 > s in the future > gcc -I/usr/local/sbin/R-1.9/R-1.9.1/include > -I/usr/local/include -fPIC - > g -O2 -c Example3.c -o Example3.o > gcc -G -L/usr/local/lib -o Example3.so Example3.o > -L/usr/local/lib/ -lgsl -L/usr/local/lib/ -lgslcblas" > make: warning: Clock skew detected. Your build may be incomplete. > > Running ldd line as you stated, I get the following: > libc.so.1 => /usr/lib/libc.so.1 > libdl.so.1 => /usr/lib/libdl.so.1 > /usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1 > > Sorry for my ignorance in UNIX, where should I run the line > export LD_LIBRARY_PATH=:${LD_LIBRARY_PATH}:/usr/local/lib ? > > Vicky. > > > > On Thu, 9 Sep 2004, Vicky Landsman wrote: > > > > > Following the recommendation of Prof. Ripley, I have created the > Makevars > > > file with the line: > > > > PKG_LIBS="-L/usr/lib/libm -lm -L/usr/local/lib/libgsl -lgsl > -L/usr/local/lib > > > /libgslcblas -lgslcblas" > > > in the working directory. > > > > No, that's not what I recommended. -L/path/to/libgsl would > probably be > > -L/usr/local/lib if libgsl is in /usr/local/lib. And why > do you want -lm? > > > > Please consult your unstated OS's documentation for ld. > > > > > Now I have the code file Example3.c which computes the > Bessel function > value > > > (the example is taken from the GSL reference book). > > > I am running: > > > R CMD SHLIB Example3.c > > > > > > > and all looks good. > > > The dyn.load("Example3.so") fails with the following > error message: > > > > > > Error in dyn.load(x, as.logical(local), as.logical(now)) : > > > unable to load shared library > > > "/fs/users1/guest/msvika/PhD/R_04/Example3.so": > > > ld.so.1: /usr/local/sbin/R-1.9/R-1.9.1/bin/R.bin: > fatal: relocation > error: > > > file /fs/users1/guest/msvika/PhD/R_04/Example3.so: symbol > gsl_sf_bessel_J0: > > > referenced symbol not found > > > > Try ldd /fs/users1/guest/msvika/PhD/R_04/Example3.so and get a local > > expert to interpret it for you. > > > > You will need anything you had in -L in PKG_LIBS in your > library run path > > as well. You may need e.g. > > > > export LD_LIBRARY_PATH=:${LD_LIBRARY_PATH}:/usr/local/lib > > > > and please check with a local expert about this. > > > > > What is wrong? > > > Much thanks, Vicky. > > > > > > ----- Original Message ----- > > > From: "Vicky Landsman" <msvika at mscc.huji.ac.il> > > > To: "r-help" <r-help at stat.math.ethz.ch> > > > Sent: Thursday, September 09, 2004 6:18 PM > > > Subject: Re: [R] Adding GSL library path to SHLIB > > > > > > > > > > Dear Prof. Ripley, > > > > We read the archive thread > > > > http://maths.newcastle.edu.au/~rking/R/help/02b/0547.html > > > > Thank you for your help, we will try to create the > Makevars file. > > > > Vicky. > > > > > > > > > > > > > > > > ----- Original Message ----- > > > > From: "Prof Brian Ripley" <ripley at stats.ox.ac.uk> > > > > To: "Vicky Landsman" <msvika at mscc.huji.ac.il> > > > > Cc: "r-help" <r-help at stat.math.ethz.ch>; <leonid at cc.huji.ac.il> > > > > Sent: Thursday, September 09, 2004 3:17 PM > > > > Subject: Re: [R] Adding GSL library path to SHLIB > > > > > > > > > > > > > On Thu, 9 Sep 2004, Vicky Landsman wrote: > > > > > > > > > > > Dear R-list people, > > > > > > > > > > > I asked a similar question a few hours before. I > will try to be > more > > > > > > specific. We like to add the GSL library to the > file SHLIB in > order > > > to > > > > > > make it possible to run the C code using GSL > functions from R. We > > > read > > > > > > > > > > Read where? It's incorrect information and only used > for Fortran > > > linking. > > > > > > > > > > > that the path to the libgsl.a should be added to the line > > > shlib_libadd=' > > > > > > ' in the file SHLIB but it does not work on our > system. Dyn.load > fails > > > > > > with error "referenced symbol <symbolname> not > found". What is > wrong? > > > > > > We will much appreciate any help on this. > > > > > > > > > > > > We are using R-1.9.1 on Unix. > > > > > > > > > > You should have a file called Makevars in the > directory from which > > > > > you are doing the building, defining PKG_LIBS, maybe > > > > > > > > > > PKG_LIBS="-L/path/to/libgsl -lgsl" > > > > > > > > > > in the same way as you would for a package: see `Writing R > Extensions'. > > > > > I don't think that is documented anywere, though. > > > > > > > > > > -- > > > > > Brian D. Ripley, ripley at stats.ox.ac.uk > > > > > Professor of Applied Statistics, > http://www.stats.ox.ac.uk/~ripley/ > > > > > University of > Oxford, Tel: +44 1865 272861 (self) > > > > > 1 South Parks Road, +44 1865 272866 (PA) > > > > > Oxford OX1 3TG, UK Fax: +44 1865 272595 > > > > > > > > > > > > > > > > > > ______________________________________________ > > > > R-help at stat.math.ethz.ch mailing list > > > > https://stat.ethz.ch/mailman/listinfo/r-help > > > > PLEASE do read the posting guide! > > > http://www.R-project.org/posting-guide.html > > > > > > > > > > ______________________________________________ > > > R-help at stat.math.ethz.ch mailing list > > > https://stat.ethz.ch/mailman/listinfo/r-help > > > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > > > > > > > > > > -- > > Brian D. Ripley, ripley at stats.ox.ac.uk > > Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ > > University of Oxford, Tel: +44 1865 272861 (self) > > 1 South Parks Road, +44 1865 272866 (PA) > > Oxford OX1 3TG, UK Fax: +44 1865 272595 > > > > > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > >