1*4882a593SmuzhiyunFrom b7fa865fa6b06d97d424c500fd1c4bc44c096359 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Fabrice Fontaine <fontaine.fabrice@gmail.com>
3*4882a593SmuzhiyunDate: Sun, 1 Nov 2020 22:46:18 +0100
4*4882a593SmuzhiyunSubject: [PATCH] openpgm/pgm/checksum.c: fix build with 32 bits MMX
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunBuild with i386-pentium-mmx or i686 is broken since version 5-3-128 and
7*4882a593Smuzhiyunhttps://github.com/steve-o/openpgm/commit/b276dc15be5d4e6e1143b9de25d09f63f9c85135
8*4882a593Smuzhiyunbecause _mm_cvtm64_si64 is undefined resulting in the following build
9*4882a593Smuzhiyunfailure for example on zeromq:
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun/srv/storage/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/i586-buildroot-linux-musl/8.3.0/../../../../i586-buildroot-linux-musl/bin/ld: /srv/storage/autobuild/run/instance-3/output-1/host/i586-buildroot-linux-musl/sysroot/usr/lib32/libpgm-5.3.so.0: undefined reference to `_mm_cvtm64_si64'
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunSo use the fallback if __x86_64__ is not defined
14*4882a593Smuzhiyun
15*4882a593SmuzhiyunFixes:
16*4882a593Smuzhiyun - http://autobuild.buildroot.org/results/01d9be37e8a743307128f53f41785654c9971e1a
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
19*4882a593SmuzhiyunSigned-off-by: Baruch Siach <baruch@tkos.co.il>
20*4882a593Smuzhiyun---
21*4882a593SmuzhiyunUpstream status: commit b7fa865fa6b06d97d424c500fd1c4bc44c096359
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun openpgm/pgm/checksum.c | 2 +-
24*4882a593Smuzhiyun 1 file changed, 1 insertion(+), 1 deletion(-)
25*4882a593Smuzhiyun
26*4882a593Smuzhiyundiff --git a/openpgm/pgm/checksum.c b/openpgm/pgm/checksum.c
27*4882a593Smuzhiyunindex fef89bce237c..8d8dd3f32305 100644
28*4882a593Smuzhiyun--- a/openpgm/pgm/checksum.c
29*4882a593Smuzhiyun+++ b/openpgm/pgm/checksum.c
30*4882a593Smuzhiyun@@ -948,7 +948,7 @@ do_csumcpy_mmx (
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun 		sum = _mm_add_pi32 (sum, lo);
33*4882a593Smuzhiyun 		sum = _mm_add_pi32 (sum, hi);
34*4882a593Smuzhiyun-#if 1
35*4882a593Smuzhiyun+#if defined(__x86_64__)
36*4882a593Smuzhiyun 		*(int64_t*)dst = _mm_cvtm64_si64 (tmp);
37*4882a593Smuzhiyun #else
38*4882a593Smuzhiyun 		((int*)dst)[1] = _mm_cvtsi64_si32 (tmp);
39*4882a593Smuzhiyun--
40*4882a593Smuzhiyun2.30.2
41*4882a593Smuzhiyun
42