[Rd] R-2.11.1 build and 'so' libraries withouth the 'lib' prefix//update

lI lux-integ at btconnect.com
Tue Jul 13 02:28:15 CEST 2010


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?
>



More information about the R-devel mailing list