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

Reply via email to