Dirk Eddelbuettel
2023-Dec-30 18:16 UTC
[R-sig-Debian] custom built R will not change BLAS/LAPACK with update-alternatives
If you match the exact build-deps I use and the exact options from debian/rules you should end up with the exact same output. As that is whay you desire but do not get we need to drill down into where it deviates. FWIW last time I build the Debian the (relevant) part (of the large) configure log was below. What do you get for BLAS/LAPACK? R is now configured for x86_64-pc-linux-gnu Source directory: . Installation directory: /usr C compiler: gcc -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 Fortran fixed-form compiler: gfortran -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -fcf-protection Default C++ compiler: g++ -std=gnu++17 -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 C++11 compiler: g++ -std=gnu++11 -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 C++14 compiler: g++ -std=gnu++14 -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 C++17 compiler: g++ -std=gnu++17 -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 C++20 compiler: g++ -std=gnu++20 -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 C++23 compiler: g++ -std=gnu++23 -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 Fortran free-form compiler: gfortran -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -fcf-protection Obj-C compiler: Interfaces supported: X11, tcltk External libraries: pcre2, readline, BLAS(generic), LAPACK(generic), curl Additional capabilities: PNG, JPEG, TIFF, NLS, cairo, ICU Options enabled: shared R library, R profiling, memory profiling Capabilities skipped: Options not enabled: shared BLAS Recommended packages: no Despite the display of 'shared BLAS' not enabled, I still have root at fb498fe53700:/# ldd /usr/lib/R/modules/lapack.so linux-vdso.so.1 (0x00007ffcb09c7000) libR.so => /lib/libR.so (0x00007ff7dd7f1000) liblapack.so.3 => /lib/x86_64-linux-gnu/liblapack.so.3 (0x00007ff7dd0f6000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff7dd017000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff7dce36000) libblas.so.3 => /lib/x86_64-linux-gnu/libblas.so.3 (0x00007ff7dcdd3000) libreadline.so.8 => /lib/x86_64-linux-gnu/libreadline.so.8 (0x00007ff7dcd7b000) libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007ff7dccdf000) liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007ff7dccb0000) libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007ff7dcc9d000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff7dcc7e000) libtirpc.so.3 => /lib/x86_64-linux-gnu/libtirpc.so.3 (0x00007ff7dcc50000) libicuuc.so.72 => /lib/x86_64-linux-gnu/libicuuc.so.72 (0x00007ff7dca52000) libicui18n.so.72 => /lib/x86_64-linux-gnu/libicui18n.so.72 (0x00007ff7dc726000) libgomp.so.1 => /lib/x86_64-linux-gnu/libgomp.so.1 (0x00007ff7dc6de000) /lib64/ld-linux-x86-64.so.2 (0x00007ff7ddc74000) libopenblas.so.0 => /lib/x86_64-linux-gnu/libopenblas.so.0 (0x00007ff7da3f0000) libgfortran.so.5 => /lib/x86_64-linux-gnu/libgfortran.so.5 (0x00007ff7da126000) libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007ff7da0f3000) libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007ff7da0a1000) libicudata.so.72 => /lib/x86_64-linux-gnu/libicudata.so.72 (0x00007ff7d82cf000) libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007ff7d80b5000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff7d8095000) libquadmath.so.0 => /lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007ff7d804e000) libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007ff7d7f74000) libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007ff7d7f47000) libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007ff7d7f41000) libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007ff7d7f33000) libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007ff7d7f2c000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007ff7d7f1b000) root at fb498fe53700:/# ls -l /lib/x86_64-linux-gnu/liblapack.so.3 lrwxrwxrwx 1 root root 49 Nov 27 2022 /lib/x86_64-linux-gnu/liblapack.so.3 -> /etc/alternatives/liblapack.so.3-x86_64-linux-gnu root at fb498fe53700:/# ls -l /lib/x86_64-linux-gnu/libblas.so.3 lrwxrwxrwx 1 root root 47 Nov 27 2022 /lib/x86_64-linux-gnu/libblas.so.3 -> /etc/alternatives/libblas.so.3-x86_64-linux-gnu root at fb498fe53700:/# the /etc/alternatives mechanism you are after. (That was from rocker/r-base, a quick way for me to get to clean and current Debian build.) Dirk -- dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
Ramon Diaz-Uriarte
2023-Dec-30 18:51 UTC
[R-sig-Debian] custom built R will not change BLAS/LAPACK with update-alternatives
Thanks. I answer below. And now I realize I must have read this not paying enough attention: "You can specify a particular BLAS library via a value for the configuration option --with-blas. If this is given with no =, its value is taken from the environment variable BLAS_LIBS, set for example in config.site. If neither the option nor the environment variable supply a value, a search is made for a suitable59 BLAS." (https://cran.r-project.org/doc/manuals/r-devel/R-admin.html#BLAS ), and footnote 59 says: "The search order is currently OpenBLAS, BLIS, ATLAS, platform-specific choices (see below) and finally a generic libblas." It is in the configure script of R: line 46396 searches for OpenBLAS, on 46453 it looks for BLIS, later (46510) for ATLAS, etc. Indeed, that is what I see looking more carefully at the output. If I have OpenBLAS, then it locates it immediately: configure: searching for an external BLAS configure: searching for BLAS in default libraries checking for dgemm_... no configure: searching for OpenBLAS checking for sgemm_ in -lopenblas... yes checking whether double complex BLAS can be used... yes If I don't, but I have ATLAS, it does this (OpenBLAS, then BLIS, then ATLAS) configure: searching for an external BLAS configure: searching for BLAS in default libraries checking for dgemm_... no configure: searching for OpenBLAS checking for sgemm_ in -lopenblas... no configure: searching for BLIS checking for sgemm_ in -lblis... no configure: searching for ATLAS checking for ATL_xerbla in -latlas... yes So I think what I am seeing is expected. But this would suggest your build machine did not have OpenBLAS, but it seems it did (from your ldd output); or else, maybe your machine had a config.site or BLAS_LIBS? On Sat, 30-December-2023, at 19:16:42, Dirk Eddelbuettel <edd at debian.org> wrote:> If you match the exact build-deps I use and the exact options from > debian/rules you should end up with the exact same output. As that is whay > you desire but do not get we need to drill down into where it deviates. FWIW > last time I build the Debian the (relevant) part (of the large) configure log > was below. What do you get for BLAS/LAPACK? > > > R is now configured for x86_64-pc-linux-gnu > > Source directory: . > Installation directory: /usr > > C compiler: gcc -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 > Fortran fixed-form compiler: gfortran -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -fcf-protection > > Default C++ compiler: g++ -std=gnu++17 -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 > C++11 compiler: g++ -std=gnu++11 -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 > C++14 compiler: g++ -std=gnu++14 -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 > C++17 compiler: g++ -std=gnu++17 -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 > C++20 compiler: g++ -std=gnu++20 -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 > C++23 compiler: g++ -std=gnu++23 -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 > Fortran free-form compiler: gfortran -g -O2 -ffile-prefix-map=/build/r-base-4.3.2=. -fstack-protector-strong -fstack-clash-protection -fcf-protection > Obj-C compiler: > > Interfaces supported: X11, tcltk > External libraries: pcre2, readline, BLAS(generic), LAPACK(generic), curl > Additional capabilities: PNG, JPEG, TIFF, NLS, cairo, ICU > Options enabled: shared R library, R profiling, memory profiling > > Capabilities skipped: > Options not enabled: shared BLAS > > Recommended packages: no > >My configure log (from my "for real" builds) ============================================= R is now configured for x86_64-pc-linux-gnu Source directory: . Installation directory: /usr/local C compiler: gcc -O2 -g -march=native -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 Fortran fixed-form compiler: gfortran -g -O2 -march=native -fstack-protector-strong -fstack-clash-protection -fcf-protection Default C++ compiler: g++ -std=gnu++17 -O2 -g -march=native -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 C++11 compiler: g++ -std=gnu++11 -O2 -g -march=native -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 C++14 compiler: g++ -std=gnu++14 -O2 -g -march=native -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 C++17 compiler: g++ -std=gnu++17 -O2 -g -march=native -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 C++20 compiler: g++ -std=gnu++20 -O2 -g -march=native -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 C++23 compiler: g++ -std=gnu++23 -O2 -g -march=native -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 Fortran free-form compiler: gfortran -g -O2 -march=native -fstack-protector-strong -fstack-clash-protection -fcf-protection Obj-C compiler: Interfaces supported: X11, tcltk External libraries: pcre2, readline, BLAS(OpenBLAS), LAPACK(in blas), curl Additional capabilities: PNG, JPEG, TIFF, NLS, cairo, ICU Options enabled: shared R library, R profiling Capabilities skipped: Options not enabled: shared BLAS, memory profiling Recommended packages: yes Key differences: =============== - I am not using "-ffile-prefix-map" (but I can't imagine that being the cause of the issue) - I am configuring without memory profiling (but enabling memory profiling did not change things) - I am using "march=native" (but this is not the cause, since removing it gives me the same issues) - And the OpenBLAS, of course.> Despite the display of 'shared BLAS' not enabled, I still have > > root at fb498fe53700:/# ldd /usr/lib/R/modules/lapack.so > linux-vdso.so.1 (0x00007ffcb09c7000) > libR.so => /lib/libR.so (0x00007ff7dd7f1000) > liblapack.so.3 => /lib/x86_64-linux-gnu/liblapack.so.3 (0x00007ff7dd0f6000) > libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff7dd017000) > libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff7dce36000) > libblas.so.3 => /lib/x86_64-linux-gnu/libblas.so.3 (0x00007ff7dcdd3000) > libreadline.so.8 => /lib/x86_64-linux-gnu/libreadline.so.8 (0x00007ff7dcd7b000) > libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007ff7dccdf000) > liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007ff7dccb0000) > libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007ff7dcc9d000) > libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff7dcc7e000) > libtirpc.so.3 => /lib/x86_64-linux-gnu/libtirpc.so.3 (0x00007ff7dcc50000) > libicuuc.so.72 => /lib/x86_64-linux-gnu/libicuuc.so.72 (0x00007ff7dca52000) > libicui18n.so.72 => /lib/x86_64-linux-gnu/libicui18n.so.72 (0x00007ff7dc726000) > libgomp.so.1 => /lib/x86_64-linux-gnu/libgomp.so.1 (0x00007ff7dc6de000) > /lib64/ld-linux-x86-64.so.2 (0x00007ff7ddc74000) > libopenblas.so.0 => /lib/x86_64-linux-gnu/libopenblas.so.0 (0x00007ff7da3f0000) > libgfortran.so.5 => /lib/x86_64-linux-gnu/libgfortran.so.5 (0x00007ff7da126000) > libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007ff7da0f3000) > libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007ff7da0a1000) > libicudata.so.72 => /lib/x86_64-linux-gnu/libicudata.so.72 (0x00007ff7d82cf000) > libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007ff7d80b5000) > libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff7d8095000) > libquadmath.so.0 => /lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007ff7d804e000) > libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007ff7d7f74000) > libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007ff7d7f47000) > libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007ff7d7f41000) > libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007ff7d7f33000) > libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007ff7d7f2c000) > libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007ff7d7f1b000) > root at fb498fe53700:/# ls -l /lib/x86_64-linux-gnu/liblapack.so.3 > lrwxrwxrwx 1 root root 49 Nov 27 2022 /lib/x86_64-linux-gnu/liblapack.so.3 -> /etc/alternatives/liblapack.so.3-x86_64-linux-gnu > root at fb498fe53700:/# ls -l /lib/x86_64-linux-gnu/libblas.so.3 > lrwxrwxrwx 1 root root 47 Nov 27 2022 /lib/x86_64-linux-gnu/libblas.so.3 -> /etc/alternatives/libblas.so.3-x86_64-linux-gnu > root at fb498fe53700:/#~/tmp/R4/R-4.3.2-85742/modules $ ldd lapack.so linux-vdso.so.1 (0x00007ffd96786000) libR.so => /usr/lib/libR.so (0x00007f9d9d174000) libopenblas.so.0 => /usr/lib/x86_64-linux-gnu/libopenblas.so.0 (0x00007f9d9ace0000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9d9ac01000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9d9aa1f000) libblas.so.3 => /usr/lib/x86_64-linux-gnu/libblas.so.3 (0x00007f9d9a9a8000) libreadline.so.8 => /lib/x86_64-linux-gnu/libreadline.so.8 (0x00007f9d9a951000) libpcre2-8.so.0 => /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f9d9a8b9000) liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f9d9a891000) libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f9d9a87e000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f9d9a861000) libtirpc.so.3 => /lib/x86_64-linux-gnu/libtirpc.so.3 (0x00007f9d9a832000) libicuuc.so.72 => /usr/lib/x86_64-linux-gnu/libicuuc.so.72 (0x00007f9d9a62b000) libicui18n.so.72 => /usr/lib/x86_64-linux-gnu/libicui18n.so.72 (0x00007f9d9a2ef000) libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007f9d9a29e000) /lib64/ld-linux-x86-64.so.2 (0x00007f9d9d60d000) libgfortran.so.5 => /usr/lib/x86_64-linux-gnu/libgfortran.so.5 (0x00007f9d99fcb000) libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f9d99f9a000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9d99f93000) libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f9d99f40000) libicudata.so.72 => /usr/lib/x86_64-linux-gnu/libicudata.so.72 (0x00007f9d9816e000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9d97f18000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9d97ef4000) libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f9d97e17000) libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f9d97de7000) libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f9d97de1000) libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f9d97dd2000) libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f9d97dcb000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f9d97db8000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9d97db3000) Interesting, you also have libopenblas.so.0 (in a different position).> > the /etc/alternatives mechanism you are after. (That was from rocker/r-base, > a quick way for me to get to clean and current Debian build.)ls -l /usr/lib/x86_64-linux-gnu/liblapack.so.3 lrwxrwxrwx 1 root root 49 Mar 28 2022 /usr/lib/x86_64-linux-gnu/liblapack.so.3 -> /etc/alternatives/liblapack.so.3-x86_64-linux-gnu And that is the one from OpenBLAS ls -l /etc/alternatives/liblapack.so.3-x86_64-linux-gnu lrwxrwxrwx 1 root root 56 Dec 30 20:44 /etc/alternatives/liblapack.so.3-x86_64-linux-gnu -> /usr/lib/x86_64-linux-gnu/openblas-openmp/liblapack.so.3 For libblas: ls -l /usr/lib/x86_64-linux-gnu/libblas.so.3 lrwxrwxrwx 1 root root 47 Mar 28 2022 /usr/lib/x86_64-linux-gnu/libblas.so.3 -> /etc/alternatives/libblas.so.3-x86_64-linux-gnu ls -l /etc/alternatives/libblas.so.3-x86_64-linux-gnu lrwxrwxrwx 1 root root 54 Dec 30 20:44 /etc/alternatives/libblas.so.3-x86_64-linux-gnu -> /usr/lib/x86_64-linux-gnu/openblas-openmp/libblas.so.3 To further try to understand, I've uninstalled openblas, but left atlas: Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/x86_64-linux-gnu/atlas/libblas.so.3 35 auto mode 1 /usr/lib/x86_64-linux-gnu/atlas/libblas.so.3 35 manual mode 2 /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 10 manual mode And then, configure shows its looking for this. configure: searching for an external BLAS configure: searching for BLAS in default libraries checking for dgemm_... no configure: searching for OpenBLAS checking for sgemm_ in -lopenblas... no configure: searching for BLIS checking for sgemm_ in -lblis... no configure: searching for ATLAS checking for ATL_xerbla in -latlas... yes And External libraries: pcre2, readline, BLAS(ATLAS), LAPACK(generic), curl ldd now shows ~/tmp/Rpt/R-patched/modules $ ldd lapack.so linux-vdso.so.1 (0x00007ffd83045000) libR.so => /usr/lib/libR.so (0x00007f89196e9000) liblapack.so.3 => /usr/lib/x86_64-linux-gnu/liblapack.so.3 (0x00007f8918fb5000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8918ed6000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8918cf4000) libblas.so.3 => /usr/lib/x86_64-linux-gnu/libblas.so.3 (0x00007f8918cb2000) libreadline.so.8 => /lib/x86_64-linux-gnu/libreadline.so.8 (0x00007f8918c59000) libpcre2-8.so.0 => /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f8918bc1000) liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f8918b99000) libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f8918b86000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f8918b69000) libtirpc.so.3 => /lib/x86_64-linux-gnu/libtirpc.so.3 (0x00007f8918b3a000) libicuuc.so.72 => /usr/lib/x86_64-linux-gnu/libicuuc.so.72 (0x00007f8918933000) libicui18n.so.72 => /usr/lib/x86_64-linux-gnu/libicui18n.so.72 (0x00007f89185f7000) libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007f89185a6000) /lib64/ld-linux-x86-64.so.2 (0x00007f8919b82000) libatlas.so.3 => /usr/lib/x86_64-linux-gnu/libatlas.so.3 (0x00007f8918226000) libgfortran.so.5 => /usr/lib/x86_64-linux-gnu/libgfortran.so.5 (0x00007f8917f53000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f8917f2d000) libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f8917efc000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8917ef7000) libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f8917ea4000) libicudata.so.72 => /usr/lib/x86_64-linux-gnu/libicudata.so.72 (0x00007f89160d2000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f8915e7a000) libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f8915d9f000) libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f8915d6f000) libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f8915d69000) libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f8915d5a000) libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f8915d51000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f8915d40000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8915d3b000) Now we see libatlas. R.> > Dirk-- Ramon Diaz-Uriarte Department of Biochemistry, Lab B-31 Facultad de Medicina Universidad Aut?noma de Madrid Arzobispo Morcillo, 4 28029 Madrid Spain Phone: +34-91-497-2412 Email: rdiaz02 at gmail.com r.diaz at uam.es ramon.diaz at iib.uam.es https://ligarto.org/rdiaz