commit:     e7c418ad3e6a28b7a34925092a57b89f0cc887e2
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 26 07:01:19 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Dec 26 07:08:02 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e7c418ad

media-video/handbrake: fix arm64 build

Closes: https://bugs.gentoo.org/946885
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/handbrake-1.9.0-arm64-c99.patch          | 77 ++++++++++++++++++++++
 media-video/handbrake/handbrake-1.9.0.ebuild       |  1 +
 2 files changed, 78 insertions(+)

diff --git a/media-video/handbrake/files/handbrake-1.9.0-arm64-c99.patch 
b/media-video/handbrake/files/handbrake-1.9.0-arm64-c99.patch
new file mode 100644
index 000000000000..ba795cc607b2
--- /dev/null
+++ b/media-video/handbrake/files/handbrake-1.9.0-arm64-c99.patch
@@ -0,0 +1,77 @@
+https://bugs.gentoo.org/946885
+https://github.com/HandBrake/HandBrake/issues/6454
+https://github.com/HandBrake/HandBrake/pull/6463
+
+From f8550e62e853348d36e0f0fc8e757a18fb3ac784 Mon Sep 17 00:00:00 2001
+From: Dash Santosh <[email protected]>
+Date: Tue, 3 Dec 2024 06:43:59 -0800
+Subject: [PATCH] build: fix gcc14 aarch64 build failure
+
+---
+ libhb/templates/comb_detect_template.c | 8 ++++----
+ libhb/templates/decomb_template.c      | 4 ++--
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/libhb/templates/comb_detect_template.c 
b/libhb/templates/comb_detect_template.c
+index dfda498b2023..89bd0a468a28 100644
+--- a/libhb/templates/comb_detect_template.c
++++ b/libhb/templates/comb_detect_template.c
+@@ -270,7 +270,7 @@ static void 
FUNC(detect_gamma_combed_segment)(hb_filter_private_t *pv,
+                 mask_vec = vandq_u32(mask_vec, condition);
+                 mask_vec = vandq_u32(mask_vec, v_one);
+ 
+-                vst1q_u32(&mask32, mask_vec);
++                vst1q_u32(mask32, mask_vec);
+ 
+                 mask[0] = mask32[0];
+                 mask[1] = mask32[1];
+@@ -550,7 +550,7 @@ static void 
FUNC(detect_combed_segment)(hb_filter_private_t *pv,
+                         mask_vec = vandq_u32(mask_vec, condition);
+                         mask_vec = vandq_u32(mask_vec, v_one);
+ 
+-                        vst1q_u32(&mask32, mask_vec);
++                        vst1q_u32(mask32, mask_vec);
+ 
+                         mask[0] = mask32[0];
+                         mask[1] = mask32[1];
+@@ -568,7 +568,7 @@ static void 
FUNC(detect_combed_segment)(hb_filter_private_t *pv,
+                         mask_vec = vandq_u32(mask_vec, condition);
+                         mask_vec = vandq_u32(mask_vec, v_one);
+ 
+-                        vst1q_u32(&mask32, mask_vec);
++                        vst1q_u32(mask32, mask_vec);
+ 
+                         mask[0] = mask32[0];
+                         mask[1] = mask32[1];
+@@ -585,7 +585,7 @@ static void 
FUNC(detect_combed_segment)(hb_filter_private_t *pv,
+                         mask_vec = vandq_u32(mask_vec, condition);
+                         mask_vec = vandq_u32(mask_vec, v_one);
+ 
+-                        vst1q_u32(&mask32, mask_vec);
++                        vst1q_u32(mask32, mask_vec);
+ 
+                         mask[0] = mask32[0];
+                         mask[1] = mask32[1];
+diff --git a/libhb/templates/decomb_template.c 
b/libhb/templates/decomb_template.c
+index a46cae506f9a..b5b557186cc2 100644
+--- a/libhb/templates/decomb_template.c
++++ b/libhb/templates/decomb_template.c
+@@ -181,7 +181,7 @@ static void FUNC(blend_filter_line)(const filter_param_t 
*filter,
+         result = vshrq_n_s32(result, 3);
+ 
+         uint32x4_t result_u32 = vreinterpretq_u32_s32(vaddq_s32(result, 
offset));
+-        vst1q_u32(&cr_table_vec, result_u32);
++        vst1q_u32(cr_table_vec, result_u32);
+         dst[x+0] = crop_table[cr_table_vec[0]];
+         dst[x+1] = crop_table[cr_table_vec[1]];
+         dst[x+2] = crop_table[cr_table_vec[2]];
+@@ -263,7 +263,7 @@ static void FUNC(blend_filter_line)(const filter_param_t 
*filter,
+         result = vshrq_n_s16(result, 3);
+ 
+         uint16x8_t result_u16 = vreinterpretq_u16_s16(vaddq_s16(result, 
offset));
+-        vst1q_u16(&cr_table_vec, result_u16);
++        vst1q_u16(cr_table_vec, result_u16);
+         dst[x+0] = crop_table[cr_table_vec[0]];
+         dst[x+1] = crop_table[cr_table_vec[1]];
+         dst[x+2] = crop_table[cr_table_vec[2]];
+

diff --git a/media-video/handbrake/handbrake-1.9.0.ebuild 
b/media-video/handbrake/handbrake-1.9.0.ebuild
index 87d75de6700c..565fcec3cad9 100644
--- a/media-video/handbrake/handbrake-1.9.0.ebuild
+++ b/media-video/handbrake/handbrake-1.9.0.ebuild
@@ -111,6 +111,7 @@ BDEPEND="
 PATCHES=(
        "${FILESDIR}"/handbrake-1.9.0-link-libdovi-properly.patch
        "${FILESDIR}"/handbrake-1.9.0-include-vpl-properly.patch
+       "${FILESDIR}"/handbrake-1.9.0-arm64-c99.patch
 )
 
 src_unpack() {

Reply via email to