summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics/harfbuzz
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2025-04-28 10:02:43 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-04-29 13:13:29 +0100
commit781d7b2082a3533b5d0016aacf8ec27eba1203b6 (patch)
tree67b0c3b7da8b9d97d8ffb1cb6d2f9bf679444141 /meta/recipes-graphics/harfbuzz
parent62c4daafcef2c920607868a0629b9bda59b61951 (diff)
downloadpoky-781d7b2082a3533b5d0016aacf8ec27eba1203b6.tar.gz
harfbuzz: Fix build with gcc-15
GCC-15 inliner at O2 seems to be able to analyse more This is a workaround to compile the one file where it fails to use -Os (From OE-Core rev: 01f2b3f09c3c9999e75f15c9041a0668cb6bb580) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-graphics/harfbuzz')
-rw-r--r--meta/recipes-graphics/harfbuzz/harfbuzz/0001-Use-Os-to-compile-hb-subset-plan-layout.cc.patch72
-rw-r--r--meta/recipes-graphics/harfbuzz/harfbuzz_11.1.0.bb4
2 files changed, 73 insertions, 3 deletions
diff --git a/meta/recipes-graphics/harfbuzz/harfbuzz/0001-Use-Os-to-compile-hb-subset-plan-layout.cc.patch b/meta/recipes-graphics/harfbuzz/harfbuzz/0001-Use-Os-to-compile-hb-subset-plan-layout.cc.patch
new file mode 100644
index 0000000000..299843797b
--- /dev/null
+++ b/meta/recipes-graphics/harfbuzz/harfbuzz/0001-Use-Os-to-compile-hb-subset-plan-layout.cc.patch
@@ -0,0 +1,72 @@
1From 8d876ea19579ee6b687668921c17be423cf7d6c2 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 27 Apr 2025 15:26:09 -0700
4Subject: [PATCH] Use -Os to compile hb-subset-plan-layout.cc
5
6This helps compiling with GCC 15
7
8Reported upstream with GH Issues [1]
9
10[1] https://github.com/harfbuzz/harfbuzz/issues/5306
11
12Upstream-Status: Inappropriate [GCC-15 workaround]
13
14Signed-off-by: Khem Raj <raj.khem@gmail.com>
15---
16 src/meson.build | 15 ++++++++++++---
17 1 file changed, 12 insertions(+), 3 deletions(-)
18
19diff --git a/src/meson.build b/src/meson.build
20index 3d1c00d..fded728 100644
21--- a/src/meson.build
22+++ b/src/meson.build
23@@ -393,7 +393,6 @@ hb_subset_sources = files(
24 'hb-subset-instancer-solver.hh',
25 'hb-subset-instancer-solver.cc',
26 'hb-subset-plan.cc',
27- 'hb-subset-plan-layout.cc',
28 'hb-subset-plan-var.cc',
29 'hb-subset-plan.hh',
30 'hb-subset-plan-member-list.hh',
31@@ -410,6 +409,10 @@ hb_subset_sources = files(
32 'hb-subset.hh',
33 )
34
35+hb_subset_sources_os = files(
36+ 'hb-subset-plan-layout.cc',
37+)
38+
39 hb_subset_headers = files(
40 'hb-subset.h',
41 'hb-subset-serialize.h'
42@@ -618,6 +621,12 @@ endif
43
44 darwin_versions = [hb_version_int, '@0@.0.0'.format(hb_version_int)]
45
46+special_subset_layout_lib = static_library('special_subset_layout',
47+ 'hb-subset-plan-layout.cc',
48+ include_directories: incconfig,
49+ cpp_args: cpp_args + extra_hb_cpp_args + ['-Os'], # <== compile this one with -Os
50+)
51+
52 libharfbuzz = library('harfbuzz', hb_sources,
53 include_directories: incconfig,
54 dependencies: harfbuzz_deps,
55@@ -645,7 +654,7 @@ defs_list += [harfbuzz_subset_def]
56 libharfbuzz_subset = library('harfbuzz-subset', hb_subset_sources,
57 include_directories: incconfig,
58 dependencies: [m_dep],
59- link_with: [libharfbuzz],
60+ link_with: [libharfbuzz] + [special_subset_layout_lib],
61 cpp_args: cpp_args + extra_hb_cpp_args,
62 soversion: hb_so_version,
63 version: version,
64@@ -657,7 +666,7 @@ libharfbuzz_subset = library('harfbuzz-subset', hb_subset_sources,
65 custom_target('harfbuzz-subset.cc',
66 build_by_default: true,
67 output: 'harfbuzz-subset.cc',
68- input: hb_base_sources + hb_subset_sources,
69+ input: hb_base_sources + hb_subset_sources + hb_subset_sources_os,
70 command: [find_program('gen-harfbuzzcc.py'),
71 '@OUTPUT@', meson.current_source_dir(), '@INPUT@'],
72 )
diff --git a/meta/recipes-graphics/harfbuzz/harfbuzz_11.1.0.bb b/meta/recipes-graphics/harfbuzz/harfbuzz_11.1.0.bb
index 645e1e4216..9eaacdaa5a 100644
--- a/meta/recipes-graphics/harfbuzz/harfbuzz_11.1.0.bb
+++ b/meta/recipes-graphics/harfbuzz/harfbuzz_11.1.0.bb
@@ -9,6 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b98429b8e8e3c2a67cfef01e99e4893d \
9 " 9 "
10 10
11SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz" 11SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz"
12SRC_URI += "file://0001-Use-Os-to-compile-hb-subset-plan-layout.cc.patch"
12SRC_URI[sha256sum] = "477f0d48c34dc32093b45304178eb9733361ca1832b5159879c99e6d40227969" 13SRC_URI[sha256sum] = "477f0d48c34dc32093b45304178eb9733361ca1832b5159879c99e6d40227969"
13 14
14DEPENDS += "glib-2.0-native" 15DEPENDS += "glib-2.0-native"
@@ -32,9 +33,6 @@ PACKAGES =+ "${PN}-icu ${PN}-icu-dev ${PN}-subset"
32 33
33LEAD_SONAME = "libharfbuzz.so" 34LEAD_SONAME = "libharfbuzz.so"
34 35
35# Remove when https://github.com/harfbuzz/harfbuzz/issues/4671 is resolved
36EXTRA_OEMESON += "-Dcpp_std=c++17"
37
38do_install:append() { 36do_install:append() {
39 # If no tools are installed due to PACKAGECONFIG then this directory might 37 # If no tools are installed due to PACKAGECONFIG then this directory might
40 # still be installed, so remove it to stop packaging warnings. 38 # still be installed, so remove it to stop packaging warnings.