git: 1a399ab2dae4 - main - textproc/redisearch: fix build on powerpc*

From: Piotr Kubaj <pkubaj_at_FreeBSD.org>
Date: Fri, 03 Jul 2026 20:30:59 UTC
The branch main has been updated by pkubaj:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1a399ab2dae494bc5cabbb6c4bb6da348a21a6c8

commit 1a399ab2dae494bc5cabbb6c4bb6da348a21a6c8
Author:     Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2026-07-03 11:43:14 +0000
Commit:     Piotr Kubaj <pkubaj@FreeBSD.org>
CommitDate: 2026-07-03 20:30:50 +0000

    textproc/redisearch: fix build on powerpc*
    
    1. ScalableVectorSearch change sent to upstream.
    2. VectorSimilarity changes sent to upstream.
    3. redisearch upstream itself doesn't require changes, the code
    now properly checks pointer size.
---
 ...rity_deps_ScalableVectorSearch_include_svs_lib_spinlock.h | 11 +++++++++++
 ...deps_VectorSimilarity_src_VecSim_spaces_space__includes.h | 12 ++++++++++++
 .../patch-deps_VectorSimilarity_src_VecSim_spaces_spaces.h   | 12 ++++++++++++
 textproc/redisearch/files/patch-src_redisearch.h             | 11 +++++++++++
 .../files/patch-src_redisearch__rs_headers_types__rs.h       | 11 +++++++++++
 5 files changed, 57 insertions(+)

diff --git a/textproc/redisearch/files/patch-deps_VectorSimilarity_deps_ScalableVectorSearch_include_svs_lib_spinlock.h b/textproc/redisearch/files/patch-deps_VectorSimilarity_deps_ScalableVectorSearch_include_svs_lib_spinlock.h
new file mode 100644
index 000000000000..48cfc0cd1b74
--- /dev/null
+++ b/textproc/redisearch/files/patch-deps_VectorSimilarity_deps_ScalableVectorSearch_include_svs_lib_spinlock.h
@@ -0,0 +1,11 @@
+--- deps/VectorSimilarity/deps/ScalableVectorSearch/include/svs/lib/spinlock.h.orig	2026-05-30 14:27:46 UTC
++++ deps/VectorSimilarity/deps/ScalableVectorSearch/include/svs/lib/spinlock.h
+@@ -24,6 +24,8 @@
+ inline void pause() {
+ #if defined(__i386__) || defined(__x86_64__)
+     __builtin_ia32_pause();
++#elif defined(__powerpc__) || defined(__powerpc64__)
++    asm volatile("or 27,27,27" ::: "memory");
+ #else //  __aarch64__
+     asm volatile("yield" ::: "memory");
+ #endif
diff --git a/textproc/redisearch/files/patch-deps_VectorSimilarity_src_VecSim_spaces_space__includes.h b/textproc/redisearch/files/patch-deps_VectorSimilarity_src_VecSim_spaces_space__includes.h
new file mode 100644
index 000000000000..d5ccf338fa4f
--- /dev/null
+++ b/textproc/redisearch/files/patch-deps_VectorSimilarity_src_VecSim_spaces_space__includes.h
@@ -0,0 +1,12 @@
+--- deps/VectorSimilarity/src/VecSim/spaces/space_includes.h.orig	2026-05-30 14:27:46 UTC
++++ deps/VectorSimilarity/src/VecSim/spaces/space_includes.h
+@@ -17,6 +17,9 @@
+ #ifdef CPU_FEATURES_ARCH_AARCH64
+ #include "cpuinfo_aarch64.h"
+ #endif // CPU_FEATURES_ARCH_AARCH64
++#ifdef CPU_FEATURES_ARCH_PPC
++#include "cpuinfo_ppc.h"
++#endif // CPU_FEATURES_ARCH_PPC
+ 
+ #if defined(__AVX512F__) || defined(__AVX__) || defined(__SSE__)
+ #if defined(__GNUC__)
diff --git a/textproc/redisearch/files/patch-deps_VectorSimilarity_src_VecSim_spaces_spaces.h b/textproc/redisearch/files/patch-deps_VectorSimilarity_src_VecSim_spaces_spaces.h
new file mode 100644
index 000000000000..46eda26daac1
--- /dev/null
+++ b/textproc/redisearch/files/patch-deps_VectorSimilarity_src_VecSim_spaces_spaces.h
@@ -0,0 +1,12 @@
+--- deps/VectorSimilarity/src/VecSim/spaces/spaces.h.orig	2026-05-30 14:27:46 UTC
++++ deps/VectorSimilarity/src/VecSim/spaces/spaces.h
+@@ -39,6 +39,9 @@
+ #if defined(CPU_FEATURES_ARCH_AARCH64)
+     using FeaturesType = cpu_features::Aarch64Features;
+     constexpr auto getFeatures = cpu_features::GetAarch64Info;
++#elif defined(CPU_FEATURES_ARCH_PPC)
++    using FeaturesType = cpu_features::PPCFeatures;
++    constexpr auto getFeatures = cpu_features::GetPPCInfo;
+ #else
+     using FeaturesType = cpu_features::X86Features; // Fallback
+     constexpr auto getFeatures = cpu_features::GetX86Info;
diff --git a/textproc/redisearch/files/patch-src_redisearch.h b/textproc/redisearch/files/patch-src_redisearch.h
new file mode 100644
index 000000000000..cf9d4ef357be
--- /dev/null
+++ b/textproc/redisearch/files/patch-src_redisearch.h
@@ -0,0 +1,11 @@
+--- src/redisearch.h.orig	2026-05-30 14:27:46 UTC
++++ src/redisearch.h
+@@ -39,7 +39,7 @@
+ 
+ #define DOCID_MAX UINT64_MAX
+ 
+-#if (defined(__x86_64__) || defined(__aarch64__) || defined(__arm64__)) && !defined(RS_NO_U128)
++#if (defined(__x86_64__) || defined(__aarch64__) || defined(__arm64__) || defined(__powerpc64__)) && !defined(RS_NO_U128)
+ /* 64 bit architectures use 128 bit field masks and up to 128 fields */
+ typedef __uint128_t t_fieldMask;
+ #define RS_FIELDMASK_ALL (((__uint128_t)1 << 127) - (__uint128_t)1 + ((__uint128_t)1 << 127))
diff --git a/textproc/redisearch/files/patch-src_redisearch__rs_headers_types__rs.h b/textproc/redisearch/files/patch-src_redisearch__rs_headers_types__rs.h
new file mode 100644
index 000000000000..42e735231d23
--- /dev/null
+++ b/textproc/redisearch/files/patch-src_redisearch__rs_headers_types__rs.h
@@ -0,0 +1,11 @@
+--- src/redisearch_rs/headers/types_rs.h.orig	2026-05-30 14:27:46 UTC
++++ src/redisearch_rs/headers/types_rs.h
+@@ -17,7 +17,7 @@
+ typedef uint16_t t_fieldIndex;
+ 
+ /* Copied from `redisearch.h` */
+-#if (defined(__x86_64__) || defined(__aarch64__) || defined(__arm64__)) && !defined(RS_NO_U128)
++#if (defined(__x86_64__) || defined(__aarch64__) || defined(__arm64__) || defined(__powerpc64__)) && !defined(RS_NO_U128)
+ /* 64 bit architectures use 128 bit field masks and up to 128 fields */
+ typedef __uint128_t t_fieldMask;
+ #else