Hello, CPU-related USE flags (SSE* in particular) were dropped from spandsp per bug 371991 due to SSE4 ambiguity. However, in the latest 0.0.6_pre21 version SSE4-related flags are separated for SSE4.1, SSE4.2 and SSE4a. Please note, that these configure flags not only add -msse* compiler flags, but also control GCC intrinsics inside the code, thus they can't be replaced by user's CFLAGS alone. So, please, restore all flags, attaches patches does this. SSE5 is omitted because the latest stable gcc-4.6.3 doesn't support it yet.
Created attachment 341142 [details, diff] spandsp-0.0.6_pre21.ebuild.diff
Created attachment 341144 [details, diff] metadata.xml.diff
(In reply to comment #0) > Hello, > > CPU-related USE flags (SSE* in particular) were dropped from spandsp per bug > 371991 due to SSE4 ambiguity. > > However, in the latest 0.0.6_pre21 version SSE4-related flags are separated > for SSE4.1, SSE4.2 and SSE4a. Please note, that these configure flags not > only add -msse* compiler flags, but also control GCC intrinsics inside the > code, thus they can't be replaced by user's CFLAGS alone. Ah indeed, sorry I missed that. > So, please, restore all flags, attaches patches does this. SSE5 is omitted > because the latest stable gcc-4.6.3 doesn't support it yet. And it never will, since SSE5 will never exist on real silicon...
Created attachment 341576 [details, diff] spandsp-0.0.6_pre21-sse4x.patch spandsp fails with sse41 and sse42, because wrong gcc options are set in configure: -msse41 and -msse42 instead of -msse4.1 and -msse4.2 (this is true at least for gcc 4.6 and gcc 4.7, I hadn't check with older versions). This patch fixes configure.
Created attachment 341580 [details, diff] spandsp-0.0.6_pre21.ebuild.diff Update ebuild to: 1) accomodate sse41/sse42 patch; 2) use EAPI 5.
Sorry this has taken so long. After deleting build system things (config*, Makefile*) I see [mattst88:~/spandsp-0.0.6] % grep -r _USE_SSE * | sort -u src/complex_vector_float.c:#if defined(__GNUC__) && defined(SPANDSP_USE_SSE3) src/mmx_sse_decs.h:#if defined(SPANDSP_USE_SSE) src/mmx_sse_decs.h:#if defined(SPANDSP_USE_SSE2) src/mmx_sse_decs.h:#if defined(SPANDSP_USE_SSE3) src/mmx_sse_decs.h:#if defined(SPANDSP_USE_SSE4_1) src/mmx_sse_decs.h:#if defined(SPANDSP_USE_SSE4_2) src/mmx_sse_decs.h:#if defined(SPANDSP_USE_SSE4A) src/mmx_sse_decs.h:#if defined(SPANDSP_USE_SSE5) src/vector_float.c:#if defined(__GNUC__) && defined(SPANDSP_USE_SSE2) The preprocessor checks in src/mmx_sse_decs.h simply guard the inclusion of *mmintrin.h headers and don't control any code. As such, it looks to me that only SSE2 and SSE3 (and MMX) are actually useful flags. I added back MMX, SSE2, and SSE3 use flags, but didn't commit the SSE4 patch or metadata change since they're not necessary with just these flags. Let me know if anything seems not right to you. Thanks a bunch for the bug and your patience.