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