Hello all,

I posted this initially to Gentoo forums, but after I managed to get a
gdb dump I thought I could post it here.

I have a little box (Epia M6000 with a small 600MHz cpu, basically an
i686 without cmov) that I updated recently after a year of doing nothing
with it. I changed from CHOST=i586 to i686 (that's what the gentoo wiki
suggests for these cpus). The update went fine it seems - no issues
except the one with mjpegtools. 
 
I want to use a script which uses these commands:

png2yuv -n1 -f25 -It -L1 -v0 -j some.png |  mpeg2enc -q 2 -a 2 -n p -f 8
-v 0 -o some.m2v

But it fails every time with "Illegal intruction". Here's what happens
when I do it manually:

png2yuv -n1 -f25 -It -L1 -j /usr/share/vdr/burn/sinlich-1.png |
mpeg2enc -q 2 -a 2 -n p -f 8 -o some.m2v 
    INFO: [png2yuv] Parsing & checking input files. 
    INFO: [mpeg2enc] SETTING MMX for MOTION! 
    INFO: [mpeg2enc] SETTING MMX for TRANSFORM! 
    INFO: [mpeg2enc] SETTING MMX for PREDICTION! 
    INFO: [png2yuv] Image dimensions are 720x576 
    INFO: [png2yuv] Movie frame rate is:  25.000000 frames/second 
    INFO: [png2yuv] Interlaced frames, top field first. 
    INFO: [png2yuv] Frame size:  720 x 576 
    INFO: [png2yuv] Now generating YUV4MPEG stream. 
    INFO: [mpeg2enc] Selecting DVD output profile 
    INFO: [mpeg2enc] Interlaced input - selecting interlaced encoding. 
    INFO: [mpeg2enc] Encoding MPEG-2 video to some.m2v 
    INFO: [mpeg2enc] Horizontal size: 720 pel 
    INFO: [mpeg2enc] Vertical size: 576 pel 
    INFO: [mpeg2enc] Aspect ratio code: 2 = 4:3 display 
    INFO: [mpeg2enc] Frame rate code:   3 = 25.0 (PAL/SECAM VIDEO /
converted FILM) 
    INFO: [mpeg2enc] Bitrate: 7500 KBit/s 
    INFO: [mpeg2enc] Quality factor: 2 (Quantisation = 2) (1=best,
31=worst) 
    INFO: [mpeg2enc] Field order for input: top-field-first 
    INFO: [mpeg2enc] Sequence unlimited length 
    INFO: [mpeg2enc] Search radius: 16 
    INFO: [mpeg2enc] DualPrime: no 
    INFO: [mpeg2enc] Using one-pass rate controller 
    INFO: [mpeg2enc] GOP SIZE RANGE 9 TO 15 
    INFO: [mpeg2enc] Setting colour/gamma parameters to "PAL B/G" 
    INFO: [mpeg2enc] Progressive format frames = 0 
    INFO: [mpeg2enc] Using default unmodified quantization matrices 
    INFO: [mpeg2enc] Buffering 33 frames 
    INFO: [mpeg2enc] Signaling last frame = 0 
    INFO: [mpeg2enc] SETTING MMX and MMX for QUANTIZER! 
    INFO: [mpeg2enc] NEW GOP INIT length 15 
 Illegal instruction

I use gcc-4.1.1, glibc-2.4 and the said cpu which features mmx, 3dnow
and no cmov. For the backtrace my cflags were "-march=c3 -pipe -Os
-m3dnow".

All this is happening on a Gentoo box:

Here's emerge --info:

Portage 2.1.1-r2 (default-linux/x86/2006.1/desktop, gcc-4.1.1,
glibc-2.4-r4, 2.6.19.1 i686) 
 ================================================================= 
 System uname: 2.6.19.1 i686 VIA Samuel 2 
 Gentoo Base System version 1.12.6 
 Last Sync: Sun, 31 Dec 2006 08:20:01 +0000 
 ccache version 2.4 [enabled] 
 app-admin/eselect-compiler: [Not Present] 
 dev-java/java-config: [Not Present] 
 dev-lang/python:     2.4.3-r4 
 dev-python/pycrypto: 2.0.1-r5 
 dev-util/ccache:     2.4-r6 
 dev-util/confcache:  [Not Present] 
 sys-apps/sandbox:    1.2.17 
 sys-devel/autoconf:  2.13, 2.61 
 sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2,
