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. However, as we still officially support 586 processors on i386, the customary solution is to to disable SSE optimizations entirely for i386. See [1] for some examples. To reproduce this issue, you can use vmdebootstrap(8) and QEMU to quickly recreate such an environment, and use the autopkgtest submitted in #781996 [2] to run the tests against the locally installed binaries: $ sudo vmdebootstrap \ --size 2g \ --owner <YOUR-USERNAME> \ --enable-dhcp \ --mirror http://http.debian.net/debian \ --configure-apt \ --distribution sid \ --arch i386 \ --foreign /usr/bin/qemu-i386-static \ --no-kernel \ --package linux-image-586 \ --package autopkgtest \ --image sid.raw $ qemu-system-i386 -enable-kvm -cpu pentium sid.raw Then, in the guest, execute the autopkgtest command from #781996. Regards, Christian [1] http://codesearch.debian.net/results/sse2%20path%3Adebian%2Frules/page_0 [2] https://bugs.debian.org/781996
signature.asc
Description: OpenPGP digital signature
-- debian-science-maintainers mailing list debian-science-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-science-maintainers