git: 7bed7b09f6b0 - main - biology/hmmer: add powerpc64le support

From: Piotr Kubaj <pkubaj_at_FreeBSD.org>
Date: Thu, 15 Oct 2026 10:45:33 UTC
The branch main has been updated by pkubaj:

URL: https://cgit.FreeBSD.org/ports/commit/?id=7bed7b09f6b0c2c1a4ebcafdee88e7c26ec3666a

commit 7bed7b09f6b0c2c1a4ebcafdee88e7c26ec3666a
Author:     Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2026-10-13 08:02:48 +0000
Commit:     Piotr Kubaj <pkubaj@FreeBSD.org>
CommitDate: 2026-10-15 10:45:17 +0000

    biology/hmmer: add powerpc64le support
    
    Swap vec_sld operands on little-endian so the Altivec code keeps its
    big-endian element order, and drop the configure check that rejects
    VMX on little-endian.
---
 biology/hmmer/Makefile                     |  2 +-
 biology/hmmer/files/patch-configure        | 17 +++++++++++++++++
 biology/hmmer/files/patch-easel_esl__vmx.h | 13 +++++++++++++
 3 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/biology/hmmer/Makefile b/biology/hmmer/Makefile
index 8ecfa09c77f5..7e5021c5b256 100644
--- a/biology/hmmer/Makefile
+++ b/biology/hmmer/Makefile
@@ -10,7 +10,7 @@ WWW=		http://hmmer.org/
 LICENSE=	BSD3CLAUSE
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-ONLY_FOR_ARCHS=	aarch64 amd64 armv7 i386 powerpc powerpc64
+ONLY_FOR_ARCHS=	aarch64 amd64 armv7 i386 powerpc powerpc64 powerpc64le
 ONLY_FOR_ARCHS_REASON=	requires NEON, SSE2 or AltiVec instructions
 
 USES=		compiler:c11 gmake perl5 python:test shebangfix
diff --git a/biology/hmmer/files/patch-configure b/biology/hmmer/files/patch-configure
new file mode 100644
index 000000000000..40d094f293ef
--- /dev/null
+++ b/biology/hmmer/files/patch-configure
@@ -0,0 +1,17 @@
+--- configure.orig	2026-10-13 07:42:00 UTC
++++ configure
+@@ -7888,13 +7888,7 @@ printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h
+   ;; #(
+    no)
+ 
+-  if test "$enable_vmx" = "yes"; then
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: ::::::::::--- no vector instruction set ---::::::::::" >&5
+-printf "%s\n" "$as_me: ::::::::::--- no vector instruction set ---::::::::::" >&6;}
+-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: HMMER3 Altivec/VMX only supports big-endian platforms: e.g. ppc64 not ppc64le" >&5
+-printf "%s\n" "$as_me: HMMER3 Altivec/VMX only supports big-endian platforms: e.g. ppc64 not ppc64le" >&6;}
+-    as_fn_error $? "No supported vectorization found for your machine." "$LINENO" 5
+-  elif test "$enable_neon" = "yes"; then
++  if test "$enable_neon" = "yes"; then
+     as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags_$NEON_CFLAGS_-mlittle-endian" | $as_tr_sh`
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mlittle-endian" >&5
+ printf %s "checking whether C compiler accepts -mlittle-endian... " >&6; }
diff --git a/biology/hmmer/files/patch-easel_esl__vmx.h b/biology/hmmer/files/patch-easel_esl__vmx.h
new file mode 100644
index 000000000000..46248daa0564
--- /dev/null
+++ b/biology/hmmer/files/patch-easel_esl__vmx.h
@@ -0,0 +1,13 @@
+--- easel/esl_vmx.h.orig	2026-10-13 07:42:00 UTC
++++ easel/esl_vmx.h
+@@ -11,6 +11,10 @@
+ #include <stdio.h>
+ #include <altivec.h>
+ 
++#ifdef __LITTLE_ENDIAN__
++#define vec_sld(a, b, c) vec_sld((b), (a), 16 - (c))
++#endif
++
+ 
+ extern vector float esl_vmx_logf(vector float x);
+ extern vector float esl_vmx_expf(vector float x);