1.10 
 sys-devel/binutils:  2.16.1-r3 
 sys-devel/gcc-config: 1.3.14 
 sys-devel/libtool:   1.5.22 
 virtual/os-headers:  2.6.17-r2 
 ACCEPT_KEYWORDS="x86" 
 AUTOCLEAN="yes" 
 CBUILD="i686-pc-linux-gnu" 
 CFLAGS="-Os -march=c3 -fomit-frame-pointer -pipe -m3dnow" 
 CHOST="i686-pc-linux-gnu" 
 CONFIG_PROTECT="/etc" 
 CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild
/etc/terminfo" 
 CXXFLAGS="-Os -march=c3 -fomit-frame-pointer -pipe -m3dnow" 
 DISTDIR="/video/portage/distfiles" 
 FEATURES="autoconfig ccache distlocks metadata-transfer sandbox sfperms
strict" 
 LANG="en_US" 
 LC_ALL="en_US" 
 LINGUAS="en" 
 MAKEOPTS="" 
 PKGDIR="/usr/portage/packages" 
 PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times
--compress --force --whole-file --delete --delete-after --stats
--timeout=180 --exclude='/distfiles' --exclude='/local'
--exclude='/packages'" 
 PORTAGE_TMPDIR="/video/portage-tmp" 
 PORTDIR="/video/portage" 
 PORTDIR_OVERLAY="/usr/local/portage" 
 SYNC="rsync://rsync.informatik.rwth-aachen.de/gentoo-portage" 
 USE="3dnow elibc_glibc
kernel_linux linguas_en lirc_devices_serial logrotate mmx ncurses nptl
readline udev userland_GNU 
x86 zlib" 
 Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS,
PORTAGE_RSYNC_EXTRA_OPTS

And here's the backtrace:

gdb mpeg2enc 
 GNU gdb 6.4 
 Copyright 2005 Free Software Foundation, Inc. 
 GDB is free software, covered by the GNU General Public License, and
you are 
 welcome to change it and/or distribute copies of it under certain
conditions. 
 Type "show copying" to see the conditions. 
 There is absolutely no warranty for GDB.  Type "show warranty" for
details. 
 This GDB was configured as "i686-pc-linux-gnu"...Using host
libthread_db library "/lib/libthread_db.so.1". 
 
 (gdb) run -q 2 -a 2 -n p -f 8 -v 2 -o sinlich.m2v sinlich.yuv 
 Starting program: /usr/bin/mpeg2enc -q 2 -a 2 -n p -f 8 -v 2 -o
sinlich.m2v sinlich.yuv 
 [Thread debugging using libthread_db enabled] 
 [New Thread -1211328848 (LWP 6913)] 
    INFO: [mpeg2enc] SETTING MMX for MOTION! 
    INFO: [mpeg2enc] SETTING MMX for TRANSFORM! 
    INFO: [mpeg2enc] SETTING MMX for PREDICTION! 
    INFO: [mpeg2enc] Selecting DVD output profile 
    INFO: [mpeg2enc] Interlaced input - selecting interlaced encoding. 
    INFO: [mpeg2enc] Encoding MPEG-2 video to sinlich.m2v 
    INFO: [mpeg2enc] Horizontal size: 720 pel 
    INFO: [mpeg2enc] Vertical size: 576 pel 
    INFO: [mpeg2enc] Aspect ratio code: 2 = 4:3 display 
    INFO: [mpeg2enc] Frame rate code:   3 = 25.0 (PAL/SECAM VIDEO /
converted FILM) 
    INFO: [mpeg2enc] Bitrate: 7500 KBit/s 
    INFO: [mpeg2enc] Quality factor: 2 (Quantisation = 2) (1=best,
31=worst) 
    INFO: [mpeg2enc] Field order for input: top-field-first 
    INFO: [mpeg2enc] Sequence unlimited length 
    INFO: [mpeg2enc] Search radius: 16 
    INFO: [mpeg2enc] DualPrime: no 
    INFO: [mpeg2enc] Using one-pass rate controller 
    INFO: [mpeg2enc] GOP SIZE RANGE 9 TO 15 
    INFO: [mpeg2enc] Setting colour/gamma parameters to "PAL B/G" 
    INFO: [mpeg2enc] Progressive format frames = 0 
    INFO: [mpeg2enc] Using default unmodified quantization matrices 
    INFO: [mpeg2enc] Buffering 33 frames 
 --DEBUG: [mpeg2enc] End of input stream detected 
    INFO: [mpeg2enc] Signaling last frame = 0 
    INFO: [mpeg2enc] SETTING MMX and MMX for QUANTIZER! 
 --DEBUG: [mpeg2enc] Split len = 0 
    INFO: [mpeg2enc] NEW GOP INIT length 15 
 --DEBUG: [mpeg2enc] Start 0 I 0 0 
 --DEBUG: [mpeg2enc] FIRST GOP INIT 
 --DEBUG: [mpeg2enc] Frame I T=60907 A=562500  Xi=0.00 Xp=0.00 Xb=0.00 
 
 Program received signal SIGILL, Illegal instruction. 
 [Switching to Thread -1211328848 (LWP 6913)] 
 0xb7e0a528 in fmax () from /lib/libm.so.6 
 (gdb) bt 
 #0  0xb7e0a528 in fmax () from /lib/libm.so.6 
 #1  0xb7f2a1ec in OnTheFlyRateCtl::InitNewPict () from
