diff options
author | Mingli Yu <mingli.yu@windriver.com> | 2022-06-02 13:46:40 +0800 |
---|---|---|
committer | Steve Sakoman <steve@sakoman.com> | 2022-06-06 05:32:51 -1000 |
commit | 4eb85dbace4d6d2cccdeed96b4aee80a8fc24e37 (patch) | |
tree | ae83c6e01fd46004c600f63ccb6c27a99e608b20 | |
parent | be70f51806d66daf1994a492dc446062838c0e21 (diff) | |
download | openembedded-core-contrib-4eb85dbace4d6d2cccdeed96b4aee80a8fc24e37.tar.gz |
perl: Fix build with gcc-12
Fix the build failure when debug build is enabled.
Add DEBUG_BUILD = "1" in conf/local.conf.
$ bitbake perl
| In function 'dynprep',
inlined from 'S_sortsv_flags_impl' at pp_sort.c:358:20,
inlined from 'sortsv_amagic_i_ncmp' at pp_sort.c:572:5:
| pp_sort.c:1232:1: error: inlining failed in call to 'always_inline' 'S_amagic_i_ncmp': function not considered for inlining
| 1232 | S_amagic_i_ncmp(pTHX_ SV *const a, SV *const b)
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 880296e68cfd92cfd4c9474972c8d8e6f21a2a40)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rw-r--r-- | meta/recipes-devtools/perl/files/0001-Fix-build-with-gcc-12.patch | 143 | ||||
-rw-r--r-- | meta/recipes-devtools/perl/perl_5.34.1.bb | 1 |
2 files changed, 144 insertions, 0 deletions
diff --git a/meta/recipes-devtools/perl/files/0001-Fix-build-with-gcc-12.patch b/meta/recipes-devtools/perl/files/0001-Fix-build-with-gcc-12.patch new file mode 100644 index 0000000000..1d98e1389b --- /dev/null +++ b/meta/recipes-devtools/perl/files/0001-Fix-build-with-gcc-12.patch @@ -0,0 +1,143 @@ +From ee957eb9e4ec29a462cdbb2f3bbe29d4270534ef Mon Sep 17 00:00:00 2001 +From: Mingli Yu <mingli.yu@windriver.com> +Date: Thu, 2 Jun 2022 13:01:37 +0800 +Subject: [PATCH] proto.h: Fix build with gcc-12 + +Fixes: + In function 'dynprep', + inlined from 'S_sortsv_flags_impl' at pp_sort.c:358:20, + inlined from 'sortsv_amagic_i_ncmp' at pp_sort.c:572:5: + pp_sort.c:1232:1: error: inlining failed in call to 'always_inline' 'S_amagic_i_ncmp': function not considered for inlining + 1232 | S_amagic_i_ncmp(pTHX_ SV *const a, SV *const b) + +Upstream-Status: Submitted [https://github.com/Perl/perl5/pull/19808] + +Signed-off-by: Mingli Yu <mingli.yu@windriver.com> +--- + proto.h | 42 ++++++++++++++---------------------------- + 1 file changed, 14 insertions(+), 28 deletions(-) + +diff --git a/proto.h b/proto.h +index faca6d1..3a76c04 100644 +--- a/proto.h ++++ b/proto.h +@@ -5606,50 +5606,43 @@ STATIC SSize_t S_unpack_rec(pTHX_ struct tempsym* symptr, const char *s, const c + #endif + #if defined(PERL_IN_PP_SORT_C) + #ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_FORCE_INLINE I32 S_amagic_cmp(pTHX_ SV *const str1, SV *const str2) +- __attribute__always_inline__; ++PERL_STATIC_FORCE_INLINE I32 S_amagic_cmp(pTHX_ SV *const str1, SV *const str2); + #define PERL_ARGS_ASSERT_AMAGIC_CMP \ + assert(str1); assert(str2) + #endif + + #ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_FORCE_INLINE I32 S_amagic_cmp_desc(pTHX_ SV *const str1, SV *const str2) +- __attribute__always_inline__; ++PERL_STATIC_FORCE_INLINE I32 S_amagic_cmp_desc(pTHX_ SV *const str1, SV *const str2); + #define PERL_ARGS_ASSERT_AMAGIC_CMP_DESC \ + assert(str1); assert(str2) + #endif + + #ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_FORCE_INLINE I32 S_amagic_i_ncmp(pTHX_ SV *const a, SV *const b) +- __attribute__always_inline__; ++PERL_STATIC_FORCE_INLINE I32 S_amagic_i_ncmp(pTHX_ SV *const a, SV *const b); + #define PERL_ARGS_ASSERT_AMAGIC_I_NCMP \ + assert(a); assert(b) + #endif + + #ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_FORCE_INLINE I32 S_amagic_i_ncmp_desc(pTHX_ SV *const a, SV *const b) +- __attribute__always_inline__; ++PERL_STATIC_FORCE_INLINE I32 S_amagic_i_ncmp_desc(pTHX_ SV *const a, SV *const b); + #define PERL_ARGS_ASSERT_AMAGIC_I_NCMP_DESC \ + assert(a); assert(b) + #endif + + #ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_FORCE_INLINE I32 S_amagic_ncmp(pTHX_ SV *const a, SV *const b) +- __attribute__always_inline__; ++PERL_STATIC_FORCE_INLINE I32 S_amagic_ncmp(pTHX_ SV *const a, SV *const b); + #define PERL_ARGS_ASSERT_AMAGIC_NCMP \ + assert(a); assert(b) + #endif + + #ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_FORCE_INLINE I32 S_amagic_ncmp_desc(pTHX_ SV *const a, SV *const b) +- __attribute__always_inline__; ++PERL_STATIC_FORCE_INLINE I32 S_amagic_ncmp_desc(pTHX_ SV *const a, SV *const b); + #define PERL_ARGS_ASSERT_AMAGIC_NCMP_DESC \ + assert(a); assert(b) + #endif + + #ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_FORCE_INLINE I32 S_cmp_desc(pTHX_ SV *const str1, SV *const str2) +- __attribute__always_inline__; ++PERL_STATIC_FORCE_INLINE I32 S_cmp_desc(pTHX_ SV *const str1, SV *const str2); + #define PERL_ARGS_ASSERT_CMP_DESC \ + assert(str1); assert(str2) + #endif +@@ -5671,51 +5664,44 @@ PERL_STATIC_FORCE_INLINE void S_sortsv_flags_impl(pTHX_ SV** array, size_t num_e + #endif + + #ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_FORCE_INLINE I32 S_sv_i_ncmp(pTHX_ SV *const a, SV *const b) +- __attribute__always_inline__; ++PERL_STATIC_FORCE_INLINE I32 S_sv_i_ncmp(pTHX_ SV *const a, SV *const b); + #define PERL_ARGS_ASSERT_SV_I_NCMP \ + assert(a); assert(b) + #endif + + #ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_FORCE_INLINE I32 S_sv_i_ncmp_desc(pTHX_ SV *const a, SV *const b) +- __attribute__always_inline__; ++PERL_STATIC_FORCE_INLINE I32 S_sv_i_ncmp_desc(pTHX_ SV *const a, SV *const b); + #define PERL_ARGS_ASSERT_SV_I_NCMP_DESC \ + assert(a); assert(b) + #endif + + #ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_FORCE_INLINE I32 S_sv_ncmp(pTHX_ SV *const a, SV *const b) +- __attribute__always_inline__; ++PERL_STATIC_FORCE_INLINE I32 S_sv_ncmp(pTHX_ SV *const a, SV *const b); + #define PERL_ARGS_ASSERT_SV_NCMP \ + assert(a); assert(b) + #endif + + #ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_FORCE_INLINE I32 S_sv_ncmp_desc(pTHX_ SV *const a, SV *const b) +- __attribute__always_inline__; ++PERL_STATIC_FORCE_INLINE I32 S_sv_ncmp_desc(pTHX_ SV *const a, SV *const b); + #define PERL_ARGS_ASSERT_SV_NCMP_DESC \ + assert(a); assert(b) + #endif + + # if defined(USE_LOCALE_COLLATE) + #ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_FORCE_INLINE I32 S_amagic_cmp_locale(pTHX_ SV *const str1, SV *const str2) +- __attribute__always_inline__; ++PERL_STATIC_FORCE_INLINE I32 S_amagic_cmp_locale(pTHX_ SV *const str1, SV *const str2); + #define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE \ + assert(str1); assert(str2) + #endif + + #ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_FORCE_INLINE I32 S_amagic_cmp_locale_desc(pTHX_ SV *const str1, SV *const str2) +- __attribute__always_inline__; ++PERL_STATIC_FORCE_INLINE I32 S_amagic_cmp_locale_desc(pTHX_ SV *const str1, SV *const str2); + #define PERL_ARGS_ASSERT_AMAGIC_CMP_LOCALE_DESC \ + assert(str1); assert(str2) + #endif + + #ifndef PERL_NO_INLINE_FUNCTIONS +-PERL_STATIC_FORCE_INLINE I32 S_cmp_locale_desc(pTHX_ SV *const str1, SV *const str2) +- __attribute__always_inline__; ++PERL_STATIC_FORCE_INLINE I32 S_cmp_locale_desc(pTHX_ SV *const str1, SV *const str2); + #define PERL_ARGS_ASSERT_CMP_LOCALE_DESC \ + assert(str1); assert(str2) + #endif +-- +2.25.1 + diff --git a/meta/recipes-devtools/perl/perl_5.34.1.bb b/meta/recipes-devtools/perl/perl_5.34.1.bb index 0e9d0c032e..4b9d2e2c50 100644 --- a/meta/recipes-devtools/perl/perl_5.34.1.bb +++ b/meta/recipes-devtools/perl/perl_5.34.1.bb @@ -17,6 +17,7 @@ SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \ file://0002-Constant-Fix-up-shebang.patch \ file://determinism.patch \ file://0001-cpan-Sys-Syslog-Makefile.PL-Fix-_PATH_LOG-for-determ.patch \ + file://0001-Fix-build-with-gcc-12.patch \ " SRC_URI:append:class-native = " \ file://perl-configpm-switch.patch \ |