InsightToolkit fails to build on rawhide due to missing SSE instructions

Dominik 'Rathann' Mierzejewski dominik at greysector.net
Fri May 22 12:35:21 UTC 2015


On Friday, 22 May 2015 at 05:39, Orion Poplawski wrote:
[...]
> Well, the errors are possibly related to that type of code:
> 
> In file included from
> /usr/lib/gcc/i686-redhat-linux/5.1.1/include/xmmintrin.h:31:0,
>                  from
> /usr/lib/gcc/i686-redhat-linux/5.1.1/include/emmintrin.h:31,
>                  from /builddir/build/BUILD/InsightToolkit-4.7.2/Modules/Core/Common/include/itkMathDetail.h:43,
>                  from /builddir/build/BUILD/InsightToolkit-4.7.2/Modules/Core/Common/include/itkMath.h:32,
>                  from /builddir/build/BUILD/InsightToolkit-4.7.2/Modules/Core/Transform/include/itkMatrixOffsetTransformBase.hxx:24,
>                  from /builddir/build/BUILD/InsightToolkit-4.7.2/Modules/Core/Transform/include/itkMatrixOffsetTransformBase.h:533,
>                  from /builddir/build/BUILD/InsightToolkit-4.7.2/Modules/Core/Transform/include/itkAffineTransform.h:21,
>                  from /builddir/build/BUILD/InsightToolkit-4.7.2/Modules/IO/TransformHDF5/test/itkIOTransformHDF5Test.cxx:23:
> /usr/lib/gcc/i686-redhat-linux/5.1.1/include/mmintrin.h: In function
> '__m64 _mm_cvtsi32_si64(int)':
> /usr/lib/gcc/i686-redhat-linux/5.1.1/include/mmintrin.h:64:54:
> error: can't convert between vector values of different size
>    return (__m64) __builtin_ia32_vec_init_v2si (__i, 0);
>                                                       ^
> /usr/lib/gcc/i686-redhat-linux/5.1.1/include/mmintrin.h: In function
> 'int _mm_cvtsi64_si32(__m64)':
> /usr/lib/gcc/i686-redhat-linux/5.1.1/include/mmintrin.h:107:53:
> error: cannot convert '__m64 {aka int}' to '__vector(2) int' for
> argument '1' to 'int __builtin_ia32_vec_ext_v2si(__vector(2) int,
> int)'
>    return __builtin_ia32_vec_ext_v2si ((__v2si)__i, 0);
>                                                      ^
> 
> In InsightToolkit-4.7.2/Modules/Core/Common/include/itkMathDetail.h
> 
> #if defined( ITK_HAVE_EMMINTRIN_H ) && !defined( __GCCXML__ )
> #include <emmintrin.h> // sse 2 intrinsics
> #endif /* ITK_HAVE_EMMINTRIN_H && ! __GCCXML__ */
> 
> we are pulling in sse2 intrinsics.  But why is simply including the
> header failing?

gcc5 doesn't support compiling SSE2 code without -msse2 in the command
line.

Regards,
Dominik
-- 
Fedora http://fedoraproject.org/wiki/User:Rathann
RPMFusion http://rpmfusion.org | MPlayer http://mplayerhq.hu
"Faith manages."
        -- Delenn to Lennier in Babylon 5:"Confessions and Lamentations"


More information about the devel mailing list