Bug#738981: Fwd: Bug#738981: Switch to use generic_fpu for ARM

Lennart Sorensen lsorense at csclub.uwaterloo.ca
Mon Feb 24 17:27:36 UTC 2014


On Sat, Feb 22, 2014 at 10:05:35AM +0100, Thomas Orgis wrote:
> Am Fri, 21 Feb 2014 11:25:12 -0500
> schrieb "Lennart Sorensen" <lsorense at csclub.uwaterloo.ca>: 
> 
> > Testing with the neon build I get a return code of 4, and it seems to
> > be failing to run.  It was a pain to even get it to compile.  Using just
> > the configure option, the assembler complained about the NEON instructions
> > being invalid for the chosen cpu type.  Adding -mfpu=neon to the CFLAGS
> > made it able to compile, but it still crashes with illegal instruction.
> > I tried with CFLAGS set to -mcpu=cortex-a15 -mfpu=neon, and that still
> > gives illegal instruction when running it.
> 
> This is weird. What happened in debian side since
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=667653#35 ? We have
> the current code working on this setup:
> 
> device: iPod touch 4G with iOS 5.1.1
> toolchain: gcc 4.2.1(from Xcode 3.2.6) on OSX 10.6.8, clang 3.3(from Xcode 5.0.2) on OSX 10.9.1 (double checked)
> configure script option: --host=armv7-apple-darwin --with-cpu=arm_nofpu[neon] --with-audio=dummy --disable-shared --enable-static [--enable-int-quality]
> 
> Taihei also just checked the compliance of the decoder choices
> including NEON. That illegal instruction ... care to fire up the
> debugger to tell us where it actually occurs? The NEON assembly is
> written as plain assembler input (cpp + as), you can see the
> instructions we use right there and it doesn't differ from iOS.
> 
> > It might be a good idea to have the benchmark script actuall check the
> > return code of system()
> 
> Yes.
> 
> > I was building and testing under Debian armhf sid.
> > gcc (Debian 4.8.2-16) 4.8.2
> > 
> > CPU is a dual Cortex-A15 1.5GHz (TI OMAP 57xx).
> 
> 
> Alrighty then,

Any help from this:

(gdb) run
Starting program: /tmp/mpginst/usr/local/bin/mpg123 -e s16 -q --cpu NEON -t /convergence_-_points_of_view/01\ -\ Bleed.mp3 /convergence_-_points_of_view/02\ -\ Strike\ the\ end.mp3 /convergence_-_points_of_view/03\ -\ Listen.mp3 /convergence_-_points_of_view/04\ -\ Six\ feet\ under.mp3 /convergence_-_points_of_view/05\ -\ Always\ the\ same.mp3 /convergence_-_points_of_view/06\ -\ Breath.mp3 /convergence_-_points_of_view/07\ -\ Vanished\ memories.mp3 /convergence_-_points_of_view/08\ -\ Silent.mp3 /convergence_-_points_of_view/09\ -\ Nothing\ else.mp3 /convergence_-_points_of_view/10\ -\ Train\ to\ leave.mp3

Program received signal SIGILL, Illegal instruction.
0xb6fb9332 in INT123_dct64_neon () at dct64_neon.S:48
48              vpush           {q4-q7}
(gdb) where
#0  0xb6fb9332 in INT123_dct64_neon () at dct64_neon.S:48
#1  0xb6fab71c in INT123_synth_1to1_stereo_neon (bandPtr_l=<optimized out>, bandPtr_r=0x36400, fr=0x291d8) at synth.c:892
#2  0xb6fb8328 in INT123_do_layer3 (fr=0x291d8) at layer3.c:2060
#3  0xb6fa725e in decode_the_frame (fr=fr at entry=0x291d8) at libmpg123.c:699
#4  0xb6fa823e in mpg123_decode_frame_64 (mh=0x291d8, num=num at entry=0x28490 <framenum>, audio=audio at entry=0xbefff8e8, bytes=bytes at entry=0xbefff8f0) at libmpg123.c:838
#5  0x00012fce in play_frame () at mpg123.c:667
#6  0x0000b2f0 in main (sys_argc=<optimized out>, sys_argv=<optimized out>) at mpg123.c:1177

-- 
Len Sorensen



More information about the pkg-multimedia-maintainers mailing list