From a9b7af632e143718d7776b0b85c360eae742b370 Mon Sep 17 00:00:00 2001 From: Mikko Rapeli Date: Tue, 28 Apr 2026 12:00:52 +0300 Subject: [PATCH] onig: fix gcc 15 build With backport from upstream 6.9.10. Signed-off-by: Mikko Rapeli Signed-off-by: Anuj Mittal --- ...08dee4a01dee60c4cd67f2e2e46484ef50a5.patch | 138 ++++++++++++++++++ meta-oe/recipes-support/onig/onig_6.9.9.bb | 1 + 2 files changed, 139 insertions(+) create mode 100644 meta-oe/recipes-support/onig/onig/5f1408dee4a01dee60c4cd67f2e2e46484ef50a5.patch diff --git a/meta-oe/recipes-support/onig/onig/5f1408dee4a01dee60c4cd67f2e2e46484ef50a5.patch b/meta-oe/recipes-support/onig/onig/5f1408dee4a01dee60c4cd67f2e2e46484ef50a5.patch new file mode 100644 index 0000000000..f0683c2ebd --- /dev/null +++ b/meta-oe/recipes-support/onig/onig/5f1408dee4a01dee60c4cd67f2e2e46484ef50a5.patch @@ -0,0 +1,138 @@ +From 5f1408dee4a01dee60c4cd67f2e2e46484ef50a5 Mon Sep 17 00:00:00 2001 +From: "K.Kosako" +Date: Mon, 18 Nov 2024 00:18:12 +0900 +Subject: [PATCH] fix #312: Build failure with GCC 15 (C23) + +--- + src/regparse.c | 44 ++++++++++++++++++++++++++++++++++++-------- + src/st.h | 9 +-------- + 2 files changed, 37 insertions(+), 16 deletions(-) + +Upstream-Status: Backport [5f1408dee4a01dee60c4cd67f2e2e46484ef50a5] +Signed-off-by: Mikko Rapeli + +diff --git a/src/regparse.c b/src/regparse.c +index 24bcbaac..9acdd6e2 100644 +--- a/src/regparse.c ++++ b/src/regparse.c +@@ -793,8 +793,13 @@ onig_print_names(FILE* fp, regex_t* reg) + #endif /* ONIG_DEBUG */ + + static int +-i_free_name_entry(UChar* key, NameEntry* e, void* arg ARG_UNUSED) ++i_free_name_entry(st_data_t akey, st_data_t ae, st_data_t arg ARG_UNUSED) + { ++ UChar* key; ++ NameEntry* e; ++ ++ key = (UChar* )akey; ++ e = (NameEntry* )ae; + xfree(e->name); + if (IS_NOT_NULL(e->back_refs)) xfree(e->back_refs); + xfree(key); +@@ -850,8 +855,14 @@ typedef struct { + } INamesArg; + + static int +-i_names(UChar* key ARG_UNUSED, NameEntry* e, INamesArg* arg) ++i_names(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t aarg) + { ++ NameEntry* e; ++ INamesArg* arg; ++ ++ e = (NameEntry* )ae; ++ arg = (INamesArg* )aarg; ++ + int r = (*(arg->func))(e->name, + e->name + e->name_len, + e->back_num, +@@ -883,9 +894,14 @@ onig_foreach_name(regex_t* reg, + } + + static int +-i_renumber_name(UChar* key ARG_UNUSED, NameEntry* e, GroupNumMap* map) ++i_renumber_name(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t amap) + { + int i; ++ NameEntry* e; ++ GroupNumMap* map; ++ ++ e = (NameEntry* )ae; ++ map = (GroupNumMap* )amap; + + if (e->back_num > 1) { + for (i = 0; i < e->back_num; i++) { +@@ -1374,9 +1390,14 @@ static int CalloutNameIDCounter; + #ifdef USE_ST_LIBRARY + + static int +-i_free_callout_name_entry(st_callout_name_key* key, CalloutNameEntry* e, +- void* arg ARG_UNUSED) ++i_free_callout_name_entry(st_data_t akey, st_data_t ae, st_data_t arg ARG_UNUSED) + { ++ st_callout_name_key* key; ++ CalloutNameEntry* e; ++ ++ key = (st_callout_name_key* )akey; ++ e = (CalloutNameEntry* )ae; ++ + if (IS_NOT_NULL(e)) { + xfree(e->name); + } +@@ -1870,10 +1891,14 @@ typedef intptr_t CalloutTagVal; + #define CALLOUT_TAG_LIST_FLAG_TAG_EXIST (1<<0) + + static int +-i_callout_callout_list_set(UChar* key, CalloutTagVal e, void* arg) ++i_callout_callout_list_set(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t arg) + { + int num; +- RegexExt* ext = (RegexExt* )arg; ++ CalloutTagVal e; ++ RegexExt* ext; ++ ++ e = (CalloutTagVal )ae; ++ ext = (RegexExt* )arg; + + num = (int )e - 1; + ext->callout_list[num].flag |= CALLOUT_TAG_LIST_FLAG_TAG_EXIST; +@@ -1926,8 +1951,11 @@ onig_callout_tag_is_exist_at_callout_num(regex_t* reg, int callout_num) + } + + static int +-i_free_callout_tag_entry(UChar* key, CalloutTagVal e, void* arg ARG_UNUSED) ++i_free_callout_tag_entry(st_data_t akey, st_data_t e ARG_UNUSED, st_data_t arg ARG_UNUSED) + { ++ UChar* key; ++ ++ key = (UChar* )akey; + xfree(key); + return ST_DELETE; + } +diff --git a/src/st.h b/src/st.h +index 5efee8bb..70798dc5 100644 +--- a/src/st.h ++++ b/src/st.h +@@ -34,13 +34,6 @@ enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK}; + #ifndef _ + # define _(args) args + #endif +-#ifndef ANYARGS +-# ifdef __cplusplus +-# define ANYARGS ... +-# else +-# define ANYARGS +-# endif +-#endif + + st_table *st_init_table _((struct st_hash_type *)); + st_table *st_init_table_with_size _((struct st_hash_type *, int)); +@@ -52,7 +45,7 @@ int st_delete _((st_table *, st_data_t *, st_data_t *)); + int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t)); + int st_insert _((st_table *, st_data_t, st_data_t)); + int st_lookup _((st_table *, st_data_t, st_data_t *)); +-int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t)); ++int st_foreach _((st_table *, int (*)(st_data_t, st_data_t, st_data_t), st_data_t)); + void st_add_direct _((st_table *, st_data_t, st_data_t)); + void st_free_table _((st_table *)); + void st_cleanup_safe _((st_table *, st_data_t)); diff --git a/meta-oe/recipes-support/onig/onig_6.9.9.bb b/meta-oe/recipes-support/onig/onig_6.9.9.bb index b29437db1e..b545fc7596 100644 --- a/meta-oe/recipes-support/onig/onig_6.9.9.bb +++ b/meta-oe/recipes-support/onig/onig_6.9.9.bb @@ -11,6 +11,7 @@ SRC_URI = "\ https://github.com/kkos/oniguruma/releases/download/v${PV}/${BP}.tar.gz \ file://0001-build-don-t-link-against-host-system-libraries.patch \ file://0002-build-enable-serial-tests-automake-option-for-ptest.patch \ + file://5f1408dee4a01dee60c4cd67f2e2e46484ef50a5.patch \ file://run-ptest \ "