Date: Tue, 6 Dec 2022 03:51:53 GMT From: Piotr Kubaj <pkubaj@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: df3e7be9ffee - main - security/palisade: fix build on powerpc64* and libomp-less architectures Message-ID: <202212060351.2B63prfA006438@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by pkubaj: URL: https://cgit.FreeBSD.org/ports/commit/?id=df3e7be9ffeecd571a41bdc1ed08c41ed062fffc commit df3e7be9ffeecd571a41bdc1ed08c41ed062fffc Author: Piotr Kubaj <pkubaj@FreeBSD.org> AuthorDate: 2022-12-06 03:51:49 +0000 Commit: Piotr Kubaj <pkubaj@FreeBSD.org> CommitDate: 2022-12-06 03:51:49 +0000 security/palisade: fix build on powerpc64* and libomp-less architectures --- security/palisade/Makefile | 7 ++----- ...atch-src_core_include_math_bigintnat_ubintnat.h | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/security/palisade/Makefile b/security/palisade/Makefile index 0d923f077abc..80b7ad07804a 100644 --- a/security/palisade/Makefile +++ b/security/palisade/Makefile @@ -11,11 +11,6 @@ LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BROKEN_i386= fails to build: a declaration of 'Mul128' must be available -BROKEN_powerpc64= fails to build: math/native_int/binint.h:510:11: error: Architecture not supported for MultD() -BROKEN_riscv64= fails to build: math/bigintnat/ubintnat.h:2250:2: error: Architecture not supported for MultD() -.if !exists(/usr/include/omp.h) -BROKEN= requires OpenMP support that is missing on this architecture -.endif BUILD_DEPENDS= autoconf:devel/autoconf # possibly a mistake in the project @@ -43,7 +38,9 @@ BINARY_ALIAS= git=false LDFLAGS+= -pthread # only for tests: see https://gitlab.com/palisade/palisade-release/-/issues/23 OPTIONS_DEFINE= OPENMP HEXL +.if exists(/usr/include/omp.h) OPTIONS_DEFAULT= OPENMP +.endif HEXL_DESC= Use Intel Hexl Library diff --git a/security/palisade/files/patch-src_core_include_math_bigintnat_ubintnat.h b/security/palisade/files/patch-src_core_include_math_bigintnat_ubintnat.h new file mode 100644 index 000000000000..8f02234b7e17 --- /dev/null +++ b/security/palisade/files/patch-src_core_include_math_bigintnat_ubintnat.h @@ -0,0 +1,22 @@ +--- src/core/include/math/bigintnat/ubintnat.h.orig 2022-01-28 23:16:29 UTC ++++ src/core/include/math/bigintnat/ubintnat.h +@@ -2218,12 +2218,17 @@ class NativeIntegerT + res.lo = x.lo * y; + asm("umulh %0, %1, %2\n\t" : "=r"(res.hi) : "r"(x.lo), "r"(y)); + res.hi += x.hi * y; +-#elif defined(__arm__) // 32 bit processor ++#elif defined(__powerpc64__) || defined(__riscv) ++ U128BITS wres(0), wa(a), wb(b); ++ wres = wa * wb; // should give us 128 bits of 64 * 64 ++ res.hi = (uint64_t)(wres >> 64); ++ res.lo = (uint64_t)wres; ++#elif defined(__arm__) || defined(__powerpc__) // 32 bit processor + uint64_t wres(0), wa(a), wb(b); + + wres = wa * wb; // should give us the lower 64 bits of 32*32 + res.hi = wres >> 32; +- res.lo = (uint32_t)wres && 0xFFFFFFFF; ++ res.lo = (uint32_t)wres & 0xFFFFFFFF; + #elif defined(__EMSCRIPTEN__) // web assembly + U64BITS a1 = a >> 32; + U64BITS a2 = (uint32_t)a;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202212060351.2B63prfA006438>