Re: OpenBlas Pthread issue with R
> 1) We provide extra shared objects, libopenblasp, libopenblaso, etc
> and let R link against libopenblaso (o=openmp)
>
> Drawback: too ugly and makes the blas ecosystem overly complex.
> Also breaks the alternative mechanism
>
> 2) Add RPATH=/usr/lib/<..>/blas-pthread/ to all the corresponding
> ELFs of R.
>
> Drawback: ELFs of external packages might be linked against
> libblas.so.3 without RPATH.
>
> 3) ...
3) export LD_PRELOAD=/usr/lib/<..>/blas-pthread/ in the /usr/bin/R
script.
This may look ungraceful, but if /usr/bin/R is the only entrance
for normal R users, this LD_PRELOAD var may help override the
libblas.so.3 required by all the ELF binaries.
For us the BLAS/LAPACK maintainers, creating the following new
alternative groups should be relatively easy:
* /usr/lib/<triplet>/blas-pthread/libblas.so.3: candidates are
+ libopenblas0-pthread
+ libblis3-pthread
...
+ netlib (fallback)
* /usr/lib/<triplet>/blas-openmp/libblas.so.3: canddiates are
+ libopenblas0-openmp
+ libblis3-openmp
...
+ netlib (fallback)
* /usr/lib/<triplet>/blas-serial/libblas.so.3: candidates are
+ libopenblas0-serial
+ libblis3-serial
...
+ netlib (fallback)
Because we won't have to build new shared objects, or to introduce new
SONAMEs.
Reply to: