[Rd] R-2.11.1 build and 'so' libraries withouth the 'lib' prefix//update
Simon Urbanek
simon.urbanek at r-project.org
Tue Jul 13 00:51:55 CEST 2010
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 ...
Also did you read the manual? It explicitly covers your case ...
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