GNOME Bugzilla – Bug 791757
Configuring Gimp with CFLAGS='-O2 -mno-sse4.2 -mno-sse4.1 -pipe' fails to compile
Last modified: 2017-12-19 11:21:48 UTC
Hi! Some people pass explicit counterparts to `-march=native` for compilation and it turned out [1] that CFLAGS='-O2 -mno-sse4.2 -mno-sse4.1 -pipe' failes compilation of app/operations/layer-modes/gimpoperationnormal-sse4.c complaining that `_mm_blend_ps` cannot be inlined due to a "target specific option mismatch". No problem if you consider this case too specific to handle; just thought you should know. To reproduce quickly: # tar xf gimp-2.9.8.tar.bz2 # cd gimp-2.9.8 # ./configure CFLAGS='-O2 -mno-sse4.2 -mno-sse4.1 -pipe' GEGL="$(which gegl-0.3)" # cd app/operations/layer-modes/ # make V=1 gimpoperationnormal-sse4.o gcc -DHAVE_CONFIG_H -I. -I../../.. -DG_LOG_DOMAIN=\"Gimp-Layer-Modes\" -I../../.. -I../../.. -I../../../app -I../../../app -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/libpng16 -pthread -I/usr/include/gegl-0.3 -I/usr/include/json-glib-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/babl-0.1 -pthread -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/local/include -DGIMP_DISABLE_DEPRECATED -DBABL_DISABLE_DEPRECATED -DGSEAL_ENABLE -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -O2 -mno-sse4.2 -mno-sse4.1 -pipe -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Werror=missing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wlogical-op -Wtype-limits -fno-common -fdiagnostics-show-option -Wreturn-type -MT gimpoperationnormal-sse4.o -MD -MP -MF .deps/gimpoperationnormal-sse4.Tpo -c -o gimpoperationnormal-sse4.o gimpoperationnormal-sse4.c In file included from gimpoperationnormal-sse4.c:33:0: gimpoperationnormal-sse4.c: In function ‘gimp_operation_normal_process_sse4’: /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/include/smmintrin.h:191:1: error: inlining failed in call to always_inline ‘_mm_blend_ps’: target specific option mismatch _mm_blend_ps (__m128 __X, __m128 __Y, const int __M) ^ gimpoperationnormal-sse4.c:112:29: error: called from here out_pixel = _mm_blend_ps (out_pixel, out_alpha, 0x08); ^ In file included from gimpoperationnormal-sse4.c:33:0: /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/include/smmintrin.h:191:1: error: inlining failed in call to always_inline ‘_mm_blend_ps’: target specific option mismatch _mm_blend_ps (__m128 __X, __m128 __Y, const int __M) ^ gimpoperationnormal-sse4.c:112:29: error: called from here out_pixel = _mm_blend_ps (out_pixel, out_alpha, 0x08); ^ In file included from gimpoperationnormal-sse4.c:33:0: /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/include/smmintrin.h:191:1: error: inlining failed in call to always_inline ‘_mm_blend_ps’: target specific option mismatch _mm_blend_ps (__m128 __X, __m128 __Y, const int __M) ^ gimpoperationnormal-sse4.c:158:29: error: called from here out_pixel = _mm_blend_ps (out_pixel, dst_alpha, 0x08); ^ In file included from gimpoperationnormal-sse4.c:33:0: /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/include/smmintrin.h:191:1: error: inlining failed in call to always_inline ‘_mm_blend_ps’: target specific option mismatch _mm_blend_ps (__m128 __X, __m128 __Y, const int __M) ^ gimpoperationnormal-sse4.c:158:29: error: called from here out_pixel = _mm_blend_ps (out_pixel, dst_alpha, 0x08); ^ In file included from gimpoperationnormal-sse4.c:33:0: /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/include/smmintrin.h:191:1: error: inlining failed in call to always_inline ‘_mm_blend_ps’: target specific option mismatch _mm_blend_ps (__m128 __X, __m128 __Y, const int __M) ^ gimpoperationnormal-sse4.c:204:25: error: called from here out_pixel = _mm_blend_ps (out_pixel, alpha, 0x08); ^ In file included from gimpoperationnormal-sse4.c:33:0: /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/include/smmintrin.h:191:1: error: inlining failed in call to always_inline ‘_mm_blend_ps’: target specific option mismatch _mm_blend_ps (__m128 __X, __m128 __Y, const int __M) ^ gimpoperationnormal-sse4.c:249:25: error: called from here out_pixel = _mm_blend_ps (out_pixel, alpha, 0x08); ^ make: *** [Makefile:761: gimpoperationnormal-sse4.o] Error 1 Best Sebastian [1] https://bugs.gentoo.org/581602
I would say somebody shot themselves in the foot... also, gentoo. But I'll leave that to Ell to decide, he is guilty of all new layer mode magic.
At least some of the Gentoo devs seem to think "... also, gentoo users." :) https://bugs.gentoo.org/581602#c8
I think we can safely WONTFIX this without upsetting anyone. Thanks for reporting anyway!