From b.h.mevik at usit.uio.no  Thu Jul  3 10:58:26 2008
From: b.h.mevik at usit.uio.no (=?iso-8859-1?Q?Bj=F8rn-Helge?= Mevik)
Date: Thu, 03 Jul 2008 10:58:26 +0200
Subject: [Rd] --enable-BLAS-shlib conflict with --with-lapack in configure?
Message-ID: <s3s7ic3l4y5.fsf@slagelg.uio.no>

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



[Rd] --enable-BLAS-shlib conflict with --with-lapack in configure?
=?iso-8859-1?Q?Bj=F8rn-Helge?= Mevik