Bug 1092991 - xmmintrin.h:115:1: error: inlining failed in call to always_inline '_mm_setzero_ps': target specific option mismatch
Summary: xmmintrin.h:115:1: error: inlining failed in call to always_inline '_mm_setze...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: gstreamer1-plugins-base
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Brian Pepple
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-04-30 11:34 UTC by Kalev Lember
Modified: 2014-06-15 19:17 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-06-15 19:17:35 UTC


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
GNOME Bugzilla 670690 None None None 2019-06-13 09:52:21 UTC

Description Kalev Lember 2014-04-30 11:34:40 UTC
I am seeing a regression building gstreamer1-plugins-base with gcc 4.9.0. The same code built fine with gcc 4.8, but with 4.9 the i686 builds fail.

gstreamer1-plugins-base compiles in the SSE-optimized code for both i686/x86_64, and uses ORC at runtime for determining whether the platform supports SSE. Because of that (and because of Fedora's default %optflags), it isn't passing -msse to the compiler. I guess that's what trips the compiler over:

libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. -I../../gst-libs -I../../gst-libs -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DG_THREADS_MANDATORY -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT -Wall -Wdeclaration-after-statement -Wvla -Wpointer-arith -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs -g -I/usr/include/orc-0.4 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -c speex_resampler_float.c  -fPIC -DPIC -o .libs/libgstaudioresample_la-speex_resampler_float.o
In file included from resample.c:140:0,
                 from speex_resampler_float.c:27:
resample_sse.h: In function 'interpolate_product_single':
resample_sse.h:62:10: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
   __m128 sum = _mm_setzero_ps();
          ^
In file included from resample_sse.h:38:0,
                 from resample.c:140,
                 from speex_resampler_float.c:27:
resample_sse.h: In function 'inner_product_single':
/usr/lib/gcc/i686-redhat-linux/4.9.0/include/xmmintrin.h:115:1: error: inlining failed in call to always_inline '_mm_setzero_ps': target specific option mismatch
 _mm_setzero_ps (void)
 ^
In file included from resample.c:140:0,
                 from speex_resampler_float.c:27:
resample_sse.h:46:11: error: called from here
    __m128 sum = _mm_setzero_ps();
           ^

... and so on, rest of the errors cut out for brevity.

Comment 1 Jakub Jelinek 2014-04-30 14:09:17 UTC
If -msse{,2} etc. isn't passed, then you shouldn't use those intrinsics that require that ISA, unless you use __attribute__((target ("sse"))) or similar on the routine that calls it.
GCC 4.8 just didn't provide those intrinsics in the headers at all when corresponding ISA hasn't been enabled, GCC 4.9 now provides all of them in routines that through #pragma GCC target get the right ISA, which is needed so that you can use the intrinsics in #pragma GCC target/__attribute__((target ()))
routines.
So, this is a bug in gstreamer plugin.

Comment 2 Kalev Lember 2014-05-05 19:31:30 UTC
Thanks for the help. Reassigning to gstreamer1-plugins-base.

Comment 3 Wim Taymans 2014-05-23 15:52:23 UTC
Fixed by applying patches from upstream https://bugzilla.gnome.org/show_bug.cgi?id=670690


Note You need to log in before you can comment on or make changes to this bug.