Hello, I'm trying to fix a FTBFS bug in cpl, a C library. The package fails
in i686 on Fedora>=29 and compiles in Fedora<=28
https://koji.fedoraproject.org/koji/taskinfo?taskID=29215071
https://kojipkgs.fedoraproject.org//work/tasks/5071/29215071/build.log
I imagine that, after enabling SSE2 in Fedora 29, we are compiling a
different code path
that fails. I don't have any experience with this kind of code.
The error is related with _m_from_int64, that seems undefined? But
_m_from_int64 is defined in one of the *intrin.h headers. I'm don't know
what is happening.
cpl_image_basic.c: In function 'dcompl_mult_sse_fast':
cpl_image_basic.c:245:30: warning: implicit declaration of function
'_m_from_int64'; did you mean '_m_from_int'?
[-Wimplicit-function-declaration]
# define cpl_m_from_int64 _m_from_int64
^~~~~~~~~~~~~
cpl_image_basic.c:260:54: note: in expansion of macro 'cpl_m_from_int64'
_mm_add_pd(a, _mm_xor_pd(b,
(__m128d)_mm_set_epi64(cpl_m_from_int64(0x0llu), \
^~~~~~~~~~~~~~~~
cpl_image_basic.c:4065:12: note: in expansion of macro 'CPL_MM_ADDSUB_PD'
return CPL_MM_ADDSUB_PD(t1, sb); /* x * y - y * w, z*y + x * w */
^~~~~~~~~~~~~~~~
cpl_image_basic.c:245:30: error: incompatible type for argument 1 of
'_mm_set_epi64'
# define cpl_m_from_int64 _m_from_int64
^
cpl_image_basic.c:260:54: note: in expansion of macro 'cpl_m_from_int64'
_mm_add_pd(a, _mm_xor_pd(b,
(__m128d)_mm_set_epi64(cpl_m_from_int64(0x0llu), \
^~~~~~~~~~~~~~~~
cpl_image_basic.c:4065:12: note: in expansion of macro 'CPL_MM_ADDSUB_PD'
return CPL_MM_ADDSUB_PD(t1, sb); /* x * y - y * w, z*y + x * w */
^~~~~~~~~~~~~~~~
In file included from
/usr/lib/gcc/i686-redhat-linux/8/include/xmmintrin.h:1252,
from cpl_image_basic.c:240:
/usr/lib/gcc/i686-redhat-linux/8/include/emmintrin.h:595:22: note: expected
'__m64' {aka '__vector(2) int'} but argument is of type 'int'
_mm_set_epi64 (__m64 __q1, __m64 __q0)
~~~~~~^~~~
cpl_image_basic.c:245:30: error: incompatible type for argument 2 of
'_mm_set_epi64'
# define cpl_m_from_int64 _m_from_int64
Any help would be appreciated, I have never touched code like this.
Best, Sergio