[R-pkg-devel] Lapack: undefined symbol: zgbsv_

Dirk Eddelbuettel edd at debian.org
Mon Feb 12 13:05:17 CET 2018


On 12 February 2018 at 22:16, Baptiste Auguie wrote:
| As far as I can tell Armadillo added specialised methods for banded
| matrices; the routines used to solve non-banded matrices probably haven't
| changed.
| 
| Coming back to the error itself, what puzzles me is that it seems to be
| precisely the OSes relying on external Lapack that have a problem. It
| compiles fine on Windows,
| https://builder.r-hub.io/status/isolve_1.0.tar.gz-e3da3c1b83
| 26e62e4e14a913e5bbb5a4
| 
| So it seems the problem is distinct from the previous issues with missing
| Lapack routines.

Maybe we are setting a more global "no advanced lapack" for Windows that
assures success when we assume that the other system will always have it.

One thing you could try is to write a configure test in your package so that
at build time a compile+link for the particular symbol is made.

If the test succeeeds, export a new HAVE_XYZ_BANDED_ROUTINE define and then
convince Conrad to respect that flag.  Otherwise have the code fall back to
alternatives just like the Windows build.

Or, be brutal, and set '#define ARMA_CRIPPLED_LAPACK 1' everywhere.  See
lines 67 to 95 of RcppArmadillo's configure.ac:
https://github.com/RcppCore/RcppArmadillo/blob/master/configure.ac#L67-L95

I could generalize the use in inst/include/RcppArmadilloConfigGenerated.h.in
by respecting prior definitions, ie wrapping #ifndef around them.

Dirk

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org



More information about the R-package-devel mailing list