From d56433b7f03476f0efdcfa635240feace1084cc7 Mon Sep 17 00:00:00 2001 From: Joshua Lock Date: Fri, 27 Oct 2017 15:49:41 +0100 Subject: ruby: fix build of ruby-native with gcc7 Marsalling is broken when ruby-2.2.x is built with gcc7, backport the change 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 Signed-off-by: Armin Kuster (cherry picked from commit b9de98cdc816904583970369848181c2c79f1dc5) Signed-off-by: Armin Kuster --- 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 0000000000..2eaa955fba --- /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 + +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 + #ifdef HAVE_FLOAT_H + #include +@@ -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 c9ae4735fa..9238199fcf 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 -- cgit 1.2.3-korg