svn commit: r428055 - in head: Mk lang/ruby22/files
Steve Wills
swills at FreeBSD.org
Wed Dec 7 12:47:32 UTC 2016
Author: swills
Date: Wed Dec 7 12:47:30 2016
New Revision: 428055
URL: https://svnweb.freebsd.org/changeset/ports/428055
Log:
lang/ruby22: fix setjmp clobbered variables
PR: 206110
Submitted by: dim
Added:
head/lang/ruby22/files/patch-eval.c (contents, props changed)
head/lang/ruby22/files/patch-eval_error.c (contents, props changed)
head/lang/ruby22/files/patch-thread.c (contents, props changed)
head/lang/ruby22/files/patch-vm_eval.c (contents, props changed)
head/lang/ruby22/files/patch-vm_trace.c (contents, props changed)
Modified:
head/Mk/bsd.ruby.mk
Modified: head/Mk/bsd.ruby.mk
==============================================================================
--- head/Mk/bsd.ruby.mk Wed Dec 7 12:42:42 2016 (r428054)
+++ head/Mk/bsd.ruby.mk Wed Dec 7 12:47:30 2016 (r428055)
@@ -165,7 +165,7 @@ RUBY21= "" # PLIST_SUB helpers
# Ruby 2.2
#
RUBY_RELVERSION= 2.2.6
-RUBY_PORTREVISION= 0
+RUBY_PORTREVISION= 1
RUBY_PORTEPOCH= 1
RUBY_PATCHLEVEL= 0
RUBY22= "" # PLIST_SUB helpers
Added: head/lang/ruby22/files/patch-eval.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/lang/ruby22/files/patch-eval.c Wed Dec 7 12:47:30 2016 (r428055)
@@ -0,0 +1,20 @@
+--- eval.c.orig 2014-12-09 02:16:27.000000000 +0100
++++ eval.c 2016-01-10 19:10:59.326340000 +0100
+@@ -797,7 +797,7 @@ rb_rescue2(VALUE (* b_proc) (ANYARGS), V
+ {
+ int state;
+ rb_thread_t *th = GET_THREAD();
+- rb_control_frame_t *cfp = th->cfp;
++ rb_control_frame_t *volatile cfp = th->cfp;
+ volatile VALUE result = Qfalse;
+ volatile VALUE e_info = th->errinfo;
+ va_list args;
+@@ -863,7 +863,7 @@ rb_protect(VALUE (* proc) (VALUE), VALUE
+ volatile VALUE result = Qnil;
+ volatile int status;
+ rb_thread_t *th = GET_THREAD();
+- rb_control_frame_t *cfp = th->cfp;
++ rb_control_frame_t *volatile cfp = th->cfp;
+ struct rb_vm_protect_tag protect_tag;
+ rb_jmpbuf_t org_jmpbuf;
+
Added: head/lang/ruby22/files/patch-eval_error.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/lang/ruby22/files/patch-eval_error.c Wed Dec 7 12:47:30 2016 (r428055)
@@ -0,0 +1,15 @@
+--- eval_error.c.orig 2015-01-17 08:47:29.000000000 +0100
++++ eval_error.c 2016-01-10 19:11:10.416384000 +0100
+@@ -80,9 +80,9 @@ static void
+ error_print(void)
+ {
+ volatile VALUE errat = Qundef;
+- rb_thread_t *th = GET_THREAD();
+- VALUE errinfo = th->errinfo;
+- int raised_flag = th->raised_flag;
++ rb_thread_t *volatile th = GET_THREAD();
++ volatile VALUE errinfo = th->errinfo;
++ volatile int raised_flag = th->raised_flag;
+ volatile VALUE eclass = Qundef, e = Qundef;
+ const char *volatile einfo;
+ volatile long elen;
Added: head/lang/ruby22/files/patch-thread.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/lang/ruby22/files/patch-thread.c Wed Dec 7 12:47:30 2016 (r428055)
@@ -0,0 +1,13 @@
+--- thread.c.orig 2015-02-20 14:53:23.000000000 +0100
++++ thread.c 2016-01-10 19:11:32.423524000 +0100
+@@ -462,8 +462,8 @@ rb_threadptr_unlock_all_locking_mutexes(
+ void
+ rb_thread_terminate_all(void)
+ {
+- rb_thread_t *th = GET_THREAD(); /* main thread */
+- rb_vm_t *vm = th->vm;
++ rb_thread_t *volatile th = GET_THREAD(); /* main thread */
++ rb_vm_t *volatile vm = th->vm;
+
+ if (vm->main_thread != th) {
+ rb_bug("rb_thread_terminate_all: called by child thread (%p, %p)",
Added: head/lang/ruby22/files/patch-vm_eval.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/lang/ruby22/files/patch-vm_eval.c Wed Dec 7 12:47:30 2016 (r428055)
@@ -0,0 +1,31 @@
+--- vm_eval.c.orig 2015-11-29 10:01:12.000000000 +0100
++++ vm_eval.c 2016-01-10 19:11:40.066355000 +0100
+@@ -1111,7 +1111,7 @@ rb_iterate(VALUE (* it_proc) (VALUE), VA
+ int state;
+ volatile VALUE retval = Qnil;
+ NODE *node = NEW_IFUNC(bl_proc, data2);
+- rb_thread_t *th = GET_THREAD();
++ rb_thread_t *volatile th = GET_THREAD();
+ rb_control_frame_t *volatile cfp = th->cfp;
+
+ node->nd_aid = rb_frame_this_func();
+@@ -1239,7 +1239,7 @@ eval_string_with_cref(VALUE self, VALUE
+ int state;
+ VALUE result = Qundef;
+ VALUE envval;
+- rb_thread_t *th = GET_THREAD();
++ rb_thread_t *volatile th = GET_THREAD();
+ rb_env_t *env = NULL;
+ rb_block_t block, *base_block;
+ volatile int parse_in_eval;
+@@ -1983,8 +1983,8 @@ rb_catch_protect(VALUE t, rb_block_call_
+ {
+ int state;
+ volatile VALUE val = Qnil; /* OK */
+- rb_thread_t *th = GET_THREAD();
+- rb_control_frame_t *saved_cfp = th->cfp;
++ rb_thread_t *volatile th = GET_THREAD();
++ rb_control_frame_t *volatile saved_cfp = th->cfp;
+ volatile VALUE tag = t;
+
+ TH_PUSH_TAG(th);
Added: head/lang/ruby22/files/patch-vm_trace.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/lang/ruby22/files/patch-vm_trace.c Wed Dec 7 12:47:30 2016 (r428055)
@@ -0,0 +1,11 @@
+--- vm_trace.c.orig 2015-11-08 15:49:09.000000000 +0100
++++ vm_trace.c 2016-01-10 19:11:46.862754000 +0100
+@@ -390,7 +390,7 @@ rb_suppress_tracing(VALUE (*func)(VALUE)
+ volatile int raised;
+ volatile int outer_state;
+ VALUE result = Qnil;
+- rb_thread_t *th = GET_THREAD();
++ rb_thread_t *volatile th = GET_THREAD();
+ int state;
+ const int tracing = th->trace_arg ? 1 : 0;
+ rb_trace_arg_t dummy_trace_arg;
More information about the svn-ports-head
mailing list