diff options
| author | Changqing Li <changqing.li@windriver.com> | 2024-07-16 17:46:33 +0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-07-18 17:21:39 +0100 |
| commit | 23e4ffef1164e7eb4a569608d00d4eaeadad047c (patch) | |
| tree | d22683a6df5395c8b0d3a6055900b8b5c6e1d31a /meta | |
| parent | 7b8d63b1e24d2627e14c0762c0882b1f92360804 (diff) | |
| download | poky-23e4ffef1164e7eb4a569608d00d4eaeadad047c.tar.gz | |
pixman: update patch for fixing inline failure with -Og
Previous patch works on fedora40 with gcc-14, but not works
on ubuntu2004 with gcc-9. Update the patch to fix the do_compile
failure:
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)
(From OE-Core rev: 5eb77c3e142dd952b5e35647f76fdd420a1f1613)
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
3 files changed, 57 insertions, 37 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/0001-pixman-combine-float.c-replace-force_inline-with-__.patch b/meta/recipes-graphics/xorg-lib/pixman/0001-pixman-combine-float.c-replace-force_inline-with-__.patch deleted file mode 100644 index cae201629f..0000000000 --- a/meta/recipes-graphics/xorg-lib/pixman/0001-pixman-combine-float.c-replace-force_inline-with-__.patch +++ /dev/null | |||
| @@ -1,36 +0,0 @@ | |||
| 1 | From 49a1644015d073829c17dcd977aab6fdda1ebdee Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Changqing Li <changqing.li@windriver.com> | ||
| 3 | Date: Fri, 5 Jul 2024 07:33:44 +0000 | ||
| 4 | Subject: [PATCH] pixman-combine-float.c: replace force_inline with __inline__ | ||
| 5 | |||
| 6 | Refer [1], always-inline is not suggested to be used if you have indirect | ||
| 7 | calls. so replace force_inline with __inline__ to fix error: | ||
| 8 | In function ‘combine_inner’, | ||
| 9 | inlined from ‘combine_soft_light_ca_float’ at ../pixman/pixman-combine-float.c:655:511: | ||
| 10 | ../pixman/pixman-combine-float.c:655:211: error: inlining failed in call to ‘always_inline’ ‘combine_soft_light_c’: function not considered for inlining | ||
| 11 | |||
| 12 | [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115679 | ||
| 13 | |||
| 14 | Upstream-Status: Submitted [https://www.mail-archive.com/pixman@lists.freedesktop.org/msg04812.html] | ||
| 15 | |||
| 16 | Signed-off-by: Changqing Li <changqing.li@windriver.com> | ||
| 17 | --- | ||
| 18 | pixman/pixman-combine-float.c | 2 +- | ||
| 19 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 20 | |||
| 21 | diff --git a/pixman/pixman-combine-float.c b/pixman/pixman-combine-float.c | ||
| 22 | index f5145bc..52400f4 100644 | ||
| 23 | --- a/pixman/pixman-combine-float.c | ||
| 24 | +++ b/pixman/pixman-combine-float.c | ||
| 25 | @@ -44,7 +44,7 @@ | ||
| 26 | |||
| 27 | typedef float (* combine_channel_t) (float sa, float s, float da, float d); | ||
| 28 | |||
| 29 | -static force_inline void | ||
| 30 | +static __inline__ void | ||
| 31 | combine_inner (pixman_bool_t component, | ||
| 32 | float *dest, const float *src, const float *mask, int n_pixels, | ||
| 33 | combine_channel_t combine_a, combine_channel_t combine_c) | ||
| 34 | -- | ||
| 35 | 2.44.0 | ||
| 36 | |||
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 88eef50f7b..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,7 +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-replace-force_inline-with-__.patch \ | 12 | file://0001-pixman-combine-float.c-fix-inlining-failed-in-call-t.patch \ |
| 13 | " | 13 | " |
| 14 | SRC_URI[sha256sum] = "ea1480efada2fd948bc75366f7c349e1c96d3297d09a3fe62626e38e234a625e" | 14 | SRC_URI[sha256sum] = "ea1480efada2fd948bc75366f7c349e1c96d3297d09a3fe62626e38e234a625e" |
| 15 | 15 | ||
