From d64c3e28dae1ae8d7080cd3492cb35e64fc920ec Mon Sep 17 00:00:00 2001 From: Ionen Wolkens Date: Sun, 31 May 2026 03:45:40 -0400 Subject: [PATCH] dev-qt/qtmultimedia: unkeyword for ppc Failing tests and not that many revdeps, would rather not spend time on this. Also less headaches for bundled eigen which been fragile on ppc32. Note may consider complete ppc32 removal for Qt6 in the future as this may keep getting worse (Qt does not officially support it, and it shouldn't have many users either). Bug: https://bugs.gentoo.org/973096 Signed-off-by: Ionen Wolkens --- .../qtmultimedia-6.7.3-eigen-ppc-no-vsx.patch | 152 ------------------ .../qtmultimedia-6.10.1-r1.ebuild | 6 +- .../qtmultimedia/qtmultimedia-6.10.2.ebuild | 9 +- .../qtmultimedia/qtmultimedia-6.10.3.ebuild | 9 +- .../qtmultimedia/qtmultimedia-6.11.1.ebuild | 5 +- .../qtmultimedia-6.11.9999.ebuild | 5 +- .../qtmultimedia/qtmultimedia-6.9999.ebuild | 5 +- 7 files changed, 6 insertions(+), 185 deletions(-) delete mode 100644 dev-qt/qtmultimedia/files/qtmultimedia-6.7.3-eigen-ppc-no-vsx.patch diff --git a/dev-qt/qtmultimedia/files/qtmultimedia-6.7.3-eigen-ppc-no-vsx.patch b/dev-qt/qtmultimedia/files/qtmultimedia-6.7.3-eigen-ppc-no-vsx.patch deleted file mode 100644 index d7b2351134e2d..0000000000000 --- a/dev-qt/qtmultimedia/files/qtmultimedia-6.7.3-eigen-ppc-no-vsx.patch +++ /dev/null @@ -1,152 +0,0 @@ -Imported from dev-cpp/eigen to use with bundled's (ideally would -unbundle but rather not w/ Qt unless there is an upstream-supported -cmake switch, is likely broken w/ the upcoming eigen version too). - -This is a backport from eigen upstream, so should no longer be needed -whenever there is a bump (not in a release as of the writing of this) -and it is updated here. - -https://bugs.gentoo.org/943402 -https://bugs.gentoo.org/936107 -https://gitlab.com/libeigen/eigen/-/merge_requests/1028 ---- a/src/3rdparty/eigen/Eigen/Core -+++ b/src/3rdparty/eigen/Eigen/Core -@@ -348,3 +348,3 @@ - --#if defined(EIGEN_VECTORIZE_ALTIVEC) || defined(EIGEN_VECTORIZE_VSX) -+#if defined(EIGEN_VECTORIZE_VSX) - #include "src/Core/arch/AltiVec/MatrixProduct.h" ---- a/src/3rdparty/eigen/Eigen/src/Core/arch/AltiVec/Complex.h -+++ b/src/3rdparty/eigen/Eigen/src/Core/arch/AltiVec/Complex.h -@@ -102,2 +102,3 @@ - HasMax = 0, -+ HasSqrt = 1, - #ifdef __VSX__ -@@ -322,2 +323,3 @@ - HasMax = 0, -+ HasSqrt = 1, - HasSetLinear = 0 ---- a/src/3rdparty/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h -+++ b/src/3rdparty/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h -@@ -42,2 +42,3 @@ - -+#ifdef __VSX__ - #ifndef EIGEN_COMP_CLANG -@@ -48,6 +49,3 @@ - } --#endif - --#ifdef __VSX__ --#ifndef EIGEN_COMP_CLANG - template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED -@@ -76,2 +74,22 @@ - } -+ -+template<> EIGEN_STRONG_INLINE Packet8bf psqrt (const Packet8bf& a){ -+ BF16_TO_F32_UNARY_OP_WRAPPER(psqrt, a); -+} -+ -+#ifndef EIGEN_COMP_CLANG -+template<> EIGEN_STRONG_INLINE Packet8bf prsqrt (const Packet8bf& a){ -+ BF16_TO_F32_UNARY_OP_WRAPPER(prsqrt, a); -+} -+#endif -+#else -+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS -+Packet4f psqrt(const Packet4f& x) -+{ -+ Packet4f a; -+ for (Index i = 0; i < packet_traits::size; i++) { -+ a[i] = numext::sqrt(x[i]); -+ } -+ return a; -+} - #endif ---- a/src/3rdparty/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h -+++ b/src/3rdparty/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h -@@ -177,2 +177,5 @@ - #endif -+ HasTanh = EIGEN_FAST_MATH, -+ HasErf = EIGEN_FAST_MATH, -+ HasRint = 1, - #else -@@ -180,4 +183,5 @@ - HasRsqrt = 0, -- HasTanh = EIGEN_FAST_MATH, -- HasErf = EIGEN_FAST_MATH, -+ HasTanh = 0, -+ HasErf = 0, -+ HasRint = 0, - #endif -@@ -186,3 +190,2 @@ - HasCeil = 1, -- HasRint = 1, - HasNegate = 1, -@@ -219,2 +222,3 @@ - #endif -+ HasRint = 1, - #else -@@ -222,5 +226,6 @@ - HasRsqrt = 0, -- HasTanh = EIGEN_FAST_MATH, -- HasErf = EIGEN_FAST_MATH, -+ HasRint = 0, - #endif -+ HasTanh = 0, -+ HasErf = 0, - HasRound = 1, -@@ -228,3 +233,2 @@ - HasCeil = 1, -- HasRint = 1, - HasNegate = 1, -@@ -874,15 +878,25 @@ - -+#ifdef __VSX__ - template<> EIGEN_STRONG_INLINE Packet4i pcmp_le(const Packet4i& a, const Packet4i& b) { return reinterpret_cast(vec_cmple(a,b)); } -+#endif - template<> EIGEN_STRONG_INLINE Packet4i pcmp_lt(const Packet4i& a, const Packet4i& b) { return reinterpret_cast(vec_cmplt(a,b)); } - template<> EIGEN_STRONG_INLINE Packet4i pcmp_eq(const Packet4i& a, const Packet4i& b) { return reinterpret_cast(vec_cmpeq(a,b)); } -+#ifdef __VSX__ - template<> EIGEN_STRONG_INLINE Packet8s pcmp_le(const Packet8s& a, const Packet8s& b) { return reinterpret_cast(vec_cmple(a,b)); } -+#endif - template<> EIGEN_STRONG_INLINE Packet8s pcmp_lt(const Packet8s& a, const Packet8s& b) { return reinterpret_cast(vec_cmplt(a,b)); } - template<> EIGEN_STRONG_INLINE Packet8s pcmp_eq(const Packet8s& a, const Packet8s& b) { return reinterpret_cast(vec_cmpeq(a,b)); } -+#ifdef __VSX__ - template<> EIGEN_STRONG_INLINE Packet8us pcmp_le(const Packet8us& a, const Packet8us& b) { return reinterpret_cast(vec_cmple(a,b)); } -+#endif - template<> EIGEN_STRONG_INLINE Packet8us pcmp_lt(const Packet8us& a, const Packet8us& b) { return reinterpret_cast(vec_cmplt(a,b)); } - template<> EIGEN_STRONG_INLINE Packet8us pcmp_eq(const Packet8us& a, const Packet8us& b) { return reinterpret_cast(vec_cmpeq(a,b)); } -+#ifdef __VSX__ - template<> EIGEN_STRONG_INLINE Packet16c pcmp_le(const Packet16c& a, const Packet16c& b) { return reinterpret_cast(vec_cmple(a,b)); } -+#endif - template<> EIGEN_STRONG_INLINE Packet16c pcmp_lt(const Packet16c& a, const Packet16c& b) { return reinterpret_cast(vec_cmplt(a,b)); } - template<> EIGEN_STRONG_INLINE Packet16c pcmp_eq(const Packet16c& a, const Packet16c& b) { return reinterpret_cast(vec_cmpeq(a,b)); } -+#ifdef __VSX__ - template<> EIGEN_STRONG_INLINE Packet16uc pcmp_le(const Packet16uc& a, const Packet16uc& b) { return reinterpret_cast(vec_cmple(a,b)); } -+#endif - template<> EIGEN_STRONG_INLINE Packet16uc pcmp_lt(const Packet16uc& a, const Packet16uc& b) { return reinterpret_cast(vec_cmplt(a,b)); } -@@ -939,2 +953,3 @@ - template<> EIGEN_STRONG_INLINE Packet4f pfloor(const Packet4f& a) { return vec_floor(a); } -+#ifdef __VSX__ - template<> EIGEN_STRONG_INLINE Packet4f print(const Packet4f& a) -@@ -949,2 +964,3 @@ - } -+#endif - -@@ -1343,8 +1359,2 @@ - --template<> EIGEN_STRONG_INLINE Packet8bf psqrt (const Packet8bf& a){ -- BF16_TO_F32_UNARY_OP_WRAPPER(vec_sqrt, a); --} --template<> EIGEN_STRONG_INLINE Packet8bf prsqrt (const Packet8bf& a){ -- BF16_TO_F32_UNARY_OP_WRAPPER(prsqrt, a); --} - template<> EIGEN_STRONG_INLINE Packet8bf pexp (const Packet8bf& a){ -@@ -1392,2 +1402,3 @@ - } -+#ifdef __VSX__ - template<> EIGEN_STRONG_INLINE Packet8bf print (const Packet8bf& a){ -@@ -1395,2 +1406,3 @@ - } -+#endif - template<> EIGEN_STRONG_INLINE Packet8bf pmadd(const Packet8bf& a, const Packet8bf& b, const Packet8bf& c) { diff --git a/dev-qt/qtmultimedia/qtmultimedia-6.10.1-r1.ebuild b/dev-qt/qtmultimedia/qtmultimedia-6.10.1-r1.ebuild index d5552c33bf6cd..064475d1cbcdd 100644 --- a/dev-qt/qtmultimedia/qtmultimedia-6.10.1-r1.ebuild +++ b/dev-qt/qtmultimedia/qtmultimedia-6.10.1-r1.ebuild @@ -9,7 +9,7 @@ inherit flag-o-matic qt6-build DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework" if [[ ${QT6_BUILD_TYPE} == release ]]; then - KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc64 ~riscv x86" fi IUSE=" @@ -93,14 +93,10 @@ CMAKE_SKIP_TESTS=( ) PATCHES=( - "${FILESDIR}"/${PN}-6.7.3-eigen-ppc-no-vsx.patch "${FILESDIR}"/${PN}-6.10.1-QTBUG-142166.patch ) src_configure() { - # eigen + ppc32 seems broken w/ -maltivec (forced by Qt, bug #943402) - use ppc && append-cppflags -DEIGEN_DONT_VECTORIZE - # normally passed by the build system, but needed for 32-on-64 chroots use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE diff --git a/dev-qt/qtmultimedia/qtmultimedia-6.10.2.ebuild b/dev-qt/qtmultimedia/qtmultimedia-6.10.2.ebuild index 31617ce075e91..b8a53451bc6d3 100644 --- a/dev-qt/qtmultimedia/qtmultimedia-6.10.2.ebuild +++ b/dev-qt/qtmultimedia/qtmultimedia-6.10.2.ebuild @@ -9,7 +9,7 @@ inherit flag-o-matic qt6-build DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework" if [[ ${QT6_BUILD_TYPE} == release ]]; then - KEYWORDS="amd64 arm arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv x86" + KEYWORDS="amd64 arm arm64 ~hppa ~loong ~ppc64 ~riscv x86" fi IUSE=" @@ -92,14 +92,7 @@ CMAKE_SKIP_TESTS=( tst_qwindowcapturebackend ) -PATCHES=( - "${FILESDIR}"/${PN}-6.7.3-eigen-ppc-no-vsx.patch -) - src_configure() { - # eigen + ppc32 seems broken w/ -maltivec (forced by Qt, bug #943402) - use ppc && append-cppflags -DEIGEN_DONT_VECTORIZE - # normally passed by the build system, but needed for 32-on-64 chroots use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE diff --git a/dev-qt/qtmultimedia/qtmultimedia-6.10.3.ebuild b/dev-qt/qtmultimedia/qtmultimedia-6.10.3.ebuild index bd6a8eef79c30..ab5ef435e4ccf 100644 --- a/dev-qt/qtmultimedia/qtmultimedia-6.10.3.ebuild +++ b/dev-qt/qtmultimedia/qtmultimedia-6.10.3.ebuild @@ -9,7 +9,7 @@ inherit flag-o-matic qt6-build DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework" if [[ ${QT6_BUILD_TYPE} == release ]]; then - KEYWORDS="amd64 arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv x86" + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc64 ~riscv x86" fi IUSE=" @@ -91,10 +91,6 @@ CMAKE_SKIP_TESTS=( tst_qwindowcapturebackend ) -PATCHES=( - "${FILESDIR}"/${PN}-6.7.3-eigen-ppc-no-vsx.patch -) - src_prepare() { qt6-build_src_prepare @@ -106,9 +102,6 @@ src_prepare() { } src_configure() { - # eigen + ppc32 seems broken w/ -maltivec (forced by Qt, bug #943402) - use ppc && append-cppflags -DEIGEN_DONT_VECTORIZE - # normally passed by the build system, but needed for 32-on-64 chroots use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE diff --git a/dev-qt/qtmultimedia/qtmultimedia-6.11.1.ebuild b/dev-qt/qtmultimedia/qtmultimedia-6.11.1.ebuild index a41321e3e13e7..336794d604334 100644 --- a/dev-qt/qtmultimedia/qtmultimedia-6.11.1.ebuild +++ b/dev-qt/qtmultimedia/qtmultimedia-6.11.1.ebuild @@ -9,7 +9,7 @@ inherit flag-o-matic qt6-build DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework" if [[ ${QT6_BUILD_TYPE} == release ]]; then - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc64 ~riscv ~x86" fi IUSE=" @@ -103,9 +103,6 @@ src_prepare() { } src_configure() { - # eigen + ppc32 seems broken w/ -maltivec (forced by Qt, bug #943402) - use ppc && append-cppflags -DEIGEN_DONT_VECTORIZE - # normally passed by the build system, but needed for 32-on-64 chroots use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE diff --git a/dev-qt/qtmultimedia/qtmultimedia-6.11.9999.ebuild b/dev-qt/qtmultimedia/qtmultimedia-6.11.9999.ebuild index a41321e3e13e7..336794d604334 100644 --- a/dev-qt/qtmultimedia/qtmultimedia-6.11.9999.ebuild +++ b/dev-qt/qtmultimedia/qtmultimedia-6.11.9999.ebuild @@ -9,7 +9,7 @@ inherit flag-o-matic qt6-build DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework" if [[ ${QT6_BUILD_TYPE} == release ]]; then - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc64 ~riscv ~x86" fi IUSE=" @@ -103,9 +103,6 @@ src_prepare() { } src_configure() { - # eigen + ppc32 seems broken w/ -maltivec (forced by Qt, bug #943402) - use ppc && append-cppflags -DEIGEN_DONT_VECTORIZE - # normally passed by the build system, but needed for 32-on-64 chroots use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE diff --git a/dev-qt/qtmultimedia/qtmultimedia-6.9999.ebuild b/dev-qt/qtmultimedia/qtmultimedia-6.9999.ebuild index a41321e3e13e7..336794d604334 100644 --- a/dev-qt/qtmultimedia/qtmultimedia-6.9999.ebuild +++ b/dev-qt/qtmultimedia/qtmultimedia-6.9999.ebuild @@ -9,7 +9,7 @@ inherit flag-o-matic qt6-build DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework" if [[ ${QT6_BUILD_TYPE} == release ]]; then - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc64 ~riscv ~x86" fi IUSE=" @@ -103,9 +103,6 @@ src_prepare() { } src_configure() { - # eigen + ppc32 seems broken w/ -maltivec (forced by Qt, bug #943402) - use ppc && append-cppflags -DEIGEN_DONT_VECTORIZE - # normally passed by the build system, but needed for 32-on-64 chroots use x86 && append-cppflags -DDISABLE_SIMD -DPFFFT_SIMD_DISABLE