Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 07 Jun 2026 09:14:44 +0000
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: 575b654dc46a - main - audio/surge-synthesizer-xt-lv2: fix build on powerpc64*
Message-ID:  <6a253684.1d189.a7b88b3@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by pkubaj:

URL: https://cgit.FreeBSD.org/ports/commit/?id=575b654dc46aa032410861925a393e68fab679ab

commit 575b654dc46aa032410861925a393e68fab679ab
Author:     Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2026-06-05 07:58:41 +0000
Commit:     Piotr Kubaj <pkubaj@FreeBSD.org>
CommitDate: 2026-06-07 09:13:13 +0000

    audio/surge-synthesizer-xt-lv2: fix build on powerpc64*
    
      ld: error: undefined symbol:
      juce::pnglibNamespace::png_init_filter_functions_vsx(juce::pnglibNamespace::png_struct_def*,
      unsigned int)
---
 audio/surge-synthesizer-xt-lv2/Makefile            |  6 +++++
 ...patch-libs_JUCE_modules_juce__dsp_juce__dsp.cpp | 11 ++++++++
 .../patch-libs_JUCE_modules_juce__dsp_juce__dsp.h  | 29 ++++++++++++++++++++++
 ...ce__graphics_image__formats_juce__PNGLoader.cpp | 10 ++++++++
 4 files changed, 56 insertions(+)

diff --git a/audio/surge-synthesizer-xt-lv2/Makefile b/audio/surge-synthesizer-xt-lv2/Makefile
index eaad5aecd942..ed645a98bc77 100644
--- a/audio/surge-synthesizer-xt-lv2/Makefile
+++ b/audio/surge-synthesizer-xt-lv2/Makefile
@@ -87,6 +87,12 @@ PORTSCOUT=	ignore:1 # conflicts with old-gen audio/surge-synthesizer-lv2
 CMAKE_ARGS+=	-DARM_NATIVE=native # based on https://github.com/surge-synthesizer/surge/tree/release/1.9.0#building-for-arm-platforms
 .endif
 
+.if ${ARCH:Mpowerpc64*}
+CMAKE_ON+=	SURGE_SKIP_LUA # LuaJIT has no ppc64 backend
+CFLAGS+=	-Wno-deprecated-altivec-src-compat # simde vector-bool warning is fatal under -Werror
+CXXFLAGS+=	-Wno-deprecated-altivec-src-compat
+.endif
+
 .include <bsd.port.pre.mk>
 
 post-patch:
diff --git a/audio/surge-synthesizer-xt-lv2/files/patch-libs_JUCE_modules_juce__dsp_juce__dsp.cpp b/audio/surge-synthesizer-xt-lv2/files/patch-libs_JUCE_modules_juce__dsp_juce__dsp.cpp
new file mode 100644
index 000000000000..8991c3198ae2
--- /dev/null
+++ b/audio/surge-synthesizer-xt-lv2/files/patch-libs_JUCE_modules_juce__dsp_juce__dsp.cpp
@@ -0,0 +1,11 @@
+--- libs/JUCE/modules/juce_dsp/juce_dsp.cpp.orig	2026-06-05 07:46:02 UTC
++++ libs/JUCE/modules/juce_dsp/juce_dsp.cpp
+@@ -79,7 +79,7 @@
+ #include "widgets/juce_Chorus.cpp"
+ 
+ #if JUCE_USE_SIMD
+- #if JUCE_INTEL || defined(__riscv) || defined(__EMSCRIPTEN__)
++ #if JUCE_INTEL || defined(__riscv) || defined(__EMSCRIPTEN__) || defined(__powerpc__)
+  // falkTX patch to 6.* was this so ... add those ORs above
+  // #if defined(__i386__) || defined(__amd64__) || defined(_M_X64) || defined(_X86_) || defined(_M_IX86) || defined(__riscv) || defined(__EMSCRIPTEN__)
+   #ifdef __AVX2__
diff --git a/audio/surge-synthesizer-xt-lv2/files/patch-libs_JUCE_modules_juce__dsp_juce__dsp.h b/audio/surge-synthesizer-xt-lv2/files/patch-libs_JUCE_modules_juce__dsp_juce__dsp.h
new file mode 100644
index 000000000000..dafb143a7719
--- /dev/null
+++ b/audio/surge-synthesizer-xt-lv2/files/patch-libs_JUCE_modules_juce__dsp_juce__dsp.h
@@ -0,0 +1,29 @@
+--- libs/JUCE/modules/juce_dsp/juce_dsp.h.orig	2026-06-05 07:45:45 UTC
++++ libs/JUCE/modules/juce_dsp/juce_dsp.h
+@@ -84,6 +84,17 @@
+ 
+  #include <arm_neon.h>
+ 
++#elif defined (__powerpc__)
++
++ #ifndef JUCE_USE_SIMD
++  #define JUCE_USE_SIMD 1
++ #endif
++
++ #ifndef SIMDE_ENABLE_NATIVE_ALIASES
++  #define SIMDE_ENABLE_NATIVE_ALIASES
++ #endif
++ #include <simde/x86/sse4.2.h>
++
+ #else
+ 
+  // No SIMD Support
+@@ -225,7 +236,7 @@ namespace util
+  #include "native/juce_SIMDNativeOps_fallback.h"
+ 
+  // include the correct native file for this build target CPU
+- #if defined(__i386__) || defined(__amd64__) || defined(_M_X64) || defined(_X86_) || defined(_M_IX86) || defined(__riscv) || defined(__EMSCRIPTEN__)
++ #if defined(__i386__) || defined(__amd64__) || defined(_M_X64) || defined(_X86_) || defined(_M_IX86) || defined(__riscv) || defined(__EMSCRIPTEN__) || defined(__powerpc__)
+   #ifdef __AVX2__
+    #include "native/juce_SIMDNativeOps_avx.h"
+   #else
diff --git a/audio/surge-synthesizer-xt-lv2/files/patch-libs_JUCE_modules_juce__graphics_image__formats_juce__PNGLoader.cpp b/audio/surge-synthesizer-xt-lv2/files/patch-libs_JUCE_modules_juce__graphics_image__formats_juce__PNGLoader.cpp
new file mode 100644
index 000000000000..0b8230cde00b
--- /dev/null
+++ b/audio/surge-synthesizer-xt-lv2/files/patch-libs_JUCE_modules_juce__graphics_image__formats_juce__PNGLoader.cpp
@@ -0,0 +1,10 @@
+--- libs/JUCE/modules/juce_graphics/image_formats/juce_PNGLoader.cpp.orig	2026-06-05 05:33:45 UTC
++++ libs/JUCE/modules/juce_graphics/image_formats/juce_PNGLoader.cpp
+@@ -266,6 +266,7 @@ namespace pnglibNamespace
+   #define PNG_LINKAGE_FUNCTION
+ 
+   #define PNG_ARM_NEON_OPT 0
++  #define PNG_POWERPC_VSX_OPT 0
+ 
+   #if ! defined (PNG_USER_WIDTH_MAX)
+    #define PNG_USER_WIDTH_MAX 1000000


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a253684.1d189.a7b88b3>