diff --git a/package/pixman/0003-pixman-combine-float.c-fix-inlining-failed-error.patch b/package/pixman/0003-pixman-combine-float.c-fix-inlining-failed-error.patch new file mode 100644 index 0000000000..1c4b153fc5 --- /dev/null +++ b/package/pixman/0003-pixman-combine-float.c-fix-inlining-failed-error.patch @@ -0,0 +1,56 @@ +From 643f098a3922592c82f3ea19668a1596d92a3e7b Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Tue, 16 Jul 2024 15:31:16 +0800 +Subject: [PATCH] pixman-combine-float.c: fix inlining failed error +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Refer [1], always-inline is not suggested to be used if you have indirect +calls. so replace force_inline with inline to fix error like: +In function ‘combine_inner’, + inlined from ‘combine_soft_light_ca_float’ at ../pixman/pixman-combine-float.c:655:511: +../pixman/pixman-combine-float.c:655:211: error: inlining failed in call to ‘always_inline’ ‘combine_soft_light_c’: function not considered for inlining + +Test with gcc-9 and gcc-14, both works well + +[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115679 + +Signed-off-by: Changqing Li +Upstream: https://gitlab.freedesktop.org/pixman/pixman/-/commit/643f098a3922592c82f3ea19668a1596d92a3e7b +--- + pixman/pixman-combine-float.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/pixman/pixman-combine-float.c b/pixman/pixman-combine-float.c +index e1f8030..230164f 100644 +--- a/pixman/pixman-combine-float.c ++++ b/pixman/pixman-combine-float.c +@@ -261,7 +261,7 @@ get_factor (combine_factor_t factor, float sa, float da) + } + + #define MAKE_PD_COMBINERS(name, a, b) \ +- static float force_inline \ ++ static float \ + pd_combine_ ## name (float sa, float s, float da, float d) \ + { \ + const float fa = get_factor (a, sa, da); \ +@@ -360,13 +360,13 @@ MAKE_PD_COMBINERS (conjoint_xor, ONE_MINUS_DA_OVER_SA, ONE_MINUS_SA_OVER_DA) + */ + + #define MAKE_SEPARABLE_PDF_COMBINERS(name) \ +- static force_inline float \ ++ static float \ + combine_ ## name ## _a (float sa, float s, float da, float d) \ + { \ + return da + sa - da * sa; \ + } \ + \ +- static force_inline float \ ++ static float \ + combine_ ## name ## _c (float sa, float s, float da, float d) \ + { \ + float f = (1 - sa) * d + (1 - da) * s; \ +-- +2.47.1 +