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

Reply via email to