/usr/lib/libmpeg2encpp-1.8.so.0 
 #2  0xb7f22ddd in Picture::InitRateControl () from
/usr/lib/libmpeg2encpp-1.8.so.0 
 #3  0xb7f239c9 in Picture::QuantiseAndEncode () from
/usr/lib/libmpeg2encpp-1.8.so.0 
 #4  0xb7f27348 in SeqEncoder::EncodePicture () from
/usr/lib/libmpeg2encpp-1.8.so.0 
 #5  0xb7f2756e in SeqEncoder::Pass1EncodeFrame () from
/usr/lib/libmpeg2encpp-1.8.so.0 
 #6  0xb7f276bc in SeqEncoder::EncodeStream () from
/usr/lib/libmpeg2encpp-1.8.so.0 
 #7  0x0804ac75 in main () 
 (gdb) disass $pc-32 $pc+32 
 Dump of assembler code from 0xb7e0a508 to 0xb7e0a548: 
 0xb7e0a508 <__fpclassify+72>: add    %al,(%eax) 
 0xb7e0a50a <__fpclassify+74>: pop    %esi 
 0xb7e0a50b <__fpclassify+75>: pop    %ebp 
 0xb7e0a50c <__fpclassify+76>: ret 
 0xb7e0a50d <__fpclassify+77>: mov    $0x2,%eax 
 0xb7e0a512 <__fpclassify+82>: jmp    0xb7e0a4f1 <__fpclassify+49> 
 0xb7e0a514 <__fpclassify+84>: mov    $0x3,%al 
 0xb7e0a516 <__fpclassify+86>: jmp    0xb7e0a4f1 <__fpclassify+49> 
 0xb7e0a518 <__fpclassify+88>: nop 
 0xb7e0a519 <__fpclassify+89>: nop 
 0xb7e0a51a <__fpclassify+90>: nop 
 0xb7e0a51b <__fpclassify+91>: nop 
 0xb7e0a51c <__fpclassify+92>: nop 
 0xb7e0a51d <__fpclassify+93>: nop 
 0xb7e0a51e <__fpclassify+94>: nop 
 0xb7e0a51f <__fpclassify+95>: nop 
 0xb7e0a520 <fmax+0>: fldl   0x4(%esp) 
 0xb7e0a524 <fmax+4>: fldl   0xc(%esp) 
 0xb7e0a528 <fmax+8>: fucomi %st(0),%st 
 0xb7e0a52a <fmax+10>: fcmovu %st(1),%st 
 0xb7e0a52c <fmax+12>: fxch   %st(1) 
 0xb7e0a52e <fmax+14>: fucomi %st(1),%st 
 0xb7e0a530 <fmax+16>: fcmovb %st(1),%st 
 0xb7e0a532 <fmax+18>: fstp   %st(1) 
 0xb7e0a534 <fmax+20>: ret 
 0xb7e0a535 <fmax+21>: nop 
 0xb7e0a536 <fmax+22>: nop 
 0xb7e0a537 <fmax+23>: nop 
 0xb7e0a538 <fmax+24>: nop 
 0xb7e0a539 <fmax+25>: nop 
 0xb7e0a53a <fmax+26>: nop 
 0xb7e0a53b <fmax+27>: nop 
 0xb7e0a53c <fmax+28>: nop 
 0xb7e0a53d <fmax+29>: nop 
 0xb7e0a53e <fmax+30>: nop 
 0xb7e0a53f <fmax+31>: nop 
 0xb7e0a540 <fmin+0>: fldl   0x4(%esp) 
 0xb7e0a544 <fmin+4>: fldl   0xc(%esp) 
 End of assembler dump. 
 (gdb) info all-registers 
 eax            0x2d 45 
 ecx            0x76f5d 487261 
 edx            0x0 0 
 ebx            0xb7f352ec -1208790292 
 esp            0xbf8f62a4 0xbf8f62a4 
 ebp            0xbf8f6310 0xbf8f6310 
 esi            0xbf8f65a0 -1081121376 
 edi            0x804f380 134542208 
 eip            0xb7e0a528 0xb7e0a528 <fmax+8> 
 eflags         0x210246 2163270 
 cs             0x73 115 
 ss             0x7b 123 
 ds             0x7b 123 
 es             0x7b 123 
 fs             0x0 0 
 gs             0x33 51 
 st0            2 (raw 0x40008000000000000000) 
 st1            1.9999649999999999927524640952469781 (raw
0x3ffffffeda6612839000) 
 st2            -nan(0xe0c0000097b) (raw 0xffff00000e0c0000097b) 
 st3            -nan(0xffffffff0000ffff) (raw 0xffffffffffff0000ffff) 
 st4            -nan(0x6ca00000000) (raw 0xffff000006ca00000000) 
 st5            -nan(0xffff00000000) (raw 0xffff0000ffff00000000) 
 st6            -nan(0xfff8b80100031eed) (raw 0xfffffff8b80100031eed) 
 st7            0 (raw 0x00000000000000000000) 
 fctrl          0x37f 895 
 fstat          0x3120 12576 
 ftag           0xfff 4095 
 fiseg          0x73 115 
 fioff          0xb7e0a524 -1210014428 
 foseg          0x7b 123 
 fooff          0xbf8f62b0 -1081122128 
 fop            0x544 1348 
 xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0,
