Bug#784647: libav-tools: avconv fails with Illegal Instruction
Bernhard Übelacker
bernhardu at vr-web.de
Sat May 9 15:09:26 UTC 2015
Hello Vittorio,
I could reproduce it inside a qemu VM (-cpu pentium).
----------- (without debug information)
Program received signal SIGILL, Illegal instruction.
0xb6691c34 in ?? () from /usr/lib/i386-linux-gnu/libopencv_imgproc.so.2.4
(gdb) bt
#0 0xb6691c34 in ?? () from /usr/lib/i386-linux-gnu/libopencv_imgproc.so.2.4
#1 0xb65f0406 in ?? () from /usr/lib/i386-linux-gnu/libopencv_imgproc.so.2.4
#2 0xb7fed86e in call_init (l=<optimized out>, argc=argc at entry=4, argv=argv at entry=0xbffff764, env=env at entry=0xbffff778) at dl-init.c:78
#3 0xb7fed964 in call_init (env=0xbffff778, argv=0xbffff764, argc=4, l=<optimized out>) at dl-init.c:36
#4 _dl_init (main_map=0xb7fff930, argc=4, argv=0xbffff764, env=0xbffff778) at dl-init.c:126
#5 0xb7fdfd3f in _dl_start_user () from /lib/ld-linux.so.2
(gdb) display /i $pc
1: x/i $pc
=> 0xb6691c34: cmovle %edi,%edx
(gdb)
----------- (with debug information)
Program received signal SIGILL, Illegal instruction.
0xb6626ae4 in saturate_cast<short> (v=32768) at /usr/include/opencv2/core/operations.hpp:179
179 v : v > 0 ? SHRT_MAX : SHRT_MIN);
(gdb) bt
#0 0xb6626ae4 in saturate_cast<short> (v=32768) at /usr/include/opencv2/core/operations.hpp:179
#1 saturate_cast<short> (v=32768) at /usr/include/opencv2/core/operations.hpp:184
#2 cv::initInterTab2D (method=method at entry=1, fixpt=fixpt at entry=false) at /home/benutzer/opencv/opencv-2.4.9.1+dfsg/modules/imgproc/src/imgwarp.cpp:245
#3 0xb65f0406 in initAllInterTab2D () at /home/benutzer/opencv/opencv-2.4.9.1+dfsg/modules/imgproc/src/imgwarp.cpp:290
#4 __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at /home/benutzer/opencv/opencv-2.4.9.1+dfsg/modules/imgproc/src/imgwarp.cpp:298
#5 _GLOBAL__sub_I_imgwarp.cpp(void) () at /home/benutzer/opencv/opencv-2.4.9.1+dfsg/modules/imgproc/src/imgwarp.cpp:4247
#6 0xb7fed86e in call_init (l=<optimized out>, argc=argc at entry=4, argv=argv at entry=0xbffff6f4, env=env at entry=0xbffff708) at dl-init.c:78
#7 0xb7fed964 in call_init (env=0xbffff708, argv=0xbffff6f4, argc=4, l=<optimized out>) at dl-init.c:36
#8 _dl_init (main_map=0xb7fff930, argc=4, argv=0xbffff6f4, env=0xbffff708) at dl-init.c:126
#9 0xb7fdfd3f in _dl_start_user () from /lib/ld-linux.so.2
(gdb) display /i $pc
1: x/i $pc
=> 0xb6626ae4 <cv::initInterTab2D(int, bool)+1156>: cmovle %edi,%edx
(gdb)
-----------
Opencv seems to be built optimized for i686 in Jessie.
(-march=i686 is given to c++)
Attached is a patch similiar to one used for Wheezy
to optimize for i486.
A Opencv compiled with this patch (-march=i586) does
not crash with SIGILL.
Kind regards,
Bernhard
More information about the debian-science-maintainers
mailing list