On 26 January 2026 at 12:52, Dirk Eddelbuettel wrote: | | On 26 January 2026 at 13:29, Ben Bolker wrote: | | Hmm, good idea but that isn't seeming to help me? | | | | ../r-devel/configure --enable-R-shlib --enable-memory-profiling | | --with-blas=-lopenblas --with-lapack=-llapack | egrep "(lapack|blas)" | | | | configure: WARNING: C23 support is unavailable | | checking for dgemm_ in -lopenblas... yes | | checking for dpstrf_ in -llapack... yes | | config.status: creating src/extra/blas/Makefile | | config.status: creating src/modules/lapack/Makefile | | | | Then `make` gives me the same error. (I guess I could look at the | | rocker Dockerfiles and try to copy them exactly?) | | Couple of things to try: | | 1) I would make sure you do have the corresponding -dev packages for | building, not just the runtime packages. I cannot look onto your machines. | | 2) I would simplify; my builds actually just say --with-blas --with-lapack as | the Debian (and Ubuntu and PopOS!) package management sets the right default, | usually. So if you want openblas, install the corresponding packages (and | these days there are several). | | 3) If you are really lost or mad, follow reproducible steps. My Debian | package setup is public, my Dockerfiles are public, I am sure the R | Installation and Admin manual has things to say.
4) Kurt's configure script is also very good. You can just run re-run `./configure` and it should give you helpful output. Dirk | Lastly, we probably should have this chat on r-sig-debian to not bore our | good friends using windows, macos, fedora, ... | | Dirk | | | | | cheers | | Ben | | | | | | | | On 2026-01-26 1:22 p.m., Dirk Eddelbuettel wrote: | | > | | > On 26 January 2026 at 12:45, Ben Bolker wrote: | | > | | | > | I'm sure I'm doing something dumb, but having trouble building R from | | > | source on PopOS! 22.04 LTS (debian/Ubuntu 'jammy' derivative): | | > | "undefined symbol: dgemmtr_" when trying to load stuff from LAPACK. | | > | | | > | R appears to find stuff at the configure step (FWIW I get the same error | | > | below if I take out "with-blas=-lopenblas") | | > | | | > | $ ../r-devel/configure --enable-R-shlib --enable-memory-profiling | | > | --with-blas=-lopenblas | grep blas | | > | configure: WARNING: C23 support is unavailable | | > | checking for dgemm_ in -lopenblas... yes | | > | config.status: creating src/extra/blas/Makefile | | > | | > FWIW in all my build script(s) (for local r-devel builds, or the Debian R | | > package, or container builds from source) I explicitly set the --with-blas | | > and the --with-lapack flags. As dgemm() is (well known) LAPACK routine [1] I | | > think you are "simply" forgetting to link with LAPACK here. | | > | | > Cheers, Dirk | | > | | > [1] https://www.netlib.org/lapack/explore-html/dd/d09/group__gemm_ga1e899f8453bcbfde78e91a86a2dab984.html | | > | | > | | | > | Then `make` fails with: | | > | | | > | byte-compiling package 'grDevices' | | > | Warning in solve.default(rgb) : | | > | unable to load shared object '/home/bolker/R/r-build/modules//lapack.so': | | > | /home/bolker/R/r-build/lib/libRlapack.so: undefined symbol: dgemmtr_ | | > | Error in solve.default(rgb) : LAPACK routines cannot be loaded | | > | | | > | I do see a NEWS item from R 4.5.0 | | > | https://github.com/r-devel/r-svn/blob/42e81d981a540f4afc01d1002a64ab347eb5dc15/doc/NEWS.Rd#L956-L961 | | > | (I thought things were working until recently, but I haven't re-built | | > | from scratch in a while ...) | | > | | | > | \item This update was mainly bug fixes but contained a barely | | > | documented major change. The set of BLAS routines had been | | > | unchanged since 1988, so throughout \R's history. This update | | > | introduced new BLAS routines \code{dgemmtr} and \code{zgemmtr} | | > | which are now used by LAPACK routines. This means that BLAS | | > | implementations are no longer interchangeable. | | > | | | > | Section A.3.1 | | > | https://rstudio.github.io/r-manuals/r-admin/Essential-and-useful-other-programs-under-a-Unix-alike.html: | | > | | | > | > The configure code checks that the external BLAS is complete (as of | | > | LAPACK 3.9.1: it must include all double precision and double complex | | > | routines, as well as LSAME), and appears to be usable. However, an | | > | external BLAS has to be usable from a shared object (so must contain | | > | position-independent code), and that is not checked. | | > | | | > | I'd be surprised if by BLAS libraries *didn't* contain PIC, but ... ?? | | > | | | > | Suggestions for diagnostics/debugging welcome ... | | > | | | > | cheers | | > | Ben Bolker | | > | | | > | ______________________________________________ | | > | [email protected] mailing list | | > | https://stat.ethz.ch/mailman/listinfo/r-devel | | > | | | | -- | | Dr. Benjamin Bolker | | Professor, Mathematics & Statistics and Biology, McMaster University | | Associate Chair (Graduate), Department of Mathematics & Statistics | | Director, School of Computational Science and Engineering | | > E-mail is sent at my convenience; I don't expect replies outside of working hours. | | -- | dirk.eddelbuettel.com | @eddelbuettel | [email protected] -- dirk.eddelbuettel.com | @eddelbuettel | [email protected] ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
