diff mbox series

[meta-oe,scarthgap,1/2] onig: fix gcc 15 build

Message ID 20260428090053.3401574-1-mikko.rapeli@linaro.org
State New
Headers show
Series [meta-oe,scarthgap,1/2] onig: fix gcc 15 build | expand

Commit Message

Mikko Rapeli April 28, 2026, 9 a.m. UTC
With backport from upstream 6.9.10.

Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
---
 ...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

Comments

Anuj Mittal April 29, 2026, 3:17 a.m. UTC | #1
Hi,

On Tue, Apr 28, 2026 at 5:01 PM Mikko Rapeli via
lists.openembedded.org
<mikko.rapeli=linaro.org@lists.openembedded.org> wrote:
>
> With backport from upstream 6.9.10.
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
> ---
>  ...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" <kkosako0@gmail.com>
> +Date: Mon, 18 Nov 2024 00:18:12 +0900
> +Subject: [PATCH] fix #312: Build failure with GCC 15 (C23)
> +

This is missing Upstream-Status and Signed-off.

> +---
> + src/regparse.c | 44 ++++++++++++++++++++++++++++++++++++--------
> + src/st.h       |  9 +--------
> + 2 files changed, 37 insertions(+), 16 deletions(-)
> +
> +Upstream-Status: Backport [5f1408dee4a01dee60c4cd67f2e2e46484ef50a5]
> +Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
> +
> +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 \
>  "
>
> --
> 2.51.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#126649): https://lists.openembedded.org/g/openembedded-devel/message/126649
> Mute This Topic: https://lists.openembedded.org/mt/119045170/3616702
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [anuj.mittal@oss.qualcomm.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Mikko Rapeli April 29, 2026, 6:24 a.m. UTC | #2
Hi,

On Wed, Apr 29, 2026 at 11:17:55AM +0800, Anuj Mittal wrote:
> Hi,
> 
> On Tue, Apr 28, 2026 at 5:01 PM Mikko Rapeli via
> lists.openembedded.org
> <mikko.rapeli=linaro.org@lists.openembedded.org> wrote:
> >
> > With backport from upstream 6.9.10.
> >
> > Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
> > ---
> >  ...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" <kkosako0@gmail.com>
> > +Date: Mon, 18 Nov 2024 00:18:12 +0900
> > +Subject: [PATCH] fix #312: Build failure with GCC 15 (C23)
> > +
> 
> This is missing Upstream-Status and Signed-off.

They are...

> > +---
> > + src/regparse.c | 44 ++++++++++++++++++++++++++++++++++++--------
> > + src/st.h       |  9 +--------
> > + 2 files changed, 37 insertions(+), 16 deletions(-)
> > +
> > +Upstream-Status: Backport [5f1408dee4a01dee60c4cd67f2e2e46484ef50a5]
> > +Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>

... right here.

Cheers,

-Mikko

> > +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 \
> >  "
> >
> > --
> > 2.51.0
> >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#126649): https://lists.openembedded.org/g/openembedded-devel/message/126649
> > Mute This Topic: https://lists.openembedded.org/mt/119045170/3616702
> > Group Owner: openembedded-devel+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [anuj.mittal@oss.qualcomm.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
Anuj Mittal April 29, 2026, 7:27 a.m. UTC | #3
On Wed, Apr 29, 2026 at 2:25 PM Mikko Rapeli <mikko.rapeli@linaro.org> wrote:
>
> Hi,
>
> On Wed, Apr 29, 2026 at 11:17:55AM +0800, Anuj Mittal wrote:
> > Hi,
> >
> > On Tue, Apr 28, 2026 at 5:01 PM Mikko Rapeli via
> > lists.openembedded.org
> > <mikko.rapeli=linaro.org@lists.openembedded.org> wrote:
> > >
> > > With backport from upstream 6.9.10.
> > >
> > > Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
> > > ---
> > >  ...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" <kkosako0@gmail.com>
> > > +Date: Mon, 18 Nov 2024 00:18:12 +0900
> > > +Subject: [PATCH] fix #312: Build failure with GCC 15 (C23)
> > > +
> >
> > This is missing Upstream-Status and Signed-off.
>
> They are...
>
> > > +---
> > > + src/regparse.c | 44 ++++++++++++++++++++++++++++++++++++--------
> > > + src/st.h       |  9 +--------
> > > + 2 files changed, 37 insertions(+), 16 deletions(-)
> > > +
> > > +Upstream-Status: Backport [5f1408dee4a01dee60c4cd67f2e2e46484ef50a5]
> > > +Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
>
> ... right here.
>

Thanks. So used to seeing it over the --- line and missed it.

Thanks,

Anuj
diff mbox series

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" <kkosako0@gmail.com>
+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 <mikko.rapeli@linaro.org>
+
+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 \
 "