R-2.11.1 build and 'so' libraries withouth the 'lib' prefix//update
On Monday 12 July 2010 23:51:55 Simon Urbanek wrote:
On Jul 12, 2010, at 5:59 PM, lI wrote:
On Monday 12 July 2010 20:52:15 Simon Urbanek wrote:
On Jul 12, 2010, at 2:50 PM, lI wrote:
On Monday 12 July 2010 11:07:23 lI wrote:
On Monday 12 July 2010 10:29:30 lI wrote:
Greetings, I have a computer with the following setup: 1)cblfs (pure 64-bit (amd64) linux), kernel2.6.34 gcc4.4.2 2)R-2.11.1 I compiled R with BLAS and lapack using the switched ( --with-blas="- lpthread -latlas -lfptf77blas" --with-lapack="-llapack -lcblas" ). (( http://cran.r-project.org/doc/manuals/R-admin.html#Linear-algebra) ) Prior to compiling R-2.11.1 sh conigure --help gave options including the following SHLIB_LD command for linking shared libraries which contain object files from a C or Fortran compiler only SHLIB_LDFLAGS special flags used by SHLIB_LD SHLIB_CXXLDFLAGS special flags used by SHLIB_CXXLD SHLIB_FCD command for linking shared libraries which contain object files from the Fortran 95 compiler SHLIB_FCLDFLAGS special flags used by SHLIB_FCLD I did not know what to set for these and accepted whatever the defaults were. I ended up with shared-libraries which are as follows:- $R_HOME/lib/{libRblas.so,libRlapack.so } i.e. with the prefix 'lib' and the following shared-libraries without the 'lib' prefix. $R_HOME/modules/{R_X11.so,internet.so,lapack.so,vfonts.so } $R_HOME/library/cluster/libs/cluster.so $R_HOME/library/foreign/libs/foreign.so $R_HOME/library/grDevices/libs/grDevices.so $R_HOME/library/grid/libs/grid.so $R_HOME/library/KernSmooth/libs/KernSmooth.so $R_HOME/library/lattice/libs/lattice.so $R_HOME/library/MASS/libs/MASS.so $R_HOME/library/Matrix/libs/Matrix.so $R_HOME/library/methods/libs/methods.so $R_HOME/library/mgcv/libs/mgcv.so $R_HOME/library/nlme/libs/nlme.so $R_HOME/library/nnet/libs/nnet.so $R_HOME/library/rpart/libs/rpart.so $R_HOME/library/spatial/libs/spatial.so $R_HOME/library/splines/libs/splines.so $R_HOME/library/stats/libs/stats.so $R_HOME/library/survival/libs/survival.so $R_HOME/library/tools/libs/tools.so In linux builds the linker usually looks for libs with the 'lib' prefix. In this installation all the libraries ---in $R_HOME/modules ---in $R_HOME/library/patha/to/whatevr do not have the 'lib' prefix. QUESTION: A) does any on list know SHLIB_LD SHLIB_LDFLAGS SHLIB_CXXLDFLAGS SHLIB_FCD SHLIB_FCLDFLAGS settings for compiling R and do these result in so libs with the 'lib' prefix? B) If all of A) is negative what is there to be done to to enable generation libraries in $R_HOME/modules $R_HOME/library/~ with the 'lib' prefix?
I forgot to add my configure/make options. These were:- ######################## export BUILD64="-m64" sh configure \ CC="gcc $BUILD64" \ CXX="g++ $BUILD64" \ F77="gfortran $BUILD64" \ FC="gfortran $BUILD64" \ JAVA_HOME=$JAVA_HOME \ LIBnn=lib64 \ CPPFLAGS="-I$ATLAS_HOME/include -I/opt/acml4.4.0/gfortran64_mp/include - I/opt/acml4.4.0/gfortran64/include -I/usr/local/numerics/include" \ LDFLAGS="-L$ATLAS_HOME/lib -L/opt/acml4.4.0/gfortran64_mp/lib - L/usr/local/numerics/lib -L/usr/lib" \ --prefix=/opt/TEST/R-2.11.1 \ --x-includes=$XORG_PREFIX/include \ --x-libraries=$XORG_PREFIX/lib \ --with-tcl-config=/usr/lib \ --with-tk-config=/usr/lib \ --with-system-zlib=/usr \ --with-system-bzlib=/usr \ --with-system-pcre=/usr \ --with-x \ --with-libpth-prefix=/usr \ --with-libintl-prefix=/usr \ --with-blas="-lpthread -latlas -lfptf77blas" \ --with-lapack="-llapack -lcblas" \ --enable-R-shlib \ --enable-BLAS-shlib ################ The sources compiled trouble-free. with 'make' as normal user. I then ran 'make install' as super-user and int installed in the prefix as set.. A reply to the following questions would be much appreciateed:- QUESTION: A) does any on list know SHLIB_LD SHLIB_LDFLAGS SHLIB_CXXLDFLAGS SHLIB_FCD SHLIB_FCLDFLAGS settings for compiling R and do these result in so libs with the 'lib' prefix? B) If all of A) is negative what is there to be done to enable generation of shared-libraries in $R_HOME/modules/ and $R_HOME/library/~ directories/sub-directories with the 'lib' prefix?
thanks everyone for the help in clarifying what were share-libraries and otherwise. As stated above I used two switches --enable-R-shlib \ --enable-BLAS-shlib in the configure options of the downloaded R-2.11.1 source prior to compilation. I am compiling R-2.11.1 as an optional dependency of kdeedu-4.4.5. This asks for R-shlib )which I noticed it is disable by the default in the configure script.) After compile and install of R-2.11.1, I am only able to start R from the command line
How are you starting it? The R start script does setup everything so that you should never touch anything inside.
when I move the generated libRblas.so to libRblas.soDUFF and symlink libacml.so to libRblas.so and update $R_HOME/etc/ldpaths accordingly. I am unable to start R with the compiled-in $R_HOME/libR.so and $R_HOME/libRblas.so. QUESTIONS: A) How does one start R with the the generated libR.so and libRblas.so?
bin/R
B) is the generated libR.so interchangable with libRblas.so (i.e. R library without blas enhanced algebra capabilities?)
No - those are two entirely different libraries. The libRblas can be interchanged with a suitably complete BLAS implementation, but please do read the manuals for details. Cheers, Simon
Thanks to you for your help. Following your guidance, kdeedu-4.4.5 now builds successfully against R-2.11.1. However when I edit ~/etc/ldpaths with the line export LD_LIBRARY_PATH=path/to/acml/lib:$LD_LIBRARY_PATH R fails to start.
Of course as you should expect. Why would you edit? It has nothing to do with BLAS ...
I hope I did mention there was a symbolic link of libRblas.so to libacml.so (as recommended by the manual)
Also did you read the manual? It explicitly covers your case ...
yes I did here http://cran.r-project.org/doc/manuals/R-admin.html#Linear-algebra)
Cheers, Simon
it only starts when the above point to $R_HOME/lib. (nb I have a symbolic link of libacml.so to libRblas.so any ideas?