Bug#781998: libopenblas-base: i386 binaries crash on 586 processors because they don't support SSE instructions

Sébastien Villemot sebastien at debian.org
Tue Apr 28 18:37:10 UTC 2015


Le lundi 06 avril 2015 à 12:16 +0200, Christian Kastner a écrit :
> Package: libopenblas-base
> Version: 0.2.12-1
> Severity: important
> 
> Hi,
> 
> When using the libraries provided by libopenblas-base:i386 on a computer
> with a Pentium (586) processor, a program may crash with SIGILL. Here is
> the tail of the output of the upstream test suite:
> 
>   |  OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat3 < ./sblat3.dat
>   |  Makefile:59: recipe for target 'level3' failed
>   |
>   |  Program received signal SIGILL: Illegal instruction.
>   |
>   |  Backtrace for this error:
>   |  #0  0xB76D9D6E
>   |  #1  0xB76DA3C7
>   |  #2  0xB77D9CDF
>   |  #3  0xB67A9388
>   |  Illegal instruction
> 
> 
> This is because the libraries were built with SSE optimizations enabled.
> 
> The decision to use SSE appears to be determined at compile-time -- see
> cpuid.h and cpuid_x86.c -- so the optimizations are based on whatever
> the buildd supports, and not what the target supports.

Thanks for your report.

However your diagnostic is slightly incorrect. On x86 archs, OpenBLAS is
compiled with the so-called "dynamic arch" feature. The library binary
contains kernels optimized for several different CPUs, and the right
kernel is selected at runtime after detecting the CPU.

So your problem comes either because the binary does not contain a
kernel suitable for 586, or because the CPU detection goes wrong.

I know that CPU detection does not always work very well in VMs (see
#743490 for an example). Did your crash occur on real 586 hardware, or
in a VM?

Cheers,

-- 
 .''`.    Sébastien Villemot
: :' :    Debian Developer
`. `'     http://sebastien.villemot.name
  `-      GPG Key: 4096R/381A7594


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/debian-science-maintainers/attachments/20150428/405bf27b/attachment-0001.sig>


More information about the debian-science-maintainers mailing list