diff mbox series

vte: fix build failed for ppc64

Message ID 20251223085453.1635323-1-hongxu.jia@windriver.com
State New
Headers show
Series vte: fix build failed for ppc64 | expand

Commit Message

Hongxu Jia Dec. 23, 2025, 8:54 a.m. UTC
$ echo 'MACHINE = "qemuppc64"' >> conf/local.conf
$ bitbake vte
...
|subprojects/simdutf/simdutf.cpp:20533:7: error: there are no arguments to 'write_v_u16_11bits_to_utf8' that depend on a template parameter, so a declaration of 'write_v_u16_11bits_to_utf8' must be available [-Wtemplate-body]
|20533 |       write_v_u16_11bits_to_utf8(
|      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~
|subprojects/simdutf/simdutf.cpp:20533:7: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
|subprojects/simdutf/simdutf.cpp:20559:7: error: there are no arguments to 'ppc64_convert_utf16_to_1_2_3_bytes_of_utf8' that depend on a template parameter, so a declaration of 'ppc64_convert_utf16_to_1_2_3_bytes_of_utf8' must be available [-Wtemplate-body]
|20559 |       ppc64_convert_utf16_to_1_2_3_bytes_of_utf8(
|      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|subprojects/simdutf/simdutf.cpp:20533:33: error: 'write_v_u16_11bits_to_utf8' was not declared in this scope
|20533 |       write_v_u16_11bits_to_utf8(
|      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~^
|20534 |           in, utf8_output, as_vector_u8(one_byte_bytemask), one_byte_bitmask);
|      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...

The source file subprojects/simdutf/simdutf.cpp is generated by python3
script singleheader/amalgamate.py and the definition of write_v_u16_11bits_to_utf8
for ppc64 requires option --with-utf16 and --with-latin1

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 .../0001-fix-compile-failed-on-ppc64.patch    | 50 +++++++++++++++++++
 meta/recipes-support/vte/vte_0.82.1.bb        |  3 ++
 2 files changed, 53 insertions(+)
 create mode 100644 meta/recipes-support/vte/vte/0001-fix-compile-failed-on-ppc64.patch

Comments

Alexander Kanavin Dec. 23, 2025, 10:27 a.m. UTC | #1
On Tue, 23 Dec 2025 at 09:55, hongxu via lists.openembedded.org
<hongxu.jia=windriver.com@lists.openembedded.org> wrote:
> +Upstream-Status: Inappropriate [Yocto specific for ppc64]
> +
> +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> +---
> + meson.build | 3 ++-
> + 1 file changed, 2 insertions(+), 1 deletion(-)
> +
> +diff --git a/meson.build b/meson.build
> +index 330ee89..a6c64ca 100644
> +--- a/meson.build
> ++++ b/meson.build
> +@@ -41,10 +41,11 @@ simdutf_amalgamate = [
> +   '--no-zip',
> +   '--no-readme',
> +   '--with-utf8',
> +-  # '--with-utf16',
> ++  '--with-utf16',
> +   '--with-utf32',
> +   # '--with-base64',
> +   # '--with-detect-enc',
> ++  '--with-latin1',
> +   '--with-ascii',

Why these particular options are necessary on powerpc64 but not other
targets? They do not seem specific to that platform.

Also carrying conditional patches for configurations that aren't
tested in CI is prone to quiet regressions (including such patches
failing to apply after a version update). I'd say you need to both
investigate a bit deeper, and raise the issue with both vte and
simdutf upstreams.

Alex
diff mbox series

Patch

diff --git a/meta/recipes-support/vte/vte/0001-fix-compile-failed-on-ppc64.patch b/meta/recipes-support/vte/vte/0001-fix-compile-failed-on-ppc64.patch
new file mode 100644
index 0000000000..24568f9b8c
--- /dev/null
+++ b/meta/recipes-support/vte/vte/0001-fix-compile-failed-on-ppc64.patch
@@ -0,0 +1,50 @@ 
+From de8a97d73613378fd86467c1323eac7aaaa3154d Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 23 Dec 2025 16:18:52 +0800
+Subject: [PATCH] fix compile failed on ppc64
+
+...
+|subprojects/simdutf/simdutf.cpp:20533:7: error: there are no arguments to 'write_v_u16_11bits_to_utf8' that depend on a template parameter, so a declaration of 'write_v_u16_11bits_to_utf8' must be available [-Wtemplate-body]
+|20533 |       write_v_u16_11bits_to_utf8(
+|      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~
+|subprojects/simdutf/simdutf.cpp:20533:7: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
+|subprojects/simdutf/simdutf.cpp:20559:7: error: there are no arguments to 'ppc64_convert_utf16_to_1_2_3_bytes_of_utf8' that depend on a template parameter, so a declaration of 'ppc64_convert_utf16_to_1_2_3_bytes_of_utf8' must be available [-Wtemplate-body]
+|20559 |       ppc64_convert_utf16_to_1_2_3_bytes_of_utf8(
+|      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+|subprojects/simdutf/simdutf.cpp:20533:33: error: 'write_v_u16_11bits_to_utf8' was not declared in this scope
+|20533 |       write_v_u16_11bits_to_utf8(
+|      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~^
+|20534 |           in, utf8_output, as_vector_u8(one_byte_bytemask), one_byte_bitmask);
+|      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+...
+
+Build failed on ppc64, the definition of write_v_u16_11bits_to_utf8 requires
+--with-utf16 and --with-latin1
+
+Upstream-Status: Inappropriate [Yocto specific for ppc64]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ meson.build | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 330ee89..a6c64ca 100644
+--- a/meson.build
++++ b/meson.build
+@@ -41,10 +41,11 @@ simdutf_amalgamate = [
+   '--no-zip',
+   '--no-readme',
+   '--with-utf8',
+-  # '--with-utf16',
++  '--with-utf16',
+   '--with-utf32',
+   # '--with-base64',
+   # '--with-detect-enc',
++  '--with-latin1',
+   '--with-ascii',
+ ]
+ 
+-- 
+2.34.1
+
diff --git a/meta/recipes-support/vte/vte_0.82.1.bb b/meta/recipes-support/vte/vte_0.82.1.bb
index b5d6f2fb62..3179393bd4 100644
--- a/meta/recipes-support/vte/vte_0.82.1.bb
+++ b/meta/recipes-support/vte/vte_0.82.1.bb
@@ -20,6 +20,9 @@  inherit gnomebase gi-docgen features_check upstream-version-is-even gobject-intr
 SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \
             file://0001-support-reproducibility-for-debug-sources.patch;patchdir=./subprojects/simdutf \
 "
+SRC_URI:append:class-target:powerpc64le = " \
+            file://0001-fix-compile-failed-on-ppc64.patch;patchdir=./subprojects/simdutf \
+"
 
 SRC_URI[archive.sha256sum] = "79376d70402d271e2d38424418e1aea72357934d272e321e3906b71706a78e3a"