Bug#657885: ffmpeg: Illegal instruction on dreamplug (arm cpu)

Loïc Minier lool at dooz.org
Mon Jun 25 19:19:37 UTC 2012


tag 657885 + pending confirmed
stop

It seems the various "make install" runs for each flavour overwrite each
other's binaries so that in the end the neon binaries like
/usr/bin/ffmpeg get installed instead of the flavour-independent
binaries.

Fix committed in git, trying to prepare an upload.

   Cheers,

On Mon, Feb 06, 2012, Darwin Te wrote:
> 
> Installed ffmpeg-dbg and libav-dbg:
> 
> [user at debian 13] ~ > gdb ffmpeg 
> GNU gdb (GDB) 7.3-debian
> Copyright (C) 2011 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "arm-linux-gnueabi".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> Reading symbols from /usr/bin/ffmpeg...Reading symbols from /usr/lib/debug/.build-id/2d/1df8571d341bd8b7ea3d712c24490e74d6ed0d.debug...done.
> done.
> (gdb) run
> Starting program: /usr/bin/ffmpeg 
> [Thread debugging using libthread_db enabled]
> 
> Program received signal SIGILL, Illegal instruction.
> 0x00018cf8 in show_banner () at /build/buildd-libav_0.8-1-armel-M_oTHt/libav-0.8/cmdutils.c:510
> 510     /build/buildd-libav_0.8-1-armel-M_oTHt/libav-0.8/cmdutils.c: No such file or directory.
>         in /build/buildd-libav_0.8-1-armel-M_oTHt/libav-0.8/cmdutils.c
> (gdb) bt
> #0  0x00018cf8 in show_banner () at /build/buildd-libav_0.8-1-armel-M_oTHt/libav-0.8/cmdutils.c:510
> #1  0x0000f910 in main (argc=1, argv=0xbefffc74) at /build/buildd-libav_0.8-1-armel-M_oTHt/libav-0.8/ffmpeg.c:4377
> (gdb) info program
>         Using the running image of child Thread 0x41decfd0 (LWP 20534).
> Program stopped at 0x18cf8.
> It stopped with signal SIGILL, Illegal instruction.
> (gdb) 
> It stopped with signal SIGILL, Illegal instruction.
> (gdb) ^Z
> [1]+  Stopped                 gdb ffmpeg
> [04:10 - 0.21]
> [user at debian 14] ~ > cat /proc/20534/maps 
> 00008000-00021000 r-xp 00000000 08:02 130087     /usr/bin/ffmpeg
> 00028000-0002a000 rwxp 00018000 08:02 130087     /usr/bin/ffmpeg
> 0002a000-0004b000 rwxp 00000000 00:00 0          [heap]
> 40000000-4001d000 r-xp 00000000 08:02 212838     /lib/arm-linux-gnueabi/ld-2.13.so
> 4001d000-40024000 rwxp 00000000 00:00 0 
> 40024000-40025000 r-xp 0001c000 08:02 212838     /lib/arm-linux-gnueabi/ld-2.13.so
> 40025000-40026000 rwxp 0001d000 08:02 212838     /lib/arm-linux-gnueabi/ld-2.13.so
> 4002e000-4003b000 r-xp 00000000 08:02 130076     /usr/lib/arm-linux-gnueabi/libavdevice.so.53.2.0
> 4003b000-40042000 ---p 0000d000 08:02 130076     /usr/lib/arm-linux-gnueabi/libavdevice.so.53.2.0
> 40042000-40044000 rwxp 0000c000 08:02 130076     /usr/lib/arm-linux-gnueabi/libavdevice.so.53.2.0
> 40044000-40065000 r-xp 00000000 08:02 130080     /usr/lib/arm-linux-gnueabi/libavfilter.so.2.15.0
> 40065000-4006c000 ---p 00021000 08:02 130080     /usr/lib/arm-linux-gnueabi/libavfilter.so.2.15.0
> 4006c000-40071000 rwxp 00020000 08:02 130080     /usr/lib/arm-linux-gnueabi/libavfilter.so.2.15.0
> 40071000-40141000 r-xp 00000000 08:02 132526     /usr/lib/arm-linux-gnueabi/libavformat.so.53.20.0
> 40141000-40148000 ---p 000d0000 08:02 132526     /usr/lib/arm-linux-gnueabi/libavformat.so.53.20.0
> 40148000-40153000 rwxp 000cf000 08:02 132526     /usr/lib/arm-linux-gnueabi/libavformat.so.53.20.0
> 40153000-407e3000 r-xp 00000000 08:02 132523     /usr/lib/arm-linux-gnueabi/libavcodec.so.53.34.0
> 407e3000-407fb000 rwxp 00690000 08:02 132523     /usr/lib/arm-linux-gnueabi/libavcodec.so.53.34.0
> 407fb000-40d66000 rwxp 00000000 00:00 0 
> 40d66000-40d75000 r-xp 00000000 08:02 132579     /usr/lib/arm-linux-gnueabi/libpostproc.so.52.0.0
> 40d75000-40d7c000 ---p 0000f000 08:02 132579     /usr/lib/arm-linux-gnueabi/libpostproc.so.52.0.0
> 40d7c000-40d7d000 rwxp 0000e000 08:02 132579     /usr/lib/arm-linux-gnueabi/libpostproc.so.52.0.0
> 40d7d000-40dac000 r-xp 00000000 08:02 132604     /usr/lib/arm-linux-gnueabi/libswscale.so.2.1.0
> 40dac000-40db3000 ---p 0002f000 08:02 132604     /usr/lib/arm-linux-gnueabi/libswscale.so.2.1.0
> ..............
> .............
> ..............
> 
> 
> 
> Best regards,
> 
> Darwin
> 
> > Date: Sun, 5 Feb 2012 09:02:50 +0100
> > Subject: Re: Bug#657885: ffmpeg: Illegal instruction on dreamplug (arm cpu)
> > From: siretart at gmail.com
> > To: darwin_te at hotmail.com; 657885 at bugs.debian.org
> > 
> > On Sun, Jan 29, 2012 at 5:27 PM, Darwin Te <darwin_te at hotmail.com> wrote:
> > > Package: ffmpeg
> > > Version: 4:0.8-1
> > > Severity: normal
> > >
> > >
> > > Dear Maintainer,
> > >
> > >
> > > [16:16 - 1.25]
> > > [user at debian 1] ~ > ffmpeg
> > > Illegal instruction
> > > [16:16 - 1.25]
> > > [user at debian 2] ~ > gdb ffmpeg
> > > GNU gdb (GDB) 7.3-debian
> > > Copyright (C) 2011 Free Software Foundation, Inc.
> > > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> > > This is free software: you are free to change and redistribute it.
> > > There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> > > and "show warranty" for details.
> > > This GDB was configured as "arm-linux-gnueabi".
> > > For bug reporting instructions, please see:
> > > <http://www.gnu.org/software/gdb/bugs/>...
> > > Reading symbols from /usr/bin/ffmpeg...(no debugging symbols found)...done.
> > > (gdb) run
> > > Starting program: /usr/bin/ffmpeg
> > > [Thread debugging using libthread_db enabled]
> > >
> > > Program received signal SIGILL, Illegal instruction.
> > > 0x00018cf8 in ?? ()
> > > (gdb) disassemble $pc, $pc+0x20
> > > Cannot access memory at address 0x0
> > > Dump of assembler code from 0x18cf8 to 0x18d18:
> > > => 0x00018cf8:  movw    lr, #2011       ; 0x7db
> > >   0x00018cfc:  ldr     r2, [pc, #148]  ; 0x18d98
> > >   0x00018d00:  ldr     r4, [pc, #148]  ; 0x18d9c
> > >   0x00018d04:  ldr     r12, [r12]
> > >   0x00018d08:  ldr     r3, [r3, r2]
> > >   0x00018d0c:  add     r4, pc, r4
> > >   0x00018d10:  ldr     r2, [pc, #136]  ; 0x18da0
> > >   0x00018d14:  str     lr, [sp, #4]
> > > End of assembler dump.
> > >
> > >
> > > More system information:
> > >
> > > Initializing cgroup subsys cpu
> > > Linux version 3.1.10 (kelly at bbb.internal) (gcc version 4.4.1 (Sourcery G++ Lite 2010q1-202) ) #1 PREEMPT Fri Jan 20 10:47:05 MST 2012
> > > CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
> > > CPU: VIVT data cache, VIVT instruction cache
> > > Machine: Marvell GuruPlug Reference Board
> > 
> > I see. Your machine is not ARMv7 capable, yet, the baseline flavor of
> > libavcodec does seem to use ARMv7 instructions. cf.
> > http://blogs.arm.com/software-enablement/251-how-to-load-constants-in-assembly-for-arm-architecture/
> > 
> > Can you please retrieve a backtrace with libav-dbg installed? I need
> > to know where exactly in the code the offending instruction occurs in
> > order to determine if it's an upstream bug or a configuration issue.
> > 
> > Thanks
> > Reinhard
> > 
> > -- 
> > regards,
> >     Reinhard
>  		 	   		  

-- 
Loïc Minier





More information about the pkg-multimedia-maintainers mailing list