package/pixman: backport patch to fix inlining issue
pixman fails to build with -Og or -O3 due to forced inlining statements: pixman-combine-float.c:370:5: error: inlining failed in call to 'always_inline' 'combine_soft_light_c': function not considered for inlining The first occurence in the autobuilders is on May 12, 2024, but the problem already existed before as we haven't updated pixman in a long time. Therefore, the issue started occurring because we started testing more random configurations. Fixes: https://autobuild.buildroot.org/results/2f3df7961b3181d9eef79893439ae7ebbe4415ad/ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Julien Olivain <ju.o@free.fr> (cherry picked from commit 696de595e028daaec4d66792bb2d3db74c72f07e) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
d1b481bf80
commit
138e4b2d14
@ -0,0 +1,56 @@
|
||||
From 643f098a3922592c82f3ea19668a1596d92a3e7b Mon Sep 17 00:00:00 2001
|
||||
From: Changqing Li <changqing.li@windriver.com>
|
||||
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 <changqing.li@windriver.com>
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user