[Rd] --enable-BLAS-shlib conflict with --with-lapack in configure?

Bjørn-Helge Mevik b.h.mevik at usit.uio.no
Thu Jul 3 10:58:26 CEST 2008


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



More information about the R-devel mailing list