diff options
| author | Changqing Li <changqing.li@windriver.com> | 2024-07-16 17:58:03 +0800 |
|---|---|---|
| committer | Steve Sakoman <steve@sakoman.com> | 2024-07-23 06:05:47 -0700 |
| commit | 688146cd1893d81dc6deed56a05250c52e6432bb (patch) | |
| tree | 3c6f3908af0f8274309729947d6d436dafc1093d | |
| parent | 6c972f812beecb0bec3e295346bd28aca76947ac (diff) | |
| download | poky-688146cd1893d81dc6deed56a05250c52e6432bb.tar.gz | |
pixman: fixing inline failure with -Og
When debug build is enabled(-Og is used), pixman-native do_compile
failed with error:
In function ‘combine_inner’,
inlined from ‘combine_soft_light_ca_float’ at ../pixman-0.42.2/pixman/pixman-combine-float.c:655:1:
../pixman-0.42.2/pixman/pixman-combine-float.c:370:5: error: inlining failed in call to ‘always_inline’ ‘combine_soft_light_c’: function not considered for inlining
370 | combine_ ## name ## _c (float sa, float s, float da, float d)
Refer [1], always_inline is not suggested to use with indirect function
call, replace always_inline with __inline__ to fix the issue
[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107931
(From OE-Core rev: 6cd503c5e84bf8090b840c69c7569ae1a46528d0)
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
| -rw-r--r-- | meta/recipes-graphics/xorg-lib/pixman/0001-pixman-combine-float.c-fix-inlining-failed-in-call-t.patch | 56 | ||||
| -rw-r--r-- | meta/recipes-graphics/xorg-lib/pixman_0.42.2.bb | 1 |
2 files changed, 57 insertions, 0 deletions
diff --git a/meta/recipes-graphics/xorg-lib/pixman/0001-pixman-combine-float.c-fix-inlining-failed-in-call-t.patch b/meta/recipes-graphics/xorg-lib/pixman/0001-pixman-combine-float.c-fix-inlining-failed-in-call-t.patch new file mode 100644 index 0000000000..5c79754e50 --- /dev/null +++ b/meta/recipes-graphics/xorg-lib/pixman/0001-pixman-combine-float.c-fix-inlining-failed-in-call-t.patch | |||
| @@ -0,0 +1,56 @@ | |||
| 1 | From 1e32984ccd58da1a66ca918d170a6b1829ef9df2 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Changqing Li <changqing.li@windriver.com> | ||
| 3 | Date: Tue, 16 Jul 2024 15:31:16 +0800 | ||
| 4 | Subject: [PATCH] pixman-combine-float.c: fix inlining failed in call to | ||
| 5 | always_inline | ||
| 6 | MIME-Version: 1.0 | ||
| 7 | Content-Type: text/plain; charset=UTF-8 | ||
| 8 | Content-Transfer-Encoding: 8bit | ||
| 9 | |||
| 10 | Refer [1], always-inline is not suggested to be used if you have indirect | ||
| 11 | calls. so replace force_inline with inline to fix error: | ||
| 12 | In function ‘combine_inner’, | ||
| 13 | inlined from ‘combine_soft_light_ca_float’ at ../pixman/pixman-combine-float.c:655:511: | ||
| 14 | ../pixman/pixman-combine-float.c:655:211: error: inlining failed in call to ‘always_inline’ ‘combine_soft_light_c’: function not considered for inlining | ||
| 15 | |||
| 16 | [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115679 | ||
| 17 | |||
| 18 | Upstream-Status: Submitted [https://www.mail-archive.com/pixman@lists.freedesktop.org/msg04812.html] | ||
| 19 | |||
| 20 | Signed-off-by: Changqing Li <changqing.li@windriver.com> | ||
| 21 | --- | ||
| 22 | pixman/pixman-combine-float.c | 6 +++--- | ||
| 23 | 1 file changed, 3 insertions(+), 3 deletions(-) | ||
| 24 | |||
| 25 | diff --git a/pixman/pixman-combine-float.c b/pixman/pixman-combine-float.c | ||
| 26 | index f5145bc..f65eb5f 100644 | ||
| 27 | --- a/pixman/pixman-combine-float.c | ||
| 28 | +++ b/pixman/pixman-combine-float.c | ||
| 29 | @@ -261,7 +261,7 @@ get_factor (combine_factor_t factor, float sa, float da) | ||
| 30 | } | ||
| 31 | |||
| 32 | #define MAKE_PD_COMBINERS(name, a, b) \ | ||
| 33 | - static float force_inline \ | ||
| 34 | + static float inline \ | ||
| 35 | pd_combine_ ## name (float sa, float s, float da, float d) \ | ||
| 36 | { \ | ||
| 37 | const float fa = get_factor (a, sa, da); \ | ||
| 38 | @@ -360,13 +360,13 @@ MAKE_PD_COMBINERS (conjoint_xor, ONE_MINUS_DA_OVER_SA, ONE_MINUS_SA_OVER_DA) | ||
| 39 | */ | ||
| 40 | |||
| 41 | #define MAKE_SEPARABLE_PDF_COMBINERS(name) \ | ||
| 42 | - static force_inline float \ | ||
| 43 | + static inline float \ | ||
| 44 | combine_ ## name ## _a (float sa, float s, float da, float d) \ | ||
| 45 | { \ | ||
| 46 | return da + sa - da * sa; \ | ||
| 47 | } \ | ||
| 48 | \ | ||
| 49 | - static force_inline float \ | ||
| 50 | + static inline float \ | ||
| 51 | combine_ ## name ## _c (float sa, float s, float da, float d) \ | ||
| 52 | { \ | ||
| 53 | float f = (1 - sa) * d + (1 - da) * s; \ | ||
| 54 | -- | ||
| 55 | 2.25.1 | ||
| 56 | |||
diff --git a/meta/recipes-graphics/xorg-lib/pixman_0.42.2.bb b/meta/recipes-graphics/xorg-lib/pixman_0.42.2.bb index 23ae0cbb27..3c55c1705a 100644 --- a/meta/recipes-graphics/xorg-lib/pixman_0.42.2.bb +++ b/meta/recipes-graphics/xorg-lib/pixman_0.42.2.bb | |||
| @@ -9,6 +9,7 @@ DEPENDS = "zlib" | |||
| 9 | 9 | ||
| 10 | SRC_URI = "https://www.cairographics.org/releases/${BP}.tar.gz \ | 10 | SRC_URI = "https://www.cairographics.org/releases/${BP}.tar.gz \ |
| 11 | file://0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch \ | 11 | file://0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch \ |
| 12 | file://0001-pixman-combine-float.c-fix-inlining-failed-in-call-t.patch \ | ||
| 12 | " | 13 | " |
| 13 | SRC_URI[sha256sum] = "ea1480efada2fd948bc75366f7c349e1c96d3297d09a3fe62626e38e234a625e" | 14 | SRC_URI[sha256sum] = "ea1480efada2fd948bc75366f7c349e1c96d3297d09a3fe62626e38e234a625e" |
| 14 | 15 | ||
