Friday, December 27, 2019

Re: Ruby 2.7.0

On 12/27 12:58, Jeremy Evans wrote:
> On 12/26 11:38, George Koehler wrote:
> > On Thu, 26 Dec 2019 21:58:36 +0100
> > Jeremie Courreges-Anglas <jca@wxcvbn.org> wrote:
> >
> > > On Wed, Dec 25 2019, Jeremy Evans <jeremy@openbsd.org> wrote:
> > > > Tested on amd64, for about 9 months starting with the first preview
> > > > release. OK to import?
> > >
> > > This fails on sparc64, log attached. It *seems* that the configure
> > > tests are picky because of APIWARN and libgmp. And indeed the build
> > > fails similarly on amd64 with USE_LLD=No (only ld.bfd warns about unsafe
> > > functions, ld.lld does not).
> >
> > I built ruby-2.7.0 on macppc/powerpc with the diff below.
> >
> > The ld.bfd warning from libgmp broke the configure test for __func__, so
> > RUBY_FUNCTION_NAME_STRING went missing. This test might have been
> > broken for a long time, but RUBY_FUNCTION_NAME_STRING was optional until
> > Nov 17 [1], so it didn't break the build before 2.7.0. Some other tests
> > in my config.log get the same warning from libgmp, but seem to ignore
> > the warning. For upstream Ruby, I suggest to check if __func__ can
> > become an allowed C99 feature [2]. If so, Ruby can remove this
> > configure test and always use __func__.
> >
> > I got another error where coroutine/copy/Context.h included <alloca.h>,
> > so I deleted the include. OpenBSD (except amd64, i386) is the only
> > system where Ruby enables --with-coroutine=copy by default, so this code
> > is mostly for OpenBSD, but didn't work on OpenBSD, because we have no
> > <alloca.h>! I don't check HAVE_ALLOCA_H because the coroutine code
> > doesn't include the Ruby header for HAVE_ALLOCA_H.
> >
> > I have not reported these bugs to https://bugs.ruby-lang.org/ but might
> > report them tomorrow. --George
>
> Thank you very much to both Jeremie for the report and George for the
> analysis and patch. Jeremie, does the diff below work for sparc64? If
> so, is it OK to import?

I accidentally deleted the diff George sent when replying, but that's
the diff I was referring to.

> I'll fix both issues upstream and mark them for backporting, so they
> hopefully will be fixed in Ruby 2.7.1.

I fixed the copy coroutine issue upstream. For the other issue, it may
be easier to work around with rb_cv_function_name_string=__func__ added
to CONFIGURE_ENV, instead of patching configure. I haven't figured out
how to fix that properly upstream in configure.ac yet. Once I can
recreate the issue in a development environment, I'll work on that.

Thanks,
Jeremy

No comments:

Post a Comment