diff options
| author | Joshua Lock <joshua.g.lock@intel.com> | 2017-10-27 15:49:41 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-11-21 14:43:53 +0000 |
| commit | 0d44dbdaa8d9028094aa7ee77bf8595a5a9e6f75 (patch) | |
| tree | dd4cb4e94ae27eed3c07172d2d72f0a1e20bf517 | |
| parent | 1b231d7b0628c5e19afc2987d25000f71030c000 (diff) | |
| download | poky-0d44dbdaa8d9028094aa7ee77bf8595a5a9e6f75.tar.gz | |
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]
(From OE-Core rev: b9de98cdc816904583970369848181c2c79f1dc5)
Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-devtools/ruby/ruby/prevent-gc.patch | 32 | ||||
| -rw-r--r-- | meta/recipes-devtools/ruby/ruby_2.2.5.bb | 2 |
2 files changed, 34 insertions, 0 deletions
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 @@ | |||
| 1 | Fix marshaling with gcc7. Based on upstream revision 57410: | ||
| 2 | https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=57410 | ||
| 3 | https://github.com/ruby/ruby/commit/7c1b30a602ab109d8d5388d7dfb3c5b180ba24e1 | ||
| 4 | https://bugs.ruby-lang.org/issues/13150 | ||
| 5 | |||
| 6 | with the upstream patches intent ported to Ruby 2.2.5 | ||
| 7 | |||
| 8 | Upstream-Status: Backport | ||
| 9 | |||
| 10 | Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> | ||
| 11 | |||
| 12 | Index: ruby-2.2.5/marshal.c | ||
| 13 | =================================================================== | ||
| 14 | --- ruby-2.2.5.orig/marshal.c | ||
| 15 | +++ ruby-2.2.5/marshal.c | ||
| 16 | @@ -17,7 +17,6 @@ | ||
| 17 | #include "ruby/io.h" | ||
| 18 | #include "ruby/st.h" | ||
| 19 | #include "ruby/util.h" | ||
| 20 | - | ||
| 21 | #include <math.h> | ||
| 22 | #ifdef HAVE_FLOAT_H | ||
| 23 | #include <float.h> | ||
| 24 | @@ -985,7 +984,7 @@ marshal_dump(int argc, VALUE *argv) | ||
| 25 | VALUE obj, port, a1, a2; | ||
| 26 | int limit = -1; | ||
| 27 | struct dump_arg *arg; | ||
| 28 | - VALUE wrapper; /* used to avoid memory leak in case of exception */ | ||
| 29 | + volatile VALUE wrapper; /* used to avoid memory leak in case of exception */ | ||
| 30 | |||
| 31 | port = Qnil; | ||
| 32 | 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 5a645821ba..66ba1d4b84 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 | |||
| 3 | SRC_URI[md5sum] = "bd8e349d4fb2c75d90817649674f94be" | 3 | SRC_URI[md5sum] = "bd8e349d4fb2c75d90817649674f94be" |
| 4 | SRC_URI[sha256sum] = "30c4b31697a4ca4ea0c8db8ad30cf45e6690a0f09687e5d483c933c03ca335e3" | 4 | SRC_URI[sha256sum] = "30c4b31697a4ca4ea0c8db8ad30cf45e6690a0f09687e5d483c933c03ca335e3" |
| 5 | 5 | ||
| 6 | SRC_URI += "file://prevent-gc.patch" | ||
| 7 | |||
| 6 | # it's unknown to configure script, but then passed to extconf.rb | 8 | # it's unknown to configure script, but then passed to extconf.rb |
| 7 | # maybe it's not really needed as we're hardcoding the result with | 9 | # maybe it's not really needed as we're hardcoding the result with |
| 8 | # 0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch | 10 | # 0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch |
