[Speex-dev] Speex-1.1.7 seems to crash with --enable-sse (on P3/GCC-3.2)..

Steve Kann stevek at stevek.com
Tue Mar 8 09:02:51 PST 2005


I tried building speex with SSE, and found that it crashes for me here:

[This is on RH=8.0]:

# libtool gdb ./src/speexenc
GNU gdb Red Hat Linux (5.2.1-4)
[...]
This GDB was configured as "i386-redhat-linux"...
(gdb) r  --rate 8000 --16bit -n /dev/zero /tmp/foo
Starting program: /usr/src/speex-1.1.7/src/.libs/lt-speexenc --rate 8000 
--16bit -n /dev/zero /tmp/foo
Encoding 8000 Hz audio using narrowband mode (mono)

Program received signal SIGSEGV, Segmentation fault.
fir_mem2_10 (x=0x8054a88, _num=0x8055e94, y=0x805508c, N=160, ord=10, 
_mem=0x80560ac)
    at /usr/lib/gcc-lib/i386-redhat-linux/3.2/include/xmmintrin.h:774
774     {
(gdb)
(gdb) bt
#0  fir_mem2_10 (x=0x8054a88, _num=0x8055e94, y=0x805508c, N=160, 
ord=10, _mem=0x80560ac)
    at /usr/lib/gcc-lib/i386-redhat-linux/3.2/include/xmmintrin.h:774
#1  0x40020add in fir_mem2 (x=0x8054a88, _num=0x8055e94, y=0x805508c, 
N=160, ord=0, _mem=0x1) at filters_sse.h:330
#2  0x40016c23 in nb_encode (state=0x8054990, vin=0xbfffd420, 
bits=0xbfffeaa0) at nb_celp.c:351
#3  0x400215f4 in speex_encode_int (state=0x8054990, in=0xbfffead0, 
bits=0xbfffeaa0) at speex.c:141
#4  0x0804a089 in main (argc=-80, argv=0xbffffad4) at speexenc.c:688
#5  0x420158d4 in __libc_start_main () from /lib/i686/libc.so.6
(gdb) q
The program is running.  Exit anyway? (y or n) y


If I build without sse, things are OK.

This box is running RH-8 on a PIII (katmai), which seems to support sse:
flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca 
cmov pat pse36 mmx fxsr sse

If I compile the same thing on another box with an Athlon CPU instead, 
it seems to work without crashing..

I guess it's not critical in this case, but does anyone know if this is 
an issue with the SSE intrinsics in gcc-3.2, or is it a CPU-support 
issue (or something else?).

-SteveK




More information about the Speex-dev mailing list