freeswitch / spandsp

SpanDSP is a low-level signal processing library that modulates and demodulates signals commonly used in telephony, such as the "noise" generated by a fax modem or DTMF touchpad.
Other
144 stars 118 forks source link

Build failure with MMX on i686 / pentium4 #21

Open ffontaine opened 3 years ago

ffontaine commented 3 years ago

MMX fails to build on i686 / pentium4:

gsm0610_rpe.c: In function 'gsm0610_rpe_encoding':
gsm0610_rpe.c:132:5: error: invalid 'asm': invalid constraints for operand
     __asm__ __volatile__(
     ^~~~~~~

It seems that the build failure is raised by the following instruction: https://github.com/freeswitch/spandsp/blob/d2661839b90346a1f4b8fa5b1bd0b9ab0002b5f9/src/gsm0610_rpe.c#L135

Full build log can be found here: http://autobuild.buildroot.org/results/3e9/3e986c3109c392afe47fc98446a2563ac9776cf6/build-end.log

xrobau commented 3 years ago

I noticed that the configure script is EXPLICITLY enabling mmx, sse and sse2. If you're trying to build for a CPU that doesn't support MMX, you'll need to fix your build script.

./configure --target=i686-buildroot-linux-uclibc --host=i686-buildroot-linux-uclibc --build=x86_64-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix="" --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared  --disable-builtin-tiff --enable-mmx --enable-sse --enable-sse2 --disable-sse3 --disable-ssse3 --disable-sse4-1 --disable-sse4-2

Suggest closing this as invalid.