0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 
     0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000} 
 xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0,
0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 
     0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000} 
 xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0,
0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 
     0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000} 
 xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0,
0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 
     0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000} 
 xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0,
0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 
     0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000} 
 ---Type <return> to continue, or q <return> to quit--- 
 xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0,
0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 
     0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000} 
 xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0,
0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 
     0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000} 
 xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0,
0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 
     0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000} 
 mxcsr          0x1f80 8064 
 mm0            {uint64 = 0xfff8b80100031eed, v2_int32 = {0x31eed,
0xfff8b801}, v4_int16 = {0x1eed, 0x3, 0xb801, 0xfff8}, v8_int8 = {0xed,
0x1e, 0x3, 0x0, 
     0x1, 0xb8, 0xf8, 0xff}} 
 mm1            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0,
0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} 
 mm2            {uint64 = 0x8000000000000000, v2_int32 = {0x0,
0x80000000}, v4_int16 = {0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 
     0x0, 0x80}} 
 mm3            {uint64 = 0xfffeda6612839000, v2_int32 = {0x12839000,
0xfffeda66}, v4_int16 = {0x9000, 0x1283, 0xda66, 0xfffe}, v8_int8 =
{0x0, 0x90, 0x83, 
     0x12, 0x66, 0xda, 0xfe, 0xff}} 
 mm4            {uint64 = 0xe0c0000097b, v2_int32 = {0x97b, 0xe0c},
v4_int16 = {0x97b, 0x0, 0xe0c, 0x0}, v8_int8 = {0x7b, 0x9, 0x0, 0x0,
0xc, 0xe, 0x0, 0x0}} 
 mm5            {uint64 = 0xffffffff0000ffff, v2_int32 = {0xffff,
0xffffffff}, v4_int16 = {0xffff, 0x0, 0xffff, 0xffff}, v8_int8 = {0xff,
0xff, 0x0, 0x0, 
     0xff, 0xff, 0xff, 0xff}} 
 mm6            {uint64 = 0x6ca00000000, v2_int32 = {0x0, 0x6ca},
v4_int16 = {0x0, 0x0, 0x6ca, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0xca,
0x6, 0x0, 0x0}} 
 mm7            {uint64 = 0xffff00000000, v2_int32 = {0x0, 0xffff},
v4_int16 = {0x0, 0x0, 0xffff, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0xff,
0xff, 0x0, 0x0}} 
 (gdb)

Help is appreciated. I just hope it's not all my fault :-)

Regards
Sebastian

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Mjpeg-users mailing list
Mjpeg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mjpeg-users

Reply via email to