On Fri, Oct 27, 2017 at 7:49 AM, Joshua Lock <joshua.g.l...@intel.com> wrote: > Marsalling is broken when ruby-2.2.x is built with gcc7, backport the change
typo 'marshalling' otherwise ok > fix in Ruby SVN r57410 to apply to ruby 2.2.5: > > https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=57410 > > Fixes [YOCTO #12271] > > Signed-off-by: Joshua Lock <joshua.g.l...@intel.com> > --- > meta/recipes-devtools/ruby/ruby/prevent-gc.patch | 32 > ++++++++++++++++++++++++ > meta/recipes-devtools/ruby/ruby_2.2.5.bb | 2 ++ > 2 files changed, 34 insertions(+) > create mode 100644 meta/recipes-devtools/ruby/ruby/prevent-gc.patch > > diff --git a/meta/recipes-devtools/ruby/ruby/prevent-gc.patch > b/meta/recipes-devtools/ruby/ruby/prevent-gc.patch > new file mode 100644 > index 00000000000..2eaa955fba2 > --- /dev/null > +++ b/meta/recipes-devtools/ruby/ruby/prevent-gc.patch > @@ -0,0 +1,32 @@ > +Fix marshaling with gcc7. Based on upstream revision 57410: > +https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=57410 > +https://github.com/ruby/ruby/commit/7c1b30a602ab109d8d5388d7dfb3c5b180ba24e1 > +https://bugs.ruby-lang.org/issues/13150 > + > +with the upstream patches intent ported to Ruby 2.2.5 > + > +Upstream-Status: Backport > + > +Signed-off-by: Joshua Lock <joshua.g.l...@intel.com> > + > +Index: ruby-2.2.5/marshal.c > +=================================================================== > +--- ruby-2.2.5.orig/marshal.c > ++++ ruby-2.2.5/marshal.c > +@@ -17,7 +17,6 @@ > + #include "ruby/io.h" > + #include "ruby/st.h" > + #include "ruby/util.h" > +- > + #include <math.h> > + #ifdef HAVE_FLOAT_H > + #include <float.h> > +@@ -985,7 +984,7 @@ marshal_dump(int argc, VALUE *argv) > + VALUE obj, port, a1, a2; > + int limit = -1; > + struct dump_arg *arg; > +- VALUE wrapper; /* used to avoid memory leak in case of exception */ > ++ volatile VALUE wrapper; /* used to avoid memory leak in case of > exception */ > + > + port = Qnil; > + rb_scan_args(argc, argv, "12", &obj, &a1, &a2); > diff --git a/meta/recipes-devtools/ruby/ruby_2.2.5.bb > b/meta/recipes-devtools/ruby/ruby_2.2.5.bb > index 5a645821ba0..66ba1d4b844 100644 > --- a/meta/recipes-devtools/ruby/ruby_2.2.5.bb > +++ b/meta/recipes-devtools/ruby/ruby_2.2.5.bb > @@ -3,6 +3,8 @@ require ruby.inc > SRC_URI[md5sum] = "bd8e349d4fb2c75d90817649674f94be" > SRC_URI[sha256sum] = > "30c4b31697a4ca4ea0c8db8ad30cf45e6690a0f09687e5d483c933c03ca335e3" > > +SRC_URI += "file://prevent-gc.patch" > + > # it's unknown to configure script, but then passed to extconf.rb > # maybe it's not really needed as we're hardcoding the result with > # 0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch > -- > 2.13.6 > > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core