Bjørn-Helge Mevik
2008-Jul-03 08:58 UTC
[Rd] --enable-BLAS-shlib conflict with --with-lapack in configure?
Dear developeRs, I'm trying to build R (2.7.1, on an x86_64 running Linux, but I believe I have observed this on x86 and with earlier versions of R as well) using external BLAS and LAPACK libraries _and_ generating libR.so, libRblas.so and libRlapack.so. Without --enable-BLAS-shlib, configure is able to find and use the external LAPACK library: ./configure \ --with-blas="-L/site/intel/cmkl/8.1/lib/em64t -lmkl -lvml -lguide -lpthread" \ --with-lapack="-L/site/intel/cmkl/8.1/lib/em64t -lmkl_lapack64 -lmkl" \ --enable-R-shlib [...] External libraries: readline, BLAS(generic), LAPACK(generic) Additional capabilities: PNG, JPEG, iconv, MBCS, NLS Options enabled: shared R library, R profiling, Java However, if I add --enable-BLAS-shlib, the external LAPACK will not be used: ./configure \ --with-blas="-L/site/intel/cmkl/8.1/lib/em64t -lmkl -lvml -lguide -lpthread" \ --with-lapack="-L/site/intel/cmkl/8.1/lib/em64t -lmkl_lapack64 -lmkl" \ --enable-R-shlib --enable-BLAS-shlib [...] checking for zgeev_ in -L/site/intel/cmkl/8.1/lib/em64t -lmkl_lapack64 -lmkl... no checking for zgeev_ in -llapack... no [...] External libraries: readline, BLAS(generic) Additional capabilities: PNG, JPEG, iconv, MBCS, NLS Options enabled: shared R library, shared BLAS, R profiling, Java>From config.log, it seems configure is trying to link with libRblas whentesting for LAPACK -- but that has not been built yet: configure:37825: checking for zgeev_ configure:37889: gcc -std=gnu99 -o conftest -g -O2 -fpic -I/usr/local/include -L/usr/local/lib64 conftest.c -L$(R_HOME)/lib$(R_ARCH) -lRblas -lg2c -lm -ldl -lm >&5 /usr/bin/ld: cannot find -lRblas [...] configure:37924: checking for zgeev_ in -L/site/intel/cmkl/8.1/lib/em64t -lmkl_lapack64 -lmkl configure:37962: gcc -std=gnu99 -o conftest -g -O2 -fpic -I/usr/local/include -L/usr/local/lib64 conftest.c -L/site/intel/cmkl/8.1/lib/em64t -lmkl_lapack64 -lmkl -L$(R_HOME)/lib$(R_ARCH) -lRblas -lg2c -lm -ldl -lm >& 5 /usr/bin/ld: cannot find -lRblas [...] configure:37993: checking for zgeev_ in -llapack configure:38036: gcc -std=gnu99 -o conftest -g -O2 -fpic -I/usr/local/include -L/usr/local/lib64 conftest.c -llapack -L$(R_HOME)/lib$(R_ARCH) -lRblas -lg2c -lm -ldl -lm >&5 /usr/bin/ld: cannot find -lRblas (Removing the --enable-R-shlib does not make a difference in this respect.) Is this intentional or a bug? Am I doing something wrong here? -- Regards, Bj?rn-Helge Mevik
Prof Brian Ripley
2008-Jul-03 09:52 UTC
[Rd] --enable-BLAS-shlib conflict with --with-lapack in configure?
This is intentional. Please note what the R-admin manual says about --with-lapack, including 'definitely *not* recommended' If you are concerned about performance you definitely do not want to use shared R, not a shared BLAS. On Thu, 3 Jul 2008, Bj?rn-Helge Mevik wrote:> Dear developeRs, > > I'm trying to build R (2.7.1, on an x86_64 running Linux, but I believe > I have observed this on x86 and with earlier versions of R as well) > using external BLAS and LAPACK libraries _and_ generating libR.so, > libRblas.so and libRlapack.so. > > Without --enable-BLAS-shlib, configure is able to find and use the > external LAPACK library: > > ./configure \ > --with-blas="-L/site/intel/cmkl/8.1/lib/em64t -lmkl -lvml -lguide -lpthread" \ > --with-lapack="-L/site/intel/cmkl/8.1/lib/em64t -lmkl_lapack64 -lmkl" \ > --enable-R-shlib > [...] > External libraries: readline, BLAS(generic), LAPACK(generic) > Additional capabilities: PNG, JPEG, iconv, MBCS, NLS > Options enabled: shared R library, R profiling, Java > > However, if I add --enable-BLAS-shlib, the external LAPACK will not be > used: > > ./configure \ > --with-blas="-L/site/intel/cmkl/8.1/lib/em64t -lmkl -lvml -lguide -lpthread" \ > --with-lapack="-L/site/intel/cmkl/8.1/lib/em64t -lmkl_lapack64 -lmkl" \ > --enable-R-shlib --enable-BLAS-shlib > [...] > checking for zgeev_ in -L/site/intel/cmkl/8.1/lib/em64t -lmkl_lapack64 -lmkl... no > checking for zgeev_ in -llapack... no > [...] > External libraries: readline, BLAS(generic) > Additional capabilities: PNG, JPEG, iconv, MBCS, NLS > Options enabled: shared R library, shared BLAS, R profiling, Java > >> From config.log, it seems configure is trying to link with libRblas when > testing for LAPACK -- but that has not been built yet: > > configure:37825: checking for zgeev_ > configure:37889: gcc -std=gnu99 -o conftest -g -O2 -fpic -I/usr/local/include -L/usr/local/lib64 conftest.c > -L$(R_HOME)/lib$(R_ARCH) -lRblas -lg2c -lm -ldl -lm >&5 > /usr/bin/ld: cannot find -lRblas > [...] > configure:37924: checking for zgeev_ in -L/site/intel/cmkl/8.1/lib/em64t -lmkl_lapack64 -lmkl > configure:37962: gcc -std=gnu99 -o conftest -g -O2 -fpic -I/usr/local/include -L/usr/local/lib64 conftest.c > -L/site/intel/cmkl/8.1/lib/em64t -lmkl_lapack64 -lmkl -L$(R_HOME)/lib$(R_ARCH) -lRblas -lg2c -lm -ldl -lm >& > 5 > /usr/bin/ld: cannot find -lRblas > [...] > configure:37993: checking for zgeev_ in -llapack > configure:38036: gcc -std=gnu99 -o conftest -g -O2 -fpic -I/usr/local/include -L/usr/local/lib64 conftest.c > -llapack -L$(R_HOME)/lib$(R_ARCH) -lRblas -lg2c -lm -ldl -lm >&5 > /usr/bin/ld: cannot find -lRblas > > (Removing the --enable-R-shlib does not make a difference in this > respect.) > > Is this intentional or a bug? Am I doing something wrong here? > > -- > Regards, > Bj?rn-Helge Mevik > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >-- 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