[Debian-med-packaging] Bug#976479: [Request for help] Bug: #976479 scrappie: FTBFS: scrappie_matrix.h:5:14: fatal error: immintrin.h: No such file or directory
Nilesh Patra
npatra974 at gmail.com
Mon Dec 7 10:28:16 GMT 2020
Hi Michael and others,
Scrappie looks like a candidate where we can use the simde trick.
I tried doing a patch, and it works on amd64 machine, but not on an arm64 porter box :/ (with issues with __v4sf)
And I'm not sure how to fix this, and hence this is a humble request to please take a look - and any help/hints would be really great.
My patch is pushed to salsa[1]
I'm also sorry if these pings are somehow irritating, since I need help admittedly.
[1]: https://salsa.debian.org/med-team/scrappie
Pasting the (relevant part of) failing arm64 log:
make[1]: Entering directory '/home/nilesh/scrappie/scrappie'
mkdir build
cd build && \
cmake .. -DCMAKE_BUILD_TYPE=Release && \
make
-- The C compiler identification is GNU 10.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Performing Test HAS_OPENMP
-- Performing Test HAS_OPENMP - Success
-- Looking for hdf5.h
-- Looking for hdf5.h - not found
-- Looking for hdf5/serial/hdf5.h
-- Looking for hdf5/serial/hdf5.h - found
-- Configuring done
-- Generating done
-- Build files have been written to: /home/nilesh/scrappie/scrappie/build
make[2]: Entering directory '/home/nilesh/scrappie/scrappie/build'
make[2]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
make[3]: Entering directory '/home/nilesh/scrappie/scrappie/build'
make[4]: Entering directory '/home/nilesh/scrappie/scrappie/build'
Scanning dependencies of target scrappie_objects
make[4]: Leaving directory '/home/nilesh/scrappie/scrappie/build'
make[4]: Entering directory '/home/nilesh/scrappie/scrappie/build'
[ 2%] Building C object CMakeFiles/scrappie_objects.dir/src/decode.c.o
In file included from /usr/include/simde/x86/avx.h:27,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h: In function 'log_ps':
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:106:22: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
106 | x = _mm_max_ps(x, *(v4sf*)_ps_min_norm_pos); /* cut off denormalized stuff */
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/simde/x86/avx.h:27,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:110:22: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
110 | x = _mm_and_ps(x, *(v4sf*)_ps_inv_mant_mask);
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/simde/x86/sse3.h:30,
from /usr/include/simde/x86/ssse3.h:30,
from /usr/include/simde/x86/sse4.1.h:31,
from /usr/include/simde/x86/sse4.2.h:31,
from /usr/include/simde/x86/avx.h:31,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:113:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
113 | emm0 = _mm_sub_epi32(emm0, *(v4si*)_pi32_0x7f);
| ^~~~~~~~~~~~~~~~~
In file included from /usr/include/simde/x86/sse3.h:30,
from /usr/include/simde/x86/ssse3.h:30,
from /usr/include/simde/x86/sse4.1.h:31,
from /usr/include/simde/x86/sse4.2.h:31,
from /usr/include/simde/x86/avx.h:31,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h: In function 'exp_ps':
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:228:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
228 | emm0 = _mm_add_epi32(emm0, *(v4si*)_pi32_0x7f);
| ^~~~~~~~~~~~~~~~~
In file included from /usr/include/simde/x86/avx.h:27,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h: In function 'sin_ps':
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:281:22: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
281 | x = _mm_and_ps(x, *(v4sf*)_ps_inv_sign_mask);
| ^~~~~~~~~~~~~~~~~~~~~~~~
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:283:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
283 | sign_bit = _mm_and_ps(sign_bit, *(v4sf*)_ps_sign_mask);
| ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/simde/x86/sse3.h:30,
from /usr/include/simde/x86/ssse3.h:30,
from /usr/include/simde/x86/sse4.1.h:31,
from /usr/include/simde/x86/sse4.2.h:31,
from /usr/include/simde/x86/avx.h:31,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:291:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
291 | emm2 = _mm_add_epi32(emm2, *(v4si*)_pi32_1);
| ^~~~~~~~~~~~~~
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:292:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
292 | emm2 = _mm_and_si128(emm2, *(v4si*)_pi32_inv1);
| ^~~~~~~~~~~~~~~~~
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:296:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
296 | emm0 = _mm_and_si128(emm2, *(v4si*)_pi32_4);
| ^~~~~~~~~~~~~~
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:304:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
304 | emm2 = _mm_and_si128(emm2, *(v4si*)_pi32_2);
| ^~~~~~~~~~~~~~
In file included from /usr/include/simde/x86/avx.h:27,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h: In function 'cos_ps':
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:364:22: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
364 | x = _mm_and_ps(x, *(v4sf*)_ps_inv_sign_mask);
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/simde/x86/sse3.h:30,
from /usr/include/simde/x86/ssse3.h:30,
from /usr/include/simde/x86/sse4.1.h:31,
from /usr/include/simde/x86/sse4.2.h:31,
from /usr/include/simde/x86/avx.h:31,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:372:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
372 | emm2 = _mm_add_epi32(emm2, *(v4si*)_pi32_1);
| ^~~~~~~~~~~~~~
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:373:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
373 | emm2 = _mm_and_si128(emm2, *(v4si*)_pi32_inv1);
| ^~~~~~~~~~~~~~~~~
In file included from /usr/include/simde/x86/sse3.h:30,
from /usr/include/simde/x86/ssse3.h:30,
from /usr/include/simde/x86/sse4.1.h:31,
from /usr/include/simde/x86/sse4.2.h:31,
from /usr/include/simde/x86/avx.h:31,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:376:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
376 | emm2 = _mm_sub_epi32(emm2, *(v4si*)_pi32_2);
| ^~~~~~~~~~~~~~
In file included from /usr/include/simde/x86/sse3.h:30,
from /usr/include/simde/x86/ssse3.h:30,
from /usr/include/simde/x86/sse4.1.h:31,
from /usr/include/simde/x86/sse4.2.h:31,
from /usr/include/simde/x86/avx.h:31,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:379:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
379 | emm0 = _mm_andnot_si128(emm2, *(v4si*)_pi32_4);
| ^~~~~~~~~~~~~~
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:382:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
382 | emm2 = _mm_and_si128(emm2, *(v4si*)_pi32_2);
| ^~~~~~~~~~~~~~
In file included from /usr/include/simde/x86/avx.h:27,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h: In function 'sincos_ps':
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:444:22: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
444 | x = _mm_and_ps(x, *(v4sf*)_ps_inv_sign_mask);
| ^~~~~~~~~~~~~~~~~~~~~~~~
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:446:44: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
446 | sign_bit_sin = _mm_and_ps(sign_bit_sin, *(v4sf*)_ps_sign_mask);
| ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/simde/x86/sse3.h:30,
from /usr/include/simde/x86/ssse3.h:30,
from /usr/include/simde/x86/sse4.1.h:31,
from /usr/include/simde/x86/sse4.2.h:31,
from /usr/include/simde/x86/avx.h:31,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:455:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
455 | emm2 = _mm_add_epi32(emm2, *(v4si*)_pi32_1);
| ^~~~~~~~~~~~~~
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:456:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
456 | emm2 = _mm_and_si128(emm2, *(v4si*)_pi32_inv1);
| ^~~~~~~~~~~~~~~~~
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:462:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
462 | emm0 = _mm_and_si128(emm2, *(v4si*)_pi32_4);
| ^~~~~~~~~~~~~~
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:467:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
467 | emm2 = _mm_and_si128(emm2, *(v4si*)_pi32_2);
| ^~~~~~~~~~~~~~
In file included from /usr/include/simde/x86/sse3.h:30,
from /usr/include/simde/x86/ssse3.h:30,
from /usr/include/simde/x86/sse4.1.h:31,
from /usr/include/simde/x86/sse4.2.h:31,
from /usr/include/simde/x86/avx.h:31,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:483:31: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
483 | emm4 = _mm_sub_epi32(emm4, *(v4si*)_pi32_2);
| ^~~~~~~~~~~~~~
In file included from /usr/include/simde/x86/sse3.h:30,
from /usr/include/simde/x86/ssse3.h:30,
from /usr/include/simde/x86/sse4.1.h:31,
from /usr/include/simde/x86/sse4.2.h:31,
from /usr/include/simde/x86/avx.h:31,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:484:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
484 | emm4 = _mm_andnot_si128(emm4, *(v4si*)_pi32_4);
| ^~~~~~~~~~~~~~
In file included from /home/nilesh/scrappie/scrappie/src/decode.c:5:
/home/nilesh/scrappie/scrappie/src/util.h: In function 'expfv':
/home/nilesh/scrappie/scrappie/src/util.h:172:5: error: unknown type name '__v4sf'; did you mean 'v4sf'?
172 | __v4sf y = (__v4sf) x;
| ^~~~~~
| v4sf
/home/nilesh/scrappie/scrappie/src/util.h:172:17: error: '__v4sf' undeclared (first use in this function); did you mean 'v4sf'?
172 | __v4sf y = (__v4sf) x;
| ^~~~~~
| v4sf
/home/nilesh/scrappie/scrappie/src/util.h:172:17: note: each undeclared identifier is reported only once for each function it appears in
/home/nilesh/scrappie/scrappie/src/util.h:172:25: error: expected ',' or ';' before 'x'
172 | __v4sf y = (__v4sf) x;
| ^
/home/nilesh/scrappie/scrappie/src/util.h:173:28: error: incompatible type for argument 1 of 'exp_ps'
173 | return (__m128) exp_ps(y);
| ^
| |
| int
In file included from /home/nilesh/scrappie/scrappie/src/util.h:9,
from /home/nilesh/scrappie/scrappie/src/decode.c:5:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:183:67: note: expected 'v4sf' {aka 'float32x4_t'} but argument is of type 'int'
183 | static inline __attribute__((__always_inline__)) v4sf exp_ps(v4sf x) {
| ~~~~~^
In file included from /home/nilesh/scrappie/scrappie/src/decode.c:5:
/home/nilesh/scrappie/scrappie/src/util.h: In function 'logfv':
/home/nilesh/scrappie/scrappie/src/util.h:177:5: error: unknown type name '__v4sf'; did you mean 'v4sf'?
177 | __v4sf y = (__v4sf) x;
| ^~~~~~
| v4sf
/home/nilesh/scrappie/scrappie/src/util.h:177:17: error: '__v4sf' undeclared (first use in this function); did you mean 'v4sf'?
177 | __v4sf y = (__v4sf) x;
| ^~~~~~
| v4sf
/home/nilesh/scrappie/scrappie/src/util.h:177:25: error: expected ',' or ';' before 'x'
177 | __v4sf y = (__v4sf) x;
| ^
/home/nilesh/scrappie/scrappie/src/util.h:178:28: error: incompatible type for argument 1 of 'log_ps'
178 | return (__m128) log_ps(y);
| ^
| |
| int
In file included from /home/nilesh/scrappie/scrappie/src/util.h:9,
from /home/nilesh/scrappie/scrappie/src/decode.c:5:
/home/nilesh/scrappie/scrappie/src/sse_mathfun.h:101:67: note: expected 'v4sf' {aka 'float32x4_t'} but argument is of type 'int'
101 | static inline v4sf __attribute__((__always_inline__)) log_ps(v4sf x) {
| ~~~~~^
In file included from /home/nilesh/scrappie/scrappie/src/decode.c:5:
/home/nilesh/scrappie/scrappie/src/util.h: In function 'fast_expfv':
/home/nilesh/scrappie/scrappie/src/util.h:205:32: error: '__v4sf' undeclared (first use in this function); did you mean 'v4sf'?
205 | const __m128 a = (__m128) (__v4sf) { _A, _A, _A, _A };
| ^~~~~~
| v4sf
/home/nilesh/scrappie/scrappie/src/util.h:205:40: error: expected ',' or ';' before '{' token
205 | const __m128 a = (__m128) (__v4sf) { _A, _A, _A, _A };
| ^
/home/nilesh/scrappie/scrappie/src/util.h:206:40: error: expected ',' or ';' before '{' token
206 | const __m128 b = (__m128) (__v4sf) { _B, _B, _B, _B };
| ^
/home/nilesh/scrappie/scrappie/src/util.h:207:45: error: expected ',' or ';' before '{' token
207 | const __m128 _bound = (__m128) (__v4sf) { _BOUND, _BOUND, _BOUND, _BOUND };
| ^
/home/nilesh/scrappie/scrappie/src/util.h: In function 'fast_logfv':
/home/nilesh/scrappie/scrappie/src/util.h:217:32: error: '__v4sf' undeclared (first use in this function); did you mean 'v4sf'?
217 | const __m128 a = (__m128) (__v4sf) { _Alogfv, _Alogfv, _Alogfv, _Alogfv };
| ^~~~~~
| v4sf
/home/nilesh/scrappie/scrappie/src/util.h:217:40: error: expected ',' or ';' before '{' token
217 | const __m128 a = (__m128) (__v4sf) { _Alogfv, _Alogfv, _Alogfv, _Alogfv };
| ^
/home/nilesh/scrappie/scrappie/src/util.h:218:40: error: expected ',' or ';' before '{' token
218 | const __m128 b = (__m128) (__v4sf) { _Blogfv, _Blogfv, _Blogfv, _Blogfv };
| ^
/home/nilesh/scrappie/scrappie/src/decode.c: At top level:
/home/nilesh/scrappie/scrappie/src/decode.c:11:6: error: #error "Compilation of function decode_transducer requires a processor that supports at least SSE2"
11 | # error "Compilation of function decode_transducer requires a processor that supports at least SSE2"
| ^~~~~
In file included from /usr/include/simde/x86/sse4.2.h:31,
from /usr/include/simde/x86/avx.h:31,
from /home/nilesh/scrappie/scrappie/src/scrappie_matrix.h:6,
from /home/nilesh/scrappie/scrappie/src/decode.h:5,
from /home/nilesh/scrappie/scrappie/src/decode.c:3:
/home/nilesh/scrappie/scrappie/src/decode.c:25:74: error: redefinition of 'simde_mm_mullo_epi32'
25 | static inline __m128i __attribute__((__gnu_inline__, __always_inline__)) _mm_mullo_epi32(const __m128i x, const __m128i y) {
| ^~~~~~~~~~~~~~~
/usr/include/simde/x86/sse4.1.h:1761:1: note: previous definition of 'simde_mm_mullo_epi32' was here
1761 | simde_mm_mullo_epi32 (simde__m128i a, simde__m128i b) {
| ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [CMakeFiles/scrappie_objects.dir/build.make:82: CMakeFiles/scrappie_objects.dir/src/decode.c.o] Error 1
make[4]: Leaving directory '/home/nilesh/scrappie/scrappie/build'
make[3]: *** [CMakeFiles/Makefile2:104: CMakeFiles/scrappie_objects.dir/all] Error 2
make[3]: Leaving directory '/home/nilesh/scrappie/scrappie/build'
make[2]: *** [Makefile:182: all] Error 2
make[2]: Leaving directory '/home/nilesh/scrappie/scrappie/build'
make[1]: *** [Makefile:21: build/scrappie] Error 2
make[1]: Leaving directory '/home/nilesh/scrappie/scrappie'
dh_auto_build: error: make -j4 "INSTALL=install --strip-program=true" returned exit code 2
make: *** [debian/rules:11: binary] Error 2
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/debian-med-packaging/attachments/20201207/23565ed4/attachment-0001.sig>
More information about the Debian-med-packaging
mailing list