On 11/24/2014 05:06 PM, Andrey Rahmatullin wrote:
> I cannot reproduce this with these libblas3 and libopenblas-base.
> Please show:
> 
> readlink -f /usr/lib/libblas.so.3
> ldd -r /usr/lib/libblas.so.3
> nm -D /usr/lib/libblas.so.3 | fgrep cgemm3m_nn
> nm -D /usr/lib/libopenblas.so.0 | fgrep cgemm3m_nn
> 

$ readlink -f /usr/lib/libblas.so.3
/usr/lib/openblas-base/libblas.so.3

$ ldd -r /usr/lib/libblas.so.3
        linux-vdso.so.1 (0x00007ffff75dd000)
        libopenblas.so.0 => /usr/local/lib/libopenblas.so.0 (0x00007f98b1e3f000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f98b1b3e000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007f98b1920000)
        libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3
(0x00007f98b1602000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f98b1259000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f98b41d2000)
        libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0
(0x00007f98b101b000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 
(0x00007f98b0e05000)
undefined symbol: cgemm3m_nn    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_tn    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_rn    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_cn    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_nt    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_tt    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_rt    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_ct    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_nr    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_tr    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_rr    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_cr    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_nc    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_tc    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_rc    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_cc    (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_nn     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_tn     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_rn     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_cn     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_nt     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_tt     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_rt     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_ct     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_nr     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_tr     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_rr     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_cr     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_nc     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_tc     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_rc     (/usr/lib/libblas.so.3)
undefined symbol: cgemm3m_thread_cc     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_nn    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_tn    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_rn    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_cn    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_nt    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_tt    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_rt    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_ct    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_nr    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_tr    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_rr    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_cr    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_nc    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_tc    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_rc    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_cc    (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_nn     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_tn     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_rn     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_cn     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_nt     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_tt     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_rt     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_ct     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_nr     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_tr     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_rr     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_cr     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_nc     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_tc     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_rc     (/usr/lib/libblas.so.3)
undefined symbol: zgemm3m_thread_cc     (/usr/lib/libblas.so.3)

$ nm -D /usr/lib/libblas.so.3 | fgrep cgemm3m_nn
                 U cgemm3m_nn
$ nm -D /usr/lib/libopenblas.so.0 | fgrep cgemm3m_nn
0000000000210b10 T cgemm3m_nn

/usr/lib/libblas.so.3 points to /usr/lib/openblas-base/libblas.so.3 via
/etc/alternatives/libblas.so.3. When I manually change this link to
point to /usr/lib/libopenblas.so.0, importing numpy works (as one would
expect from nm's output). /usr/lib/libopenblas.so.0 points to
/usr/lib/libopenblasp-r0.2.12.so.

I don't know why Debian's alternatives system decided to point to
/usr/lib/openblas-base/libblas.so.3 instead of
/usr/lib/libopenblas.so.0, which contains the required symbols. I don't
understand neither why libopenblas/libblas.so.3 doesn't contain all
those ?gemm3m_* symbols on my system. Anyway, this is probably a bug in
libopenblas-base? I tried reinstalling libopenblas-base, but to no avail.


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to