Hans de Graaff <gra...@gentoo.org> writes: > The varargs implementation in Ruby 3.2 is not compatible with gnu23. Ruby > 3.1 is in security maintenance mode upstream so it is unlikely that the > fixes from Ruby 3.2 will be backported. Ruby 3.1 is EOL in March 2025 > and will be removed from Gentoo around that time. >
LGTM if you've confirmed it fixes an extension build. Add a Closes tag for https://bugs.gentoo.org/943988? > Signed-off-by: Hans de Graaff <gra...@gentoo.org> > --- > eclass/ruby-fakegem.eclass | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/eclass/ruby-fakegem.eclass b/eclass/ruby-fakegem.eclass > index eb6257a50cf9..fc78428be714 100644 > --- a/eclass/ruby-fakegem.eclass > +++ b/eclass/ruby-fakegem.eclass > @@ -23,6 +23,8 @@ case ${EAPI} in > *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; > esac > > +# flag-o-matic is only required for ruby31 support. > +inherit flag-o-matic > inherit ruby-ng > > # @ECLASS_VARIABLE: RUBY_FAKEGEM_NAME > @@ -424,6 +426,16 @@ EOF > each_fakegem_configure() { > debug-print-function ${FUNCNAME} "$@" > > + # Ruby 3.1 has a varargs implementation that is not compatible with > + # gnu23. Ruby 3.1 is EOL in March 2025 and will be removed shortly > + # after that. > + case ${RUBY} in > + *ruby31) > + append-flags -std=gnu17 > + filter-flags -std=gnu23 > + ;; > + esac > + > tc-export PKG_CONFIG > for extension in "${RUBY_FAKEGEM_EXTENSIONS[@]}" ; do > CC=$(tc-getCC) ${RUBY} --disable=did_you_mean -C > ${extension%/*} ${extension##*/} --with-cflags="${CFLAGS}" > --with-ldflags="${LDFLAGS}" ${RUBY_FAKEGEM_EXTENSION_OPTIONS